Problem N: 最大数与数列最后一个数交换
Description
输入一个正整数n( 1 < n < 100),再输入n个整数,将最后一个数与数列最大数交换位置(若最大数在数列最后,就不用交换),输出交换后的n个数。
Input
先输入一个正整数n,再输入n个整数
Output
输出交换后的数列(即最大数在数列最后位置)
Sample Input
5 3 5 2 8 1
9 88 33 55 99 44 66 77 22 11
Sample Output
3 5 2 1 8
88 33 55 11 44 66 77 22 99
#include<stdio.h>
int main(){
int n,i,k,j,a[100],max,m;
while(scanf("%d",&n)!=EOF){
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];
m=i;
}
}
k=max;
a[m]=a[n-1];
a[n-1]=k;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
return 0;
}
总结
1、只要是数组,我们就可以对数字有很容易的位置变动。
2、善于使用max等间接变量。