时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:6613
解决:2676
- 题目描述:
-
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
- 输入:
-
测试数据有多组,输入n(1<=n<=20),接着输入n个数。
- 输出:
-
对于每组输入,输出交换后的结果。
- 样例输入:
-
2
1 3
- 样例输出:
-
3 1
思路:
遍历数组的过程中记录最大数和最小数并记录位置,然后调换即可。
代码:
#include <stdio.h> int main(void)
{
int n, a[20];
int i, max, min; while (scanf("%d",&n) != EOF)
{
if (n<1 || n>20)
return 0; for (i=0; i<n; i++)
scanf("%d", &a[i]); for (i=0; i<n; i++)
{
if (i==0)
{
max = 0;
min = 0;
continue;
}
if (a[i] > a[max])
max = i;
if (a[i] < a[min])
min = i;
} int tmp;
tmp = a[min];
a[min] = a[max];
a[max] = tmp; for (i=0; i<n; i++)
{
printf("%d", a[i]);
if (i!=n-1)
printf(" ");
}
printf("\n");
} return 0;
}
/**************************************************************
Problem: 1053
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/