曾经沧海难为水,除却巫山不是云。|

Joey-Wang

园龄:4年3个月粉丝:17关注:0

6.5 queue的常见用法详解

6.5 queue的常见用法详解

http://codeup.hustoj.com/contest.php?cid=100000600

A C语言-数字交换

image-20200801180500941

题目解析

这道题就需要注意一点⚠️

有的数字可能要交换两次:如 9 3 4 5 6 2 2 2 2 7

最小数为2,所以若先把最小的和第一个数交换,即2和9交换,则2 3 4 5 6 9 2 2 2 7

最大数位9,把最大的和最后一个数交换,即9和7交换,则2 3 4 5 6 7 2 2 2 9

则9交换了两次

所以每交换一次需要重新计算最大值/最小值;

若按照错误的代码来,直接一次记录最大最小值9和2的序号为0、5,然后最小数序号5和第一个数换,为2 3 4 5 6 9 2 2 2 7,最大数序号0和最后一个数换,为7 3 4 5 6 9 2 2 2 2,就不对了 🤦‍♀️

错误代码

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;
int a[10];

void input() {
    for (int i = 0; i < 10; i++) {
        cin >> a[i];
    }
}

void deal() {
    int max = a[0], min = a[0];
    int flag1 = 0, flag2 = 0;
    for (int i = 1; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];
            flag1 = i;
        }
        if (a[i] < min) {
            min = a[i];
            flag2 = i;
        }
    }
    swap(a[0], a[flag2]);//最小的和第一个数换
    swap(a[9], a[flag1]); //最大的和最后一个数换
}

void output() {
    for (int i = 0; i < 10; i++) cout << a[i] << ' ';
    cout << endl;
}

int main() {
    input();
    deal();
    output();
    return 0;
}

正确代码

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;
int a[10];

void input() {
    for (int i = 0; i < 10; i++) {
        cin >> a[i];
    }
}

void deal() {
    int max = a[0], min = a[0];
    int flag1 = 0, flag2 = 0;
    for (int i = 1; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];
            flag2 = i;
        }
    }
    swap(a[0], a[flag2]);//最小的和第一个数换
    for (int i = 1; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];
            flag1 = i;
        }
    }
    swap(a[9], a[flag1]); //最大的和最后一个数换
}

void output() {
    for (int i = 0; i < 10; i++) cout << a[i] << ' ';
    cout << endl;
}

int main() {
    input();
    deal();
    output();
    return 0;
}

本文作者:Joey-Wang

本文链接:https://www.cnblogs.com/joey-wang/p/14541176.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Joey-Wang  阅读(129)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开