Попарный обмен местами между максимальными и минимальными значениями в массиве - C (СИ)
Формулировка задачи:
народ кто может,подсказать что не так со схемой?
вот код
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
const int N=80;
int a[N], i=0, temp, i_max=0, i_min=0;
srand(time(NULL));
for (i=0; i<N; i++)
{
a[i]=rand()%100 +1;
printf("%d ",a[i]);
}
for (i=1; i<N; i++)
{
if (a[i]>a[i_max])
i_max=i;
if (a[i]<a[i_min])
i_min=i;
}
temp=a[i_max]; a[i_max]=a[i_min]; a[i_min]=temp;
printf("\n\n");
for (i=0; i<N; i++)
{
printf("%d ",a[i]);
}
return 0;
}Решение задачи: «Попарный обмен местами между максимальными и минимальными значениями в массиве»
textual
Листинг программы
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <limits.h>
int main() {
const int N = 80;
int a[N], i = 0, temp, i_max = 0, i_min = INT_MAX;
int p_max, p_min; /* позиции в массиве */
srand(time(NULL));
for (i = 0; i < N; i++) {
a[i] = rand() % 100 + 1;
printf("%d ", a[i]);
}
for (i = 1; i < N; i++) {
if (a[i] > i_max) {
i_max = a[i];
p_max = i;
}
if (a[i] < i_min) {
i_min = a[i];
p_min = i;
}
}
temp = a[p_max];
a[p_max] = a[p_min];
a[p_min] = temp;
printf("\n\n");
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные:
N- размер массиваa- массив для хранения чиселi- счётчик для заполнения массива числамиtemp- временная переменная для обмена значениямиi_max- индекс максимального значения в массивеi_min- индекс минимального значения в массивеp_max- позиция максимального значения в массивеp_min- позиция минимального значения в массиве
- Инициализируем генератор случайных чисел
- Заполняем массив случайными числами от 1 до 100 и выводим их на экран
- Находим индексы минимального и максимального значений в массиве
- Меняем местами значения по найденным индексам
- Выводим обновлённый массив на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась