Преобразовать массив, умножив все его элементы на минимальный элемент - C (СИ)
Формулировка задачи:
Дан целочисленный массив, состоящий из n элементов. Преобразовать
его, умножив все его элементы на минимальный элемент. Минимальный
элемент массива не изменять.
Решение задачи: «Преобразовать массив, умножив все его элементы на минимальный элемент»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define N 5
int main(){
int arr[N], min, i;/*массив, мин число, индекс*/
printf("Enter a numbers: ");
for (i = 0; i < N; i++)/*луп для ввода*/
scanf("%d", &arr[i]);
min = arr[0];/*допустим что первое число в массиве самое мелкое*/
for (i = 1; i < N; i++){/*луп для поиска мин числа*/
if (min>arr[i])
min = arr[i];
}
for (i = 0; i < N; i++)/*луп умножения на мин число*/
arr[i] = arr[i] * min;
for (i = 0; i < N; i++)/*вывод на экран*/
printf("%d ", arr[i]);
printf("\n");
return 0;
}
Объяснение кода листинга программы
- Предупреждение:
#define _CRT_SECURE_NO_WARNINGS - Включение файла:
#include<stdio.h> - Определение размера массива:
#define N 5 - Объявление переменных:
int arr[N]- массив целых чисел, размер которого определяется в строке#define N 5min- минимальное числоi- индекс
- Вывод сообщения и запрос ввода:
printf(Enter a numbers:)- вывод сообщенияfor (i = 0; i < N; i++)/*луп для ввода*/- цикл для получения ввода от пользователяscanf(%d, &arr[i])- получение ввода в виде целого числа и сохранение его в массиве
- Установка начального значения минимального числа:
min = arr[0];- первое число в массиве устанавливается как минимальное
- Поиск минимального числа:
for (i = 1; i < N; i++)/*луп для поиска мин числа*/- цикл для сравнения каждого числа в массиве с текущим минимальным числомif (min>arr[i])- если текущее число меньше минимального, то оно становится новым минимальным числомmin = arr[i];- обновление значения минимального числа
- Умножение каждого числа в массиве на минимальное число:
for (i = 0; i < N; i++)/*луп умножения на мин число*/- цикл для перебора каждого числа в массивеarr[i] = arr[i] * min;- умножение текущего числа в массиве на минимальное число
- Вывод результатов на экран:
for (i = 0; i < N; i++)/*вывод на экран*/- цикл для вывода каждого числа в массивеprintf(%d, arr[i]);- вывод числа в массив на экран, с добавлением пробела после числа
- Завершение программы:
return 0;- завершение работы программы