Мне нужно написать программу, в которой нужно заменить максимальные элементы массива заменить минимальными, а минимальные элементы массива заменить максимальными. Программа выглядит так.
Код:
#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;
}
Массив f[w] предназначен для сохранения индексов минимальных элементов массива. Как сделать так, чтобы изначально минимальные элементы массива заменялись максимальными и чтобы после этого снов не становились минимальными?