Не удается скомпилировать программу нахождения суммы цифр в числах - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Простейшая задача натолкнулась на непонятную мне проблему. Цель: Вычислить сумму цифр 2х,3х или 4х-значных чисел. Компилятор DevC++ Код:
Листинг программы
  1. int main()
  2. {
  3. int x [4];
  4. int ans, s=0;
  5. while(ans!=2)
  6. {
  7. puts("Please, enter two, three or four-digit number: ");
  8. scanf("%i",&x);
  9. if (x!=0)
  10. {
  11. s+=x%10;
  12. x/=10;
  13. }
  14. else
  15. printf("The amount of all numbers is %i\n"
  16. "Once more? \n"
  17. "Press 1 to continue or 2 to exit \n",s);
  18. scanf("%i", &ans);
  19. }
  20. system("pause");
  21. return(0);
  22. }
Проблема: Не выполняет действие по вычислению остатка от деления. Сообщение: 15 8 [Error] invalid operands to binary % (have 'int *' and 'int')

Решение задачи: «Не удается скомпилировать программу нахождения суммы цифр в числах»

textual
Листинг программы
  1. int main()
  2. {
  3. int x ;
  4. int ans, s=0;
  5. while(ans!=2)
  6. {
  7. s = 0;
  8. puts("Please, enter two, three or four-digit number: ");
  9. scanf("%i",&x);
  10. x %= 10000;
  11. while (x!=0)
  12.     {
  13.     s+=x%10;
  14.     x/=10;
  15.     }
  16.  
  17. printf("The amount of all numbers is %i\n"
  18. "Once more? \n"
  19. "Press 1 to continue or 2 to exit \n", s);
  20.  
  21. scanf("%i", &ans);
  22. }
  23. system("pause");
  24. return(0);
  25. }

Объяснение кода листинга программы

Код с комментариями в виде списка:

  1. Объявлены переменные:
    • x (типа int) - для хранения введенного числа;
    • ans (типа int) - для хранения ответа пользователя;
    • s (типа int) - для хранения суммы цифр введенного числа.
  2. Запущен бесконечный цикл while(ans!=2), который будет выполняться до тех пор, пока пользователь не введет число 2.
  3. Внутри цикла обнуляется переменная s.
  4. Выводится сообщение с просьбой ввести двузначное, трехзначное или четырехзначное число.
  5. С помощью функции scanf() в переменную x считывается введенное пользователем число.
  6. Введенное число приводится к типу int, а затем с помощью оператора %= остаток от деления на 10000 сохраняется в переменной x.
  7. Пока число x не равно нулю, из него вычитается последняя цифра (x %= 10) и добавляется к переменной s.
  8. Число x делится на 10 (x /= 10), чтобы убрать последнюю цифру.
  9. После выхода из цикла, выводится сообщение с суммой цифр введенного числа (printf(The amount of all numbers is %i\n, s)).
  10. Пользователю предлагается ввести 1, чтобы продолжить или 2, чтобы выйти.
  11. С помощью функции scanf() в переменную ans считывается ответ пользователя.
  12. Если пользователь ввел 2, то цикл while(ans!=2) прерывается.
  13. Выполняется системная функция system(pause), которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу.
  14. Возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы