![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
Объясните поподробнее.
|