NOIP 普及组初赛 · NOIP 2016 普及组初赛试题 第 23 题

阅读程序 · 答案 6,1,3 · 考点:输入输出、位运算、分支结构、循环结构

← 整套速查表 NOIP 普及组初赛 全部真题

题目

阅读程序写结果:

#include <iostream>
using namespace std;
int main()
{
    int max, min, sum, count = 0;
    int tmp;
    cin >> tmp;
    if (tmp == 0)
        return 0;
    max = min = sum = tmp;
    count++;
    while (tmp != 0)
    {
        cin >> tmp;
        if (tmp != 0)
        {
            sum += tmp;
            count++;
            if (tmp > max)
                max = tmp;
            if (tmp < min)
                min = tmp;
        }
    }
    cout << max << "," << min << "," << sum / count << endl;
    return 0;
}

输入: 1 2 3 4 5 6 0 7 输出: _________

答案:6,1,3

考点

输入输出位运算 讲解 →位运算 真题汇总 →分支结构循环结构

解题思维

看到'0结束'→先想哨兵值只终止循环,不累加也不更新极值

常见错误

易把0后的7计入sum;整数除法21/6=3,别写3.5

详细解析(节选)

考点:循环结构|哨兵值处理|整数除法

程序在做什么

输入一系列非零整数,遇到0立即停止;统计有效数的最大值、最小值和平均值(整数除法)。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断