C语言-数组例题
Description
键盘输入10个整数存入数组,找出最大值和最小值,先将最大值与最前面的数交换,再将最小数与最后一个数交换,使得最终最大值在最前,最小值在最后。
说明:输入的数据确保最大值和最小值都只有一个
Input
输入10个整数
Output
输出处理后数组中所有数据
Sample Input
2 4 1 5 8 9 0 4 7 6
Sample Output
9 4 1 5 8 2 6 4 7 0
Code 1 here:
#include <stdio.h>
int main()
{
int a[10],i,max,min,kmax=0,kmin=0,temp=0,temp2=0; //kmax和kmin分别用来存储最大、最小数的序号,max和min未必用到
for(i=0;i<10;i++)
scanf("%d",&a[i]);
min=max=a[0];
for(i=0;i<10;i++){
if(a[i]>max){
max=a[i];
kmax = i;
}
if(min>a[i]){
min=a[i];
kmin = i;
}
}
if(kmin==0&&kmax==9){
temp = a[0];
a[0]=a[9];
a[9]=temp;
}
if(kmin==0){
temp=a[kmin];
a[kmin]=a[9];
a[9]=temp;
temp2 = a[kmax];
a[kmax] = a[0];
a[0]=temp2;
}
if(kmax==9){
temp=a[kmax];
a[kmax]=a[0];
a[0]=temp;
temp2 = a[kmin];
a[kmin] = a[9];
a[9]=temp2;
}
if(kmax!=9&&kmin!=0){
temp = a[kmax];
a[kmax]=a[0];
a[0]=temp;
temp2 = a[kmin];
a[kmin]=a[9];
a[9]=temp2;
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}