要求:求一个正整数的阶乘
#include <stdio.h>
void main()
{
char ans;
int num,count,sum;
sum=1;
ans='y';
while(ans=='y')
{
printf("\n请输入一个正整数:");
scanf("%d",&num);
count=1;
while(count<=num)
{
sum=sum*count;
count++;
}
printf("\n%d 的阶乘是:%d\n",num,sum);
printf("\n是否继续<y/n>?");
fflush(stdin);
ans=getchar();
}
}
參考答案:sum在以后的循环中需要重新初始化,否则就累计了,改后如下
#include <stdio.h>
void main()
{
char ans;
int num,count,sum;
sum=1;
ans='y';
while(ans=='y')
{
printf("\n请输入一个正整数:");
scanf("%d",&num);
count=1;
sum=1;
while(count<=num)
{
sum=sum*count;
count++;
}
printf("\n%d 的阶乘是:%d\n",num,sum);
printf("\n是否继续<y/n>?");
fflush(stdin);
ans=getchar();
}
}