Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру - C (СИ)

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

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

Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру.
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 10
  5. #define A -50
  6. #define B 50
  7. void Init (int *a, int n)
  8. {
  9. int i;
  10. for (i=0;i<n;i++)
  11. a[i]=A+rand()%(B-A+1);
  12. }
  13. void Print(int *a, int n)
  14. {
  15. int i;
  16. for(i=0;i<n;i++)
  17. printf("%d\n",a[i]);
  18. putchar('\n');
  19. }
  20. int Check(int a)
  21. {
  22. int buf, sum;
  23. buf=a;
  24. while (buf)
  25. {
  26. if((buf%2)!=0)
  27. sum+=a;
  28. else
  29. buf/=10;
  30. }
  31. return sum;
  32. }
  33. int main()
  34. {
  35. int a[N],i,count;
  36. srand(time(NULL));
  37. Init (a,N);
  38. Print(a,N);
  39. // Тут определённо должно что-то быть
  40. return 0;
  41. }
Что нужно исправить/добавить?

Решение задачи: «Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру»

textual
Листинг программы
  1. int Check(int a)
  2. {
  3.     int buf, sum;
  4.     buf=a;
  5.     while (buf)
  6.     {
  7.             if((buf%2)!=0)
  8.                 return a;
  9.             else
  10.                 buf/=10;
  11.     }
  12.     return 0;
  13. }

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

В данном коде представлена функция с именем Check, которая принимает целочисленный аргумент типа int по имени a. Функция выполняет следующие действия:

  1. Инициализирует две переменные типа int: buf и sum. Переменная buf инициализируется значением аргумента a, а переменная sum инициализируется нулевым значением.
  2. Переменная buf сохраняет нечётные цифры аргумента a в то время как переменная sum суммирует все чётные цифры аргумента a.
  3. В цикле while происходит проверка каждой цифры числа buf. Если цифра нечётная, то функция возвращает значение переменной a. Если цифра чётная, то она удаляется из числа buf путём деления на 10.
  4. Если после цикла while значение переменной buf равно нулю, то все цифры аргумента a были чётными, и функция возвращает 0.
  5. Если в процессе выполнения функции было найдено нечётное число, то функция возвращает значение переменной a. Таким образом, функция Check вычисляет сумму всех чётных цифр аргумента a и возвращает её. Если среди цифр аргумента есть хотя бы одна нечётная цифра, функция вернёт значение этой цифры.

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


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

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

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

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

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

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