You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++代码实现求助:查找学生提交材料的最早最少人数日期

解决思路与代码修改

要解决这个问题,核心是同时记录最小值的首次出现位置,因为日期是从1开始计数的,数组索引加1就是对应的日期编号。

修改后的代码如下:

#include <iostream>
using namespace std;

int main() {
    int arr[30], n, minVal, minIndex; // N最大为30,数组无需开1000长度
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> arr[i];
    }
    minVal = arr[0];
    minIndex = 0; // 初始指向第1天(数组索引0对应日期1)
    for (int i = 0; i < n; ++i) {
        // 仅当当前元素更小的时候,才更新最小值和对应索引
        if (arr[i] < minVal) {
            minVal = arr[i];
            minIndex = i;
        }
        // 等于当前最小值时不更新,保留最早出现的位置
    }
    // 日期是数组索引+1
    cout << minIndex + 1 << " " << minVal << endl;
    return 0;
}

关键修改点说明

  • 新增minIndex变量,初始化为0(对应第1天),专门跟踪最小值的首次出现位置
  • 遍历数组时,只有当当前元素小于当前最小值时,才更新最小值和索引;若元素等于当前最小值,不做任何操作,以此保证保留最早出现的那个位置
  • 输出时,将数组索引加1得到实际日期编号(数组从0开始计数,日期从1开始)

验证示例

  • 输入4 20 30 40 20:初始最小值为20,索引0;后续遇到第二个20时,因不小于当前最小值,minIndex保持0,最终输出1 20,符合要求
  • 输入3 30 20 40:遍历到索引1(对应第2天)时,20小于初始的30,更新minVal为20、minIndex为1,最终输出2 20,符合要求

内容的提问来源于stack exchange,提问作者Alrk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:45:37