Замена значения в массиве
Я пытаюсь заменить минимальное значение в массиве на максимальное значение, у меня проблема с выводом.
выход:
after replace = 5 after replace = 6 after replace = 7 after replace = 7 after replace = 7 after replace = 3
так и должно быть:
4
5
6
7
7
3
Что я уже пробовал:
int main( void ) { struct str { int arr[6]; }; struct str select = { { 4, 5, 6, 7,1,3 } }; struct tt{ int a[1]; }; struct tt t; for (int i=0;i<6;i++){ printf("arr = %d \n",select.arr[i]); } int min=select.arr[0]; int max=select.arr[0]; for (int i = 0; i < 6; i++) { if (select.arr[i] > max){ max=select.arr[i]; t.a[i]=max;} else if (select.arr[i] < min){ min = select.arr[i]; select.arr[i]=max;} } printf("min = %d max =%d \n",min,max); for (int i=0;i<6;i++){ printf("after replace = %d \n",select.arr[i]); } }
Patrice T
"Я пытаюсь заменить минимальное значение в массиве на максимальное значение"
Не ясно !
Показать выход фактического и ожидаемого результата.
Объясните, что не так в выводе.
Richard MacCutchan
Почему вы используете типы структур, когда все, что вам нужно, - это простые массивы?
Lilyanaa
У меня есть и другие участники в моей программе, но это простое описание проблемы
Richard MacCutchan
Я все еще не знаю, в чем твоя настоящая проблема.
Lilyanaa
вывод этого кода происходит после замены = 5
после замены = 6
после замены = 7
после замены = 7
после замены = 7
после замены = 3 ,
это должно быть{4 5 6 7 7 3}, в чем проблема в этом коде?
Richard MacCutchan
Вам нужны две петли.
1. повторите массив, найдите и сохраните минимальное и максимальное значения.
2. Повторите массив, если элемент массива равен минимальному значению, замените его максимальным.
Lilyanaa
Я делаю это большое вам спасибо