2.编写函数sumdig,求出一个正整数的各个数字之和。在主函数中输入一个正整数,调用sumdig求该数的各数字之和,并将结果输出。求解我的哪里错了?"
问题描述:
#include<stdio.h>
int sumding(int n)
{int sum=0;
if(n>0)
sum+=n%10;
n=n/10;
else
return sum;}
void main()
{int n;
int sum=0;
printf("请输入一个正整数:%d",n);
scanf("%d",n);
sum=sumding(n);
printf("正整数各位数之和:%d",sum);}
答
修改如下,问题见注释,供参考:
#include<stdio.h>
int sumding(int n)
{
int sum=0;
while(n > 0)//if(n>0)
{
sum+=n%10;
n=n/10;
}
//else
return sum;
}
void main()
{
int n;
int sum=0;
printf("请输入一个正整数:"); //printf("请输入一个正整数:%d",n);
scanf("%d",&n); //scanf("%d",n);
sum=sumding(n);
printf("正整数各位数之和:%d\n",sum);//修改
}
答
scanf 的参数要用变量地址,改成&n