1、/一、复制如下程序进行调试,并准备测试数据进行测试和完善:/* 问题描述: 输入n求n!以及项n!/n */int getFactorial(int n)int i; int result;for(i=1;i/getFactorial接收一整型参数,参数为正则计算阶乘并返回;参数为0直接返回1;参数为负则提示输入不合法,同时返回-1int getFactorial(int n)int i;int result;if(i0)result=1;for(i=1;i=n;+i)result=result*i;return result;else if(i=0)/务必注意赋值运算符=和比较运算符=的区别
2、。C语言中认为非零代表真;零代表假;此处若写作if(i=0)则return 1永远不会执行。仔细分析会发现输入返回-1return 1;else return -1;/*主函数*/void main()int n,factorial;/若不定义变量n会报错,因局部变量的作用域仅限函数本身float term;double x; /变量定义后未使用会出警告printf(“input n:“);scanf(“%d“, /丢失 /若上一语句不加地址符号,则n使用前未赋值,编译时有警告if(factorial!=-1)printf(“负数的阶乘不存在n“);elseif(n=0)printf(“%d!= %d and %d!/%d does not exist!n“,n,factorial,n,n);elseterm=(float)factorial/n; /给一个浮点型变量赋整型值,类型不匹配,编译时警告“可能出现数据丢失“;给一个整型变量赋浮点型值时,默认取整,不警告printf(“%d!= %d and %d!/%d= %fn“,n,factorial,n,n,term);