程序找到数字的总和

时间:2009-11-11 09:03:56

标签: c

我无法弄清楚这个问题:

#include<stdio.h>
int main()
{
    int a,b,count ;
    count =0;
    printf("enter the value for a ");
    scanf("%d ",&a);
    while(a>0)
    {
        b=a%10;
        count=b+count;
        a=a/10; 

        printf ("hence the simplified result is %d",count);
    }
    return 0;
}

6 个答案:

答案 0 :(得分:4)

代码中有silent killer

scanf("%d ",&a);

您的scanf中的额外空格会使输入数字更难:这将匹配12<space>,但不会匹配12。将"%d "替换为"%d"

答案 1 :(得分:3)

您不会使用“\ n”终止printf()。输出流(stdout)通常是行缓冲的。这意味着除非您使用fflush()强制它们,否则无需打印不完整的行。但是没有必要这样做。

只需在printf()

中添加“\ n”即可
        printf("hence the simplified result is %d\n", count);

答案 2 :(得分:2)

一个问题是你在每个循环中打印计数,而不是在循环之后打印计数。

不是问题,但C具有更易读的算术赋值(又名compound assignment)运算符。例如,a /= 10相当于a = a/10

答案 3 :(得分:1)

我认为printf语句应该在循环之外。

答案 4 :(得分:0)

将printf移出循环。这将解决它。

答案 5 :(得分:0)

尝试以下方法:

#include<stdio.h>
int main()
{
    int a,b,count ;
    count =0;
    printf("enter the value for a ");
    scanf("%d",&a);
    while(a>0)
    {
        b=a%10;
        count=b+count;
        a=a/10; 
    } 
    printf ("hence the simplified result is %d",count);
    return 0;
}