问题及代码:
/*
* Copyright (c) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:search.cpp
* 作 者:单昕昕
* 完成日期:2016年4月21日
* 版 本 号:v1.0
* 问题描述:编写一个计算阶乘的程序,当输入的数据是带小数时,引发异常。
* 程序输入:数组元素,要查找的元素。
* 程序输出:元素位置。
*/
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class outofBoundException : ApplicationException//自定义异常
{
public outofBoundException(string msg)
: base(msg)
{ }
}
class Program
{
static void Main(string[] args)
{
try
{
int ans = 1;
Console.Write("请输入n=");
double n = double.Parse(Console.ReadLine());
if (n-Convert.ToInt32(n) != 0)//一个小数的整数部分非0则称为带小数,若为0则称纯小数
throw new outofBoundException("不允许为带小数!");
else
{
int i;
for (i = 1; i <= n; ++i)
ans *= i;
}
Console.WriteLine("n!="+ans);
}
catch (outofBoundException e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadKey();
}
}
}
}
运行结果:
两个点:一个强制类型转换,一个自定义异常。