第1个回答 2010-01-14
兄弟,
C语言是严格区分大小写的,
Long 应该写成 long
Printf 应该写成 printf
For 应该 for
函数应该先声明,再调用;或者直接定义在主函数前面
还有要注意的一个地方是引号 全角字符“ ” 和半角字符 ""
下面是调试过的代码
#include <stdio.h>
long fact(int);
void main()
{
int n,i;
long sum,fn;
printf("\n");
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
{
fn=fact(i);
sum=sum+fn;
}
printf("%d",sum);
}
long fact(int i)
{ long c=1;
int k;
for(k=1;k<=i;k++)
c=c*k;
return c;
}
第2个回答 2010-01-14
问题在于c=c*k; long型与int型运算会自动转换成int类型,需要强行转换回来
For(k=1;k<=i;k++)
(long)c=c*k;
还有就是Long fact(i)应该是Long fact(int i)吧
第3个回答 2010-01-14
#include <stdio.h>
long fact(int i);
void main()
{
int n,i;
long sum,fn;
printf("n=");
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
{
fn=fact(i);
sum=sum+fn;
}
printf("%ld",sum);
}
long fact(int i)
{ long c=1;
int k;
for(k=1;k<=i;k++)
c=c*k;
return c;
}
我这里运行可以啊
第4个回答 2010-01-14
你这道程序可以上反面教材,错误一堆 Long 要小写,函数要先申明后使用,
还有形参的问题,那个Sum和sum又是。。。。
第5个回答 2010-01-14
你用的什么编译器?
你把所有的类型的首字母,还有函数首字母 都大写了. 编译都不能通过本回答被网友采纳