该题注意数值的交换,需要小心数值被覆盖。

#include<stdio.h>
int main()
{
int n,i,k,x,y,min,max;
int a[20];
scanf("%d",&k);
for(n=0;n<k;n++){
scanf("%d",&a[n]);
}
min=0,max=k-1;
for(n=0;n<k;n++){
if(a[n]<a[min]){
min=n;
}
if(a[n]>a[max]){
max=n;
y=a[max];
}
}
x=a[0],a[0]=a[min],a[min]=x;
for(n=0;n<k;n++){
if(a[n]==y){
max=n;
break;
}
}
y=a[k-1],a[k-1]=a[max],a[max]=y;
for(n=0;n<k;n++){
printf("%d ",a[n]);
}
return 0;
}
这篇博客讲解了如何使用C语言实现一个快速找到数组中最小值和最大值的算法,并演示了如何通过交换操作将它们互换位置。注意防止数值覆盖,并在代码中展示了关键步骤和变量交换过程。
1946

被折叠的 条评论
为什么被折叠?



