九度 OJ 1053:互换最大最小数

来源:互联网 发布:win10玩csgo优化设置 编辑:程序博客网 时间:2024/04/28 00:42
题目1053:互换最大最小数

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:7213

解决:2919

题目描述:

输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。

输入:

测试数据有多组,输入n(1<=n<=20),接着输入n个数。

输出:

对于每组输入,输出交换后的结果。

样例输入:
21 3
样例输出:
3 1
来源:

2010年哈尔滨工业大学计算机研究生机试真题


注意这题的最大最小初始值要设为最小和最大


#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include <climits>using namespace std;void swap(int *a, int *b){ int t; t=*a; *a=*b; *b=t;}int main() {    int n;    int a[25];    while(scanf("%d",&n)!=EOF){        memset(a,0,sizeof(a));        int min=INT_MAX;        int max=INT_MIN;        int flag1,flag2;        for(int i=0;i<n;i++){            scanf("%d",&a[i]);            if(a[i]>=max) { max=a[i];flag1=i; }            if(a[i]<=min) { min=a[i];flag2=i; }        }        swap(a[flag1],a[flag2]);        for(int i=0;i<n;i++){           if(i==0) printf("%d",a[i]);           else printf(" %d",a[i]);        }        printf("\n");    }}/**************************************************************    Problem: 1053    User: th是个小屁孩    Language: C++    Result: Accepted    Time:0 ms    Memory:1520 kb****************************************************************/


0 0