Welcome To HPU Online Judge!
1034: 交换最值的位置 [水题]
时间限制: 1 Sec 内存限制: 128 MB提交: 298 解决: 94
题目描述
给定一个序列,现在让你交换序列最大值和最小值的位置,并输出交换后的序列。
输入
第一行输入一个整数
T
,代表有
T
组测试数据。
每组数据第一行输入一个整数 N
,代表序列有 N个元素。
接下来一行,依次输入 N
个整数 a[]。
注: 1<=T<=10,1<=N<=10000,1<=a[]<=100000
。
保证只有一个最小值以及最大值。
输出
输出交换最值后的序列,每两个元素之间有一个空格,最后一个元素后面没有空格。
样例输入
2
4
3 4 2 1
3
1 2 3
样例输出
3 1 2 4 3 2 1 解析: 找出最大最小的元素,记录它们的下标,然后交换数值。 程序如下:#include<cstdio> int main() { int t; scanf("%d",&t); while(t--) { int n,i,j=0,k=0,a[10003],c; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); int max=a[0],min=a[0]; for(i=0;i<n;i++) { if(a[i]>max) { max=a[i]; j=i; } if(a[i]<min) { min=a[i]; k=i; } } c=a[j]; a[j]=a[k]; a[k]=c; for(i=0;i<n;i++) printf("%d%c",a[i],i==n-1?'\n':' '); } return 0; }