2、 编写一个程序,输入4个学生3门功课的成绩,再写一个one函数,用来求出每个学生的平均分,并且在这个one函数中把每个人的平均分输出,在主函数main()中任意输入4个学生3门功课的成绩,然后去调用one,这个函数都不要去返回值。
时间: 2024-03-10 12:46:52 浏览: 63
以下是一个示例程序,可以实现你的要求:
```python
def one(scores):
for i in range(4):
avg = sum(scores[i]) / 3
print("学生{}的平均分为:{:.2f}".format(i+1, avg))
if __name__ == '__main__':
scores = []
for i in range(4):
print("请输入第{}个学生的3门功课成绩:".format(i+1))
s = list(map(float, input().split()))
scores.append(s)
one(scores)
```
程序首先定义了一个函数`one()`,它的参数是一个二维列表,表示4个学生3门功课的成绩。函数中使用了一个for循环,遍历每个学生的成绩,计算出平均分并输出。注意输出时使用了字符串格式化,保留2位小数。
在`main()`函数中,首先定义了一个空列表`scores`,然后使用一个for循环,输入4个学生的成绩,并把它们添加到`scores`列表中。最后调用`one()`函数,把`scores`作为参数传入。程序运行后,会输出每个学生的平均分。
相关问题
用C语言编写一个程序,输入4个学生3门功课的成绩,再写一个one函数,用来求出每个学生的平均分,并且在这个one函数中把每个人的平均分输出,在主函数main()中任意输入4个学生3门功课的成绩,然后去调用one,这个函数都不要去返回值。
以下是一个示例程序,可以实现你的要求:
```c
#include <stdio.h>
void one(float scores[][3]) {
for (int i = 0; i < 4; i++) {
float sum = 0;
for (int j = 0; j < 3; j++) {
sum += scores[i][j];
}
float avg = sum / 3;
printf("学生%d的平均分为:%.2f\n", i+1, avg);
}
}
int main() {
float scores[4][3];
for (int i = 0; i < 4; i++) {
printf("请输入第%d个学生的3门功课成绩:", i+1);
scanf("%f %f %f", &scores[i][0], &scores[i][1], &scores[i][2]);
}
one(scores);
return 0;
}
```
程序首先定义了一个函数`one()`,它的参数是一个二维数组,表示4个学生3门功课的成绩。函数中使用了两个for循环,遍历每个学生的成绩,计算出平均分并输出。注意输出时使用了格式化输出,保留2位小数。
在`main()`函数中,首先定义了一个二维数组`scores`,然后使用两个for循环,输入4个学生的成绩,并把它们存储到`scores`数组中。最后调用`one()`函数,把`scores`作为参数传入。程序运行后,会输出每个学生的平均分。
用C++编写以下程序:有 5 个学生,每个学生的数据包括学号、姓名、三门课成绩,从键盘输入 5 个学生的数据, 要求计算并输出: (1)每个学生三门课的总成绩。 (2)三门课每门课程的平均成绩。 指导: (1)定义一个学生类 TStudent,包含 4 个私有数据成员(学号、姓名、3 门功课的成绩 和总成绩),3 个公有成员函数(初始化对象的函数 Init、显示学生信息的函数 show_st 和得到 学生 3 门功课成绩的函数 GetScore)。 (2)在 Init 函数中求每个学生三门课的总成绩。 (3)在 main 函数中求三门课每门课程的平均成绩
以下是用C++编写的程序:
```c++
#include <iostream>
#include <string>
using namespace std;
class TStudent {
private:
string id;
string name;
int score[3];
int totalScore;
public:
void Init(string id, string name, int score1, int score2, int score3) {
this->id = id;
this->name = name;
this->score[0] = score1;
this->score[1] = score2;
this->score[2] = score3;
this->totalScore = score1 + score2 + score3;
}
void show_st() {
cout << "学生ID:" << id << endl;
cout << "学生姓名:" << name << endl;
cout << "三门课成绩:" << score[0] << " " << score[1] << " " << score[2] << endl;
cout << "总成绩:" << totalScore << endl;
}
int* GetScore() {
return score;
}
};
int main() {
TStudent students[5];
string id, name;
int score1, score2, score3;
// 输入学生信息
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "学生ID:";
cin >> id;
cout << "学生姓名:";
cin >> name;
cout << "三门课成绩:";
cin >> score1 >> score2 >> score3;
students[i].Init(id, name, score1, score2, score3);
}
// 计算平均成绩
int totalScore[3] = {0};
for (int i = 0; i < 5; i++) {
int* score = students[i].GetScore();
totalScore[0] += score[0];
totalScore[1] += score[1];
totalScore[2] += score[2];
}
double avgScore[3] = {0};
for (int i = 0; i < 3; i++) {
avgScore[i] = totalScore[i] / 5.0;
}
// 输出结果
for (int i = 0; i < 5; i++) {
students[i].show_st();
}
cout << "三门课程的平均成绩:" << avgScore[0] << " " << avgScore[1] << " " << avgScore[2] << endl;
return 0;
}
```
程序中定义了一个学生类 `TStudent`,包含学生的学号、姓名、三门课成绩和总成绩。在 `Init` 函数中,计算每个学生的总成绩。在 `main` 函数中,输入学生信息,计算每门课程的平均成绩,然后输出结果。
阅读全文