蓝蓝计算机考研算法-day09求5个数的最值和ASCII码排序

66 阅读1分钟

Day09 2023/03/08

题目1

设计一个从5个整数中取最小数和最大数的程序

输入:

输入只有一组测试数据,为五个不大于1万的正整数

输出:

输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。

题目2

输入三个字符(可以重复)后,按各字符的ASC码从小到大的顺序输出这三个字符。

输入:

第一行输入一个数N,表示有N组测试数据。后面的行输入多组数据,每组输入数据都是占一行,由三个字符组成,之间无空格。

输出:

对于每组输入数据,输出一行,字符中间用一个空格分开。

1、思路

题1思路-c++

两个函数一个获取最大值一个获取最小值,通过数组存储数据。

题2思路-c++

用vector数组接收ASCII码,再用sort函数排序,最后输出。

2、具体实现

题目1

void getMax(int arr[], int &max)
{
    max = arr[0];
    for (size_t i = 1; i < 5; i++)
    {
        if (max < arr[i])
            max = arr[i];
    }
}

void getMin(int arr[], int &min)
{
    min = arr[0];
    for (size_t i = 1; i < 5; i++)
    {
        if (min > arr[i])
            min = arr[i];
    }
}

结果

image.png

题目2

int main()
{
    int n;
    vector<int> v;
    cout << "请输入数据组数:";
    cin >> n;
    cout << "请输入" << n << "组数据:" << endl;
    for (size_t i = 0; i < n; i++)
    {
        cin.ignore(1024, '\n');//清空输入缓冲区
        for (size_t i = 0; i < 3; i++)
        {
            v.push_back(getchar()); // 将输入的三个数放入vector数组
        }
        sort(v.begin(), v.end()); // 从小到大排序ASCII码
        for (auto i : v)
        {
            cout << i << " "; // 遍历vector
        }
        cout << endl;
        v.clear(); // 清空vector,接收下一组数据
    }
    return 0;
}

结果

ef3f7579e7228ee39e898961101928f.png

作者:用户4962140068138
链接:juejin.cn/post/720771…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。