C - Работа с массивами - C (СИ)

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

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

Задать случайным образом одномерный массив размерности N из целочисленных элементов, принадлежащих отрезку [-20;20]. Выполнить задание своего варианта. N вводится с клавиатуры.Само условие варианта: Составить программу для вычисления Y =(U+T)*(S+2) S - произведение элементов массива с нечетными номерами; T - наибольший элемент массива; U - сумма отрицательных элементов массива. Полученные значения элементов S,T,U,Y вывести на печать.

Решение задачи: «C - Работа с массивами»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <time.h>
  3. #include <math.h>
  4.  
  5. int main()
  6. {
  7.     srand(time(NULL));
  8.  
  9.     int N = 0, S = 1, T = 0, U = 0, i = 0, *mas = NULL;
  10.     double Y;
  11.  
  12.     scanf("%d", &N);
  13.     mas = malloc(sizeof(int)*N);
  14.  
  15.     //Input mas and print
  16.     for (i = 0; i < N; i++)
  17.     {
  18.         mas[i] = (int)pow(-1.0, rand() % 2)*(rand() % 21);//Randomize [-20; 20]
  19.         printf("%d ", mas[i]);//Print mas
  20.     }
  21.  
  22.     //Find S, T, U
  23.     T = mas[0];
  24.  
  25.     for (i = 0; i < N; i++)
  26.     {
  27.         if (mas[i] % 2 != 0) S *= mas[i]; //Произведение нечетных
  28.         if (mas[i] > T) T = mas[i]; //Макс
  29.         if (mas[i] < 0) U += mas[i]; //Сумма отрицательных
  30.     }
  31.  
  32.     Y = (U + T)*(S + 2);//Наша основная формула
  33.  
  34.     //Здесь будет какой-то вывод. printf(char* format, arg1)
  35.  
  36.     free(mas);//Освобождаем массив
  37.     return 0;
  38. }

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

  1. Включаем необходимые заголовочные файлы:
    • stdio.h для работы с функциями ввода-вывода
    • time.h для работы со временем
    • math.h для работы с математическими функциями
  2. Определяем переменные:
    • N - количество элементов в массиве (от 0 до 20)
    • S - переменная для хранения произведения нечетных чисел
    • T - переменная для хранения максимального элемента массива
    • U - переменная для хранения суммы отрицательных чисел
    • i - счетчик для итераций по массиву
    • mas - указатель на начало массива (после вызова malloc будет содержать адрес первого элемента)
    • Y - переменная для хранения результата вычислений
  3. Считываем значение N:
    • Используем функцию scanf для считывания значения N
  4. Выделяем память под массив:
    • Используем функцию malloc для выделения памяти под массив. Обязательно освобождаем память в конце программы с помощью free(mas);
  5. Заполняем массив случайными числами:
    • Используем цикл for для заполнения массива случайными числами от -20 до 20
    • Используем функцию pow для получения значения в указанной степени
    • Используем функцию rand для получения случайного числа
    • Выводим значения массива с помощью printf
  6. Находим S, T, U:
    • Используем цикл for для прохождения по всем элементам массива
    • Для S: проверяем, является ли число нечетным, и если да, то умножаем его на текущее значение S
    • Для T: находим максимальное значение в массиве и сохраняем его в переменной T
    • Для U: суммируем все отрицательные числа в массиве и сохраняем сумму в переменной U
  7. Вычисляем Y:
    • Используем формулу: Y = (U + T)*(S + 2)
  8. Освобождаем память:
    • Используем функцию free для освобождения памяти, выделенной под массив
  9. Возвращаем 0:
    • В конце программы возвращаем 0, что означает успешное выполнение программы

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


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

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

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

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

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

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