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