从键盘上输入某学生4门成绩,输出该学生的总成绩和平均成绩c++
时间: 2024-11-13 10:18:24 浏览: 39
在C++中,你可以使用`cin`从键盘获取用户输入的学生四门成绩,然后通过循环计算总成绩和平均成绩。下面是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
int main() {
int num_subjects = 4;
double scores[num_subjects];
cout << "请输入学生四门课的成绩:" << endl;
for (int i = 0; i < num_subjects; ++i) {
cin >> scores[i];
}
double total_score = 0;
for (double score : scores) {
total_score += score;
}
double average_score = total_score / num_subjects;
cout << "该学生的总成绩是: " << total_score << endl;
cout << "该学生的平均成绩是: " << average_score << endl;
return 0;
}
```
在这个程序中,我们首先定义了四个分数变量用于存储学生的成绩,然后通过循环读取用户的输入,并将所有成绩累加到`total_score`中。最后,我们将总成绩除以科目数得到平均分。
相关问题
(1)从键盘上输入某学生4门课程的成绩,输出该学生的总成绩和平均成绩。 (2)将一个实数保留到小数点后2位,对第3位小数按四舍五入处理。例如,若输 入123.45678,则输出为123.46;若输入123.45123,则输出为123.45。
(1) 在C++中,你可以使用`cin`从键盘获取用户的输入,然后遍历这些输入计算总成绩和平均成绩。以下是一个简单的示例程序:
```cpp
#include <iostream>
class Student {
public:
void set_scores(int math, int science, int english, int history) {
total_score = math + science + english + history;
num_courses = 4;
}
double calculate_average() {
return static_cast<double>(total_score) / num_courses;
}
private:
int total_score = 0;
int num_courses = 0;
};
int main() {
Student student;
int score[4];
for (int i = 0; i < 4; ++i) {
std::cout << "Enter score for course " << (i+1) << ": ";
std::cin >> score[i];
}
student.set_scores(score[0], score[1], score[2], score[3]);
double average_score = student.calculate_average();
std::cout << "Total score: " << total_score << std::endl;
std::cout << "Average score: " << average_score << std::endl;
return 0;
}
```
在这个例子中,我们首先定义了一个名为`Student`的类,其中包含私有成员变量`total_score`(用于存储总分)和`num_courses`(表示课程数量)。然后,在`set_scores`方法里设置分数并计算总分,`calculate_average`方法返回平均分。
在`main`函数中,我们创建一个`Student`对象并要求用户依次输入四门课程的成绩,然后调用`set_scores`和`calculate_average`方法。
(2) 对于第二个问题,我们可以使用`std::fixed`和`std::setprecision`来控制浮点数的显示精度。以下是一个函数来实现这个功能:
```cpp
#include <iostream>
#include <iomanip>
double round_to_two_decimal_places(double num) {
return std::fixed << std::setprecision(2) << num;
}
int main() {
double input;
std::cout << "Enter a decimal number: ";
std::cin >> input;
double output = round_to_two_decimal_places(input);
std::cout << "Output: " << output << std::endl;
return 0;
}
```
这里定义了一个`round_to_two_decimal_places`函数,它接受一个双精度数,然后使用`std::fixed`和`std::setprecision`将其格式化为两位小数。在主函数中,读取用户输入并输出处理后的结果。
编成求从键盘输入一个学生的n门成绩,计算出该学生的总成绩和平均成绩。 输入:第一行输入一个整数n,第二行输入n个整数 输出:总成绩和平均成绩,其中平均成绩保留小数点后两位
以下是使用 C++ 编写的代码实现:
```cpp
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int n, score, sum = 0;
double avg;
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> score;
sum += score;
}
avg = (double)sum / n;
cout << "总成绩:" << sum << endl;
cout << "平均成绩:" << fixed << setprecision(2) << avg << endl;
return 0;
}
```
代码说明:
- 第 5 行,定义变量 `n` 表示成绩数量,变量 `score` 表示每门成绩,变量 `sum` 表示总成绩,变量 `avg` 表示平均成绩。
- 第 7 行,从键盘输入成绩数量 `n`。
- 第 8 行至第 11 行,使用循环逐个输入每门成绩,并将其累加到总成绩 `sum` 中。
- 第 12 行,计算平均成绩 `avg`,需要将 `sum` 强制转换成 `double` 类型,否则计算结果将会是一个整数。
- 第 13 行和第 14 行,分别输出总成绩和平均成绩,其中使用 `fixed` 和 `setprecision` 控制输出小数点后两位。
使用样例:
```
输入:
5
80 90 70 85 95
输出:
总成绩:420
平均成绩:84.00
```
阅读全文