c语言阶乘问题!

来源:百度知道 编辑:UC知道 时间:2024/09/25 17:16:51
我想求一个数的阶乘。代码如下,请各位大虾看看那里有错。
#include<stdio.h>
main()
{int i,sum;
sum =1;
scanf("%d"'&i);
for(;i>=1;i--)
sum = sum * i;
printf("%d",sum)
}
我看有的是for(i=1,i<=n;i++),我想问问问什么不能用for(;i>=1;i--)啊?谢谢大家了。

任何一个变量都得有初值才能进行运算。
例如:a=a+1;
假如a没有初始值,那么a+1得多少呢,谁也不知道!
因此上面语句若改为:
a=1;
a=a+1; 就可以计算出a+1的和是2.

for循环语句中第一个表达式i=1就是给循环变量i赋初值用的语句,若无此语句则i--就不知道如何计算了。

你的程序中通过scanf语句给i初值了,应该说用for(;i>=1;i--)没错,可是你的scanf语句有问题,应改为 scanf("%d",&i);

可以啊 为什么不可以?
你编的程序有些小错误。。。

#include<stdio.h>
void main()
{int i,sum;
sum =1;
scanf("%d",&i);
for(;i>=1;i--)
sum = sum * i;
printf("%d",sum);
}

循环起始条件不对应为for(m=i;m>=1;m--)就可以了

i没有附初值

程序有点细节方面的错误(错的地方我已经加了注释,你可以看看),算法是没错的。
#include<stdio.h>
main()
{
int i,sum;
sum=1;

scanf("%d",&i); /*你少了逗号*/
for(;i>=1;i--)
sum=sum*i;

printf("%d",sum); /*句子结尾你少了个分号*/
}