问题及代码:
/*
* Copyright (c) 2015, 烟台大学计算机学院
* All rights reserved.
* 文件名称:Project4.cpp
* 作 者:李楠
* 完成日期:2015年6月17日
* 版 本 号:v1.0
*
* 问题描述:求n!的函数,当用户的输入为负数,以及输入数太大时(例如大于12),使用异常处理机制予以拒绝,并给出恰当的提示。
* 输入描述:略
* 程序输出:略
*/
#include <iostream>
#include <cmath>
using namespace std;
int factorial( int n);
int main()
{
int n;
while(cin>>n)
{
try
{
cout<<factorial(n)<<endl;
}
catch(int)
{
cout<<"输入格式不对,请重新输入!(输入的数为小于12的正整数)"<<endl;
}
}
return 0;
}
int factorial( int n)
{
int m=1;
if(n<0||n>12)
throw n;
else
{
for(int i=1;i<=n;++i)
m=m*i;
}
return m;
}
运行结果:
学习心得:
循环,异常处理,求阶乘…