программа для поиска суммы цифр - PullRequest
0 голосов
/ 11 ноября 2009

Я не могу понять проблему в этом:

#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 ]

4 голосов
/ 11 ноября 2009

В вашем коде тихий убийца :

scanf("%d ",&a);

Дополнительный пробел в вашем scanf усложнит ввод цифр: это будет соответствовать 12<space>, но не 12 Заменить "%d " на "%d".

3 голосов
/ 11 ноября 2009

Вы не завершаете свой printf() знаком "\ n". Выходной поток (stdout), как правило, буферизуется строкой. Это означает, что неполные строки не нужно печатать, если вы не принудительно их наберете fflush(). Но в этом нет необходимости.

Просто добавьте "\ n" к вашему printf()

        printf("hence the simplified result is %d\n", count);
2 голосов
/ 11 ноября 2009

Одна проблема заключается в том, что вы печатаете счетчик с каждым циклом, а не после цикла.

Не проблема, но в C есть операторы арифметического присваивания (он же составное присваивание ), которые могут быть более читабельными. Например, a /= 10 эквивалентно a = a/10.

1 голос
/ 11 ноября 2009

Я думаю, что оператор printf должен быть вне цикла.

0 голосов
/ 11 ноября 2009

Попробуйте следующее:

#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;
}
0 голосов
/ 11 ноября 2009

Переместите printf наружу из петли. Это исправит это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...