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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <time.h>
#include <math.h>
 
int main()
{
    srand(time(NULL));
 
    int N = 0, S = 1, T = 0, U = 0, i = 0, *mas = NULL;
    double Y;
 
    scanf("%d", &N);
    mas = malloc(sizeof(int)*N);
 
    //Input mas and print
    for (i = 0; i < N; i++)
    {
        mas[i] = (int)pow(-1.0, rand() % 2)*(rand() % 21);//Randomize [-20; 20]
        printf("%d ", mas[i]);//Print mas
    }
 
    //Find S, T, U
    T = mas[0];
 
    for (i = 0; i < N; i++)
    {
        if (mas[i] % 2 != 0) S *= mas[i]; //Произведение нечетных
        if (mas[i] > T) T = mas[i]; //Макс
        if (mas[i] < 0) U += mas[i]; //Сумма отрицательных
    }
 
    Y = (U + T)*(S + 2);//Наша основная формула
 
    //Здесь будет какой-то вывод. printf(char* format, arg1)
 
    free(mas);//Освобождаем массив
    return 0;
}

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

  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
Похожие ответы