8-0u1CMzUE8CXOTIK.png

一个适合中学生NOI(全国青少年信息学奥林匹克竞赛)比赛的C++编程题目入门示例。 这个题目涉及到基本的算法和数据结构,适合初学者练习。

题目:计算数字的平均值

问题描述:

给定一组整数,计算它们的平均值,并找出大于平均值的整数的数量。

输入:

第一行包含一个整数n(1 <= n <= 100),表示整数的数量。
接下来的一行包含n个整数,每个整数都在-100到100之间。

输出:

第一行输出平均值(保留两位小数)。
第二行输出大于平均值的整数的数量。

示例输入:

5
12 7 3 15 9

示例输出

9.20
3

编程要求:

请使用C++编写一个程序,读取输入数据并计算平均值以及大于平均值的整数数量。然后输出结果。

这个题目可以帮助学生练习基本的输入/输出操作,循环和条件语句的使用,以及基本的数学运算。同时,它也可以帮助他们熟悉C++的语法和编程环境。如果需要更多的编程题目,可以考虑扩展这个题目或查找其他类似的问题。

参考实现代码

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n;
    cin >> n;

    vector<int> numbers(n);
    int sum = 0;

    for (int i = 0; i < n; ++i) {
        cin >> numbers[i];
        sum += numbers[i];
    }

    double average = static_cast<double>(sum) / n;

    int countAboveAverage = 0;
    for (int i = 0; i < n; ++i) {
        if (numbers[i] > average) {
            countAboveAverage++;
        }
    }

    cout << fixed;
    cout.precision(2);
    cout << average << endl;
    cout << countAboveAverage << endl;

    return 0;
}

这段代码首先读取整数的数量n,然后使用一个vector来存储输入的整数。接着,它计算这些整数的总和,然后通过总和除以n来计算平均值。最后,它遍历整数数组,计算大于平均值的整数数量,并将结果输出到标准输出。

你可以将这段代码复制到C++编译器中进行编译和运行,以查看它的工作方式并测试不同的输入。希望这有助于你练习编程和理解基本的C++编程概念。

其他入门题目

题目1:计算阶乘

问题描述:

给定一个正整数n,计算n的阶乘。

输入:

一个正整数n(1 <= n <= 10)。

输出:

n的阶乘。

示例输入:

5

示例输出:

120

题目2:查找最大元素

问题描述:

给定一组整数,找出其中的最大元素。

输入:

第一行包含一个整数n(1 <= n <= 100),表示整数的数量。
接下来的一行包含n个整数,每个整数都在-100到100之间。

输出:

最大的整数。

示例输入:

7
12 7 3 15 9 21 8

示例输出:

21

题目3:数字反转

问题描述:

给定一个正整数,将其各位数字反转。

输入:

一个正整数x(1 <= x <= 10^9)。

输出:

x的各位数字反转后的结果。

示例输入:

12345

示例输出:

54321

这些题目涵盖了一些基本的算法和数据结构概念,包括循环、条件语句和基本的数学运算。它们可以帮助学生巩固C++编程基础和解决问题的能力。你可以使用这些题目作为练习,或者根据需要进行扩展和修改,以满足学生的需求和挑战级别

参考实现代码

题目1:计算阶乘

#include <iostream>

using namespace std;

int main() {
    int n;
    cin >> n;

    int factorial = 1;
    for (int i = 1; i <= n; ++i) {
        factorial *= i;
    }

    cout << factorial << endl;

    return 0;
}

题目2:查找最大元素

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n;
    cin >> n;

    vector<int> numbers(n);

    for (int i = 0; i < n; ++i) {
        cin >> numbers[i];
    }

    int maxNumber = numbers[0];
    for (int i = 1; i < n; ++i) {
        if (numbers[i] > maxNumber) {
            maxNumber = numbers[i];
        }
    }

    cout << maxNumber << endl;

    return 0;
}

题目3:数字反转

#include <iostream>

using namespace std;

int main() {
    int x;
    cin >> x;

    int reversed = 0;
    while (x > 0) {
        reversed = reversed * 10 + x % 10;
        x /= 10;
    }

    cout << reversed << endl;

    return 0;
}

标签: none