c++编程,并输出结果:随机产生100个50~100之间的整数作为初始的学生成绩数据,接下来将所有成绩 由百分制改成等级制,对应的规则如下: <60不及格,>=60 and<70及格,>=70 and <80 中,>=80and<90良,>=90优秀,最后将转换后的结果保存到容器中或直接输出显示。
时间: 2024-02-25 18:57:53 浏览: 65
好的,这是一个比较简单的C++编程需求,以下是代码实现:
```c++
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
vector<string> grades = {"不及格", "及格", "良", "优秀"}; // 初始等级制数组
vector<int> scores; // 初始学生成绩数组
srand(time(NULL)); // 随机种子
// 随机产生100个50~100之间的整数
for (int i = 0; i < 100; i++) {
scores.push_back(rand() % 51 + 50);
}
// 将百分制成绩转换为等级制
vector<string> grade_scores;
for (int i = 0; i < scores.size(); i++) {
int index = (scores[i] - 60) / 10;
if (index < 0) index = 0;
if (index > 3) index = 3;
grade_scores.push_back(grades[index]);
}
// 输出结果
for (int i = 0; i < grade_scores.size(); i++) {
cout << "学生" << i+1 << "的成绩为:" << scores[i] << ",等级为:" << grade_scores[i] << endl;
}
return 0;
}
```
这里使用了vector容器来保存成绩和等级制数据,便于后续的处理和输出。在随机产生100个50~100之间的整数时,使用了srand和time函数来初始化随机种子,保证每次运行程序时生成的随机数不同。在将百分制成绩转换为等级制时,使用了一个简单的算法,将成绩减去60再除以10,得到对应的等级制数组下标。最后将转换后的结果输出即可。
阅读全文