Мин к первому, макс - мое число. Как сделать? - C (СИ)
Формулировка задачи:
Нужна ваша помощь. Не могу сделать так, чтобы минимальное число присваивалось первому элементу, а вместо максимального записывалось мое число.
#include<stdio.h>
int main()
{
int i = 10, j, min, imax;
int a[] = { 2,6,-7,3,-4,-11,23,54,7,6 };
for (j = 0; j < i; j++)
printf("%d ", a[j]);
printf("\n");
min = a[0];
for (j = 0; j<i; ++j)
if (min < a[j])
{
min = a[j];
imax = j;
}
a[imax] = 99999;
a[i - 10] = min;
for (j = 0; j < i; j++)
printf("%d ", a[j]);
printf("\n");
getchar();
}Решение задачи: «Мин к первому, макс - мое число. Как сделать?»
textual
Листинг программы
#include <stdio.h>
int main()
{
int i = 10, j, min, max, imax;
int a[] = { 2,6,-7,3,-4,-11,23,54,7,6 };
for (j = 0; j < i; j++)
printf("%d ", a[j]);
printf("\n");
min = a[0];
max = a[0];
for(j = 0; j < i; ++j)
{
if(max < a[j]){
max = a[j];
imax = j;
}
if (min > a[j])
min = a[j];
}
a[imax] = 99999;
a[i - 10] = min;
for (j = 0; j < i; j++)
printf("%d ", a[j]);
printf("\n");
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные:
- i = 10 (счетчик циклов)
- j = 0 (номер элемента в массиве)
- min = a[0] (минимальное значение в массиве)
- max = a[0] (максимальное значение в массиве)
- imax = 0 (номер максимального элемента в массиве)
- a[] = {2,6,-7,3,-4,-11,23,54,7,6} (массив чисел)
- Выводится первый элемент массива.
- В цикле перебираются элементы массива.
- Если текущий элемент больше максимального, то обновляются значения max и imax.
- Если текущий элемент меньше минимального, то обновляется значение min.
- Последний элемент заменяется на 99999.
- Первый элемент заменяется на минимальное значение.
- Выводится весь массив.
- Возвращается 0, заканчивая работу программы.