c语言,请教,这段程序不知道那有错,最后的结果不对?

[复制链接]
查看11 | 回复3 | 2008-5-29 21:16:37 | 显示全部楼层 |阅读模式
main()
{int m,n,k;
long s,a,b,c;
long factor(int);
printf("input m,n,k:");
scanf("%d%d%d",&m,&n,&k);
a=factor(m);
b=factor(n);
c=factor(k);
s=a+b+c;
printf("the combinations:%ld\n",s);
}

long factor(int x)
{long y;
for(y=1;x>0;x--)

y=y*x;
return(y);
}

回复

使用道具 举报

千问 | 2008-5-29 21:16:37 | 显示全部楼层
改一行就了,改动的地方我做了注释:main() {int m,n,k; long s,a,b,c; long factor(int); printf("input m,n,k:"); scanf("%d,%d,%d",&m,&n,&k); /*把"%d%d%d"改称了"%d,%d,%d",输入时按照这种格式"m,n,k"输入。如果不改的话,那你就要按照这种格式"mnk"输入,但是这是办不到的,因为你输入的是整数,而不是一个一个的字符。*/a=factor(m); b=factor(n); c=factor(k); s=a+b+c; printf("the combinations:%ld\n",s);
回复

使用道具 举报

千问 | 2008-5-29 21:16:37 | 显示全部楼层
只要将factor(int x)定义中for终止条件 x>0 改为 x>1 即可。
回复

使用道具 举报

千问 | 2008-5-29 21:16:37 | 显示全部楼层
#include "stdio.h"在最前面加上这个头文件,就OK了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行