代码

#include<bits/stdc++.h>
using namespace std;

int main(){
    // 一、问题分析
    // 已知:有一队列包含n名同学(队列长度限制为n≤100),
    // 每名同学有一个独一无二的学号,学号为整数。
    // 未知:需要找出学号最大和学号最小的同学在队列中的位置(按排队顺序)。
    
    // 二、定义变量
    int n;                  // n表示学生总数
    int a[110];             // a数组用于存储每个学生的学号
    int mmax = INT_MIN;     // 初始化最大学号为整型最小值,确保任何输入的学号都能覆盖
    int mmin = INT_MAX;     // 初始化最小学号为整型最大值,同样确保覆盖所有可能的输入
    int imax, imin;         // imax和imin分别存储学号最大和最小学生的队列位置

    // 三、输入学生总数
    cin >> n;
    
    // 四、输入每个学生的学号,并同时寻找学号最大和最小的学生及其位置
    for(int i = 1; i <= n; i++){ // 从数组下标1开始,符合题目描述
        cin >> a[i];              // 输入第i个学生的学号
        
        // 检查当前学生学号与当前已知的最大/最小学号比较
        if(a[i] > mmax){          // 如果当前学号大于已知最大学号
            mmax = a[i];          // 更新最大学号
            imax = i;             // 记录最大学号对应的学生位置
        }
        if(a[i] < mmin){          // 如果当前学号小于已知最小学号
            mmin = a[i];          // 更新最小学号
            imin = i;             // 记录最小学号对应的学生位置
        }
    }

    // 五、输出结果
    // 输出学号最大和学号最小的学生在队列中的位置
    cout << imax << " " << imin;
    
    return 0; // 程序执行完毕,正常退出
}
 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐