C语言程序 没有错误 但是输出结果是负数。。。求大神解答

小弟刚开始学C语言
下面是程序
#include<stdio.h>int jc(int x)
{int i;
for(i=1;i<=(x-1);i++)
x=x*i;
return(x);
}

main(){
int n,k,sum=0;
for(k=1;k<=10;k++)
{
n=jc(k);
sum=sum+n;
printf("%d",k);
printf("!=%d\n",n);
}
printf("sum=%d\n",sum);
return 0;
}

求解 为什么输出结果除了前两次(分别是1,2)都是负数,但是SUM的和却是正数 而且貌似不对。

第1个回答  2013-04-24
{int i; for(i=1;i<=(x-1);i++) x=x*i; 这个地方x一直在变化,不允许的,改为int i , j = x; for(i =1; i <= j -1; i ++)本回答被提问者采纳
第2个回答  2013-04-24
int jc(int x)
{int i;
for(i=1;i<=(x-1);i++)
x=x*i;
return(x);
}
楼主确认一下这个函数,你这个函数是想实现什么功能的?
第3个回答  2013-04-24
#include<stdio.h>
int jc(int x)
{int i,k=1;
for(i=1;i<=x;i++)
k=k*i;
return(k);
}

main()
{
int n,k,sum=0;
for(k=1;k<=10;k++)
{
n=jc(k);
sum=sum+n;
printf("%d",k);
printf("!=%d\n",n);
}
printf("sum=%d\n",sum);
return 0;
}
//请问是不是这样?
第4个回答  2013-04-24
在jc()函数里面加一句int j=x;然后把for()括号里面的x改为j
第5个回答  2013-04-24
#include<stdio.h>
int jc(int x)
{
int i,m=1; //新建一个数保存jc的值
for(i=1;i<=x;i++)
m*=i;//m=m*i;
return(m);
}
main()//这次对了,别的没给你改,函数出问题了。
{
int n,k,sum=0;
for(k=1;k<=10;k++)
{
n=jc(k);
sum=sum+n;
printf("%d",k);
printf("!=%d\n",n);
}
printf("sum=%d\n",sum);
return 0;
}
望采纳,谢谢~
相似回答