有什么问题吗
#include <stdio.h>
int main(){int a,b=1,c=1;
scanf("%d",&a);
do {b++;
c=c*b;
}while (c!=25);
printf("%d",b);
return 0;
}
#include <stdio.h>
int main(){int a,b=1,c=1;
scanf("%d",&a);
do {b++;
c=c*b;
}while (c!=25);
printf("%d",b);
return 0;
}
阶乘数值太大,超出int范围了,应该用double类型
你题目是什么,你a变量没有使用啊,应该while (c<=a);吧
是不是这样
#include <stdio.h>
int main()
{
double a,c=1;
int b=0;
scanf("%lf",&a);
do {
b++;
c=c*b;
}while (c<=a);
printf("超过%.0lf的是%d的阶乘:%.0lf",a,b,c);
return 0;
}
如果要求a以内最大的阶乘数
#include <stdio.h>
int main()
{
double a,c=1;
int b=0;
scanf("%lf",&a);
do {
b++;
c=c*b;
}while (c*(b+1)<=a);
printf("%.0lf以内最大的阶乘数是%d的阶乘:%.0lf",a,b,c);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!