|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Замена максимальных элементов массива минимальными и минимальных максимальными
Мне нужно написать программу, в которой нужно заменить максимальные элементы массива заменить минимальными, а минимальные элементы массива заменить максимальными. Программа выглядит так.
Код:
#include <stdio.h> #include <conio.h> int main() { int T, a[99], i, f[99], N, w, min = 0, max = 0, kl = 0; scanf("%d", &T); while(T > 0) { scanf("%d", &N); for(i = 0; i < N; i++) { scanf("%d", &a[i]); } max = a[0]; for(i = 0; i < N; i++) { if(max < a[i]) { max = a[i]; } } min = a[0]; for(i = 0; i < N; i++) { if(min > a[i]) { min = a[i]; } } w = -1; for(i = 0; i < N; i++) { if(a[i] == min) { w++; f[w] = i; a[i] = max; kl++; } } for(i = 0; i < N; i++) { for(w = 0; w < kl; w++) { if(a[i] == max && i!=f[w]) { a[i] = min; } } } for(i = 0; i < N - 1; i++) { printf("%d ", a[i]); } printf("%d\n", a[N - 1]); w = 0; T--; } getch(); return 0; } |
#2
|
||||
|
||||
А вы сделайте логический массив той-же размерности и при обмене элементов в основном массиве меняйте значение на Истина в логическом массиве.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Цитата:
Зачем? Просто все делается в 2 прохода. На первом ты просто находишь мин и макс элементы (можно просто значения сохранить). На втором проходе меняешь через if then else if then. |
#4
|
|||
|
|||
Объясните поподробнее.
|