其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。
请指出这段代码错在哪一步
#include <stdio.h>
void Print_Factorial ( const int N );
int main()
{
int N;
scanf("%d", &N);
Print_Factorial(N);
return 0;
}
void Print_Factorial ( const int N )
{
int i;
double sum=1.0;
if(N>0){
for (i=1; i<N+1; i++) {
sum=sum*i;
}
printf("%.0f",sum);
}
else if(N==0)
printf("1");
else if (N<0){
if (N==(int)N) {
int n=-N;
for (i=1; i<n+1; i++) {
sum=sum*i;
}
printf("%.0f",sum);
}
if(N!=(int)N)
printf("Invalid input");
}
}
(错的部分是N<0部分)