Массивы, найти сумму четных и сумму нечетных элементов - C (СИ)

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

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

Доброго времени суток! Снова нуждаюсь в помощи. Есть массив, четные и нечетные элементы. Нужно найти сумму четных и соответственно нечетных. Как сделать так, чтобы выводилась на экран конечная сумма выбранных(четных) элементов, а не каждый шаг сложения?

Решение задачи: «Массивы, найти сумму четных и сумму нечетных элементов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{ int n, sum[2]={0,0}, i=0, *mas;
    srand(time(0));
    printf("Введите n: ");
    scanf("%d", &n);
    mas = malloc(n*sizeof(int));
    for(;i<n;i++)
    {
        mas[i]=(rand() % 100);
        sum[(mas[i] & 1)]+=mas[i];
//        printf("%d \n\r",mas[i]);
    }
    printf("Сумма четных: %d \n",sum[0]);
    printf("Сумма нечетных: %d \n",sum[1]);
}

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

В этом коде:

  1. Сначала подключаются необходимые библиотеки (стандартные функции) для работы с массивами, вводом/выводом и генерацией случайных чисел.
  2. Затем объявляются переменные:
    • n - вводное значение от пользователя, обозначающее размер массива;
    • sum - массив из двух элементов, инициализированный нулями, для хранения суммы четных и нечетных чисел;
    • i - счётчик для цикла;
    • mas - указатель на начало выделяемой памяти под массив.
  3. После этого производится инициализация генератора случайных чисел и выводится приглашение для ввода значения n.
  4. Полученное от пользователя значение сохраняется в переменной n.
  5. Осуществляется выделение памяти под массив с помощью функции malloc, размер которой равен n.
  6. Затем в цикле:
    • Сначала в массив mas записывается случайное число от 0 до 99 (используется операция модуля % для получения остатка от деления на 2, который и будет указывать на чётность числа).
    • Затем сумма четных или нечетных чисел (в зависимости от чётности числа) увеличивается на значение текущего элемента массива mas.
  7. После завершения цикла выводятся на экран сумма четных и нечетных чисел. Возможные проблемы при выполнении кода:
  8. Ошибка: если пользователь введёт отрицательное значение для n, то произойдет ошибка выхода за границы массива при выделении памяти с помощью malloc.
  9. Ошибка: если пользователь введёт ноль для n, то программа выдаст ошибку, так как нельзя выделить память под массив, размер которого равен нулю.
  10. Ошибка: если на момент вызова функции srand(time(0)) ещё не был вызван ввод значения n, то генератор случайных чисел будет инициализирован некорректно, что может привести к одинаковым случайным числам при каждом запуске программы.
  11. Ошибка: если на момент вызова функции printf для вывода суммы четных или нечетных чисел значение переменной sum будет равно нулю, то программа выдаст ошибку, так как невозможно выполнить операцию деления на ноль.

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


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

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

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