2.编写函数sumdig,求出一个正整数的各个数字之和。在主函数中输入一个正整数,调用sumdig求该数的各数字之和,并将结果输出。求解我的哪里错了?"

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