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

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

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

Вычислить сумму элементов массива, содержащих хотя бы одну нечётную цифру.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 10
#define A -50
#define B 50
 
void Init (int *a, int n)
{
    int i;
    for (i=0;i<n;i++)
        a[i]=A+rand()%(B-A+1);
}
 
void Print(int *a, int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%d\n",a[i]);
    putchar('\n');
}
 
int Check(int a)
{
    int buf, sum;
    buf=a;
    while (buf)
    {
            if((buf%2)!=0)
                sum+=a;
            else
                buf/=10;
    }
    return sum;
}
 
int main()
{
    int a[N],i,count;
    srand(time(NULL));
    Init (a,N);
    Print(a,N);
// Тут определённо должно что-то быть
    return 0;
}
Что нужно исправить/добавить?

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

textual
Листинг программы
int Check(int a)
{
    int buf, sum;
    buf=a;
    while (buf)
    {
            if((buf%2)!=0)
                return a;
            else
                buf/=10;
    }
    return 0;
}

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

В данном коде представлена функция с именем 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 и возвращает её. Если среди цифр аргумента есть хотя бы одна нечётная цифра, функция вернёт значение этой цифры.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

5   голосов , оценка 4.4 из 5
Похожие ответы