Я создал небольшую программу, в которой я вводил размерность массива, а затем заполнял его значениями, а затем пытался добавить функцию, в которой первое значение массива заменяется самым большим, проблема, которую яесть то, что все другие значения (если мы считаем, что они больше, чем первое) также меняются местами в процессе цикла, как мне этого избежать?
void maxVectorSwap(int *v, int dim){
int i;
int app;
int max=0;
for(i=0;i<dim;i++){
max=v[0];
if(v[i]>max){
app=v[0];
v[0]=v[i];
v[i]=app;
}
}
printf("----------\n");
for(i=0;i<dim;i++){
printf("v[%d]=%d\n",i,v[i]);
}
printf("----------\n");
}
Допустим, я ввелразмер массива: 5 и значения:
3 5 1 7 2
результат, который я получаю с помощью этой функции:
7 3 1 5 2
Что дает больше свопов, что я хочу вместо этогопросто чтобы поменять местами 7 и 3, чтобы это выглядело так:
7 5 1 3 2