c语言的题。输入一个正整数,输出各个数字的和。。请问下面的程序错在哪?该怎么改?

[复制链接]
查看11 | 回复4 | 2011-4-12 17:18:30 | 显示全部楼层 |阅读模式
#include
void print(long s)
{
if(s==0) return;
else{

printf("%d",s+n);
print(s=s+n%10);


return;
}
}
void main()
{int s=0;
long n;
printf("input");
scanf("%d",&n);
print(s);
}

回复

使用道具 举报

千问 | 2011-4-12 17:18:30 | 显示全部楼层
#includevoid print(long s){ if(s==0) return; else{
printf("%d",s+n);//print 函数中没有n 这个值print(s=s+n%10);
return; }}void main(){int s=0; long n; printf("input"); scanf("%d",&n); print(s); }我给你改了一下算法#includeint print(long n){ int s=0; while(n) {
回复

使用道具 举报

千问 | 2011-4-12 17:18:30 | 显示全部楼层
#includevoid print(long s,long n){ if(s==0) return; else{
printf("%d",s+n);s=(s+n)%10;print(s,n);
return; }}void main(){int s=20;
回复

使用道具 举报

千问 | 2011-4-12 17:18:30 | 显示全部楼层
重新写了下,能够实现你要求的功能input:123sum:6#includevoid print(long s){ int sum = 0; int value = 0; while(s>0) { sum += s%10; s/=10; } printf("sum:%d",sum);
回复

使用道具 举报

千问 | 2011-4-12 17:18:30 | 显示全部楼层
printf("%d",s+n);print(s=s+n%10);这里就不对了 这里的n再哪儿定义的啊 还有 这个数是几位数你得确定啊
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行