设计一个程序,计算某个班级的学生《C++程序设计》课程考试的平均分和不及格率。其中,试卷总分为100分,成绩低于60分为不及格。
要求:班级人数事先不确定,具体人数在程序运行后从键盘输入获得。并且,从堆空间上动态申请数组空间来存放整个班级学生的考试成绩。
提示:在堆空间上动态申请数组空间的格式:new type[size]; 同时返回一个指向数组空间开始位置的指针。释放堆空间数组的格式:delete [ ] pointer。
设计一个程序,计算某个班级的学生《C++程序设计》课程考试的平均分和不及格率。其中,试卷总分为100分,成绩低于60分为不及格。
要求:班级人数事先不确定,具体人数在程序运行后从键盘输入获得。并且,从堆空间上动态申请数组空间来存放整个班级学生的考试成绩。
提示:在堆空间上动态申请数组空间的格式:new type[size]; 同时返回一个指向数组空间开始位置的指针。释放堆空间数组的格式:delete [ ] pointer。
【以下回答由 GPT 生成】
设计一个程序,用于计算某个班级学生《C++程序设计》课程考试的平均分和不及格率。其中,试卷总分为100分,成绩低于60分为不及格。
请问如何设计这个程序,以满足以下要求:
new type[size]
,同时返回一个指向数组空间开始位置的指针。delete [] pointer
。首先,通过用户输入获取班级人数。
int numStudents;
cout << "请输入班级人数: ";
cin >> numStudents;
使用new
运算符,在堆空间上动态申请一个整型数组,用来存储学生的考试成绩。申请的数组大小应为班级人数。
int* scores = new int[numStudents];
通过循环,获取每个学生的考试成绩,并将其存储在相应的数组元素中。
for (int i = 0; i < numStudents; i++) {
cout << "请输入第 " << i + 1 << " 位学生的考试成绩: ";
cin >> scores[i];
}
使用循环,计算考试成绩低于60分的学生人数,以得到不及格人数。
int numFailures = 0;
for (int i = 0; i < numStudents; i++) {
if (scores[i] < 60) {
numFailures++;
}
}
通过循环,计算班级的总成绩。
int totalScore = 0;
for (int i = 0; i < numStudents; i++) {
totalScore += scores[i];
}
计算班级的平均分。需要注意,平均分应根据班级实际人数计算。
double averageScore = static_cast<double>(totalScore) / numStudents;
计算不及格率,也需要根据班级实际人数计算。
double failureRate = static_cast<double>(numFailures) / numStudents * 100;
输出计算结果。
cout << "班级平均分: " << averageScore << endl;
cout << "不及格率: " << failureRate << "%" << endl;
释放动态申请的数组空间,以防止内存泄漏。
delete[] scores;
下面是完整的C++代码:
#include <iostream>
using namespace std;
int main() {
int numStudents;
cout << "请输入班级人数: ";
cin >> numStudents;
int* scores = new int[numStudents];
for (int i = 0; i < numStudents; i++) {
cout << "请输入第 " << i + 1 << " 位学生的考试成绩: ";
cin >> scores[i];
}
int numFailures = 0;
for (int i = 0; i < numStudents; i++) {
if (scores[i] < 60) {
numFailures++;
}
}
int totalScore = 0;
for (int i = 0; i < numStudents; i++) {
totalScore += scores[i];
}
double averageScore = static_cast<double>(totalScore) / numStudents;
double failureRate = static_cast<double>(numFailures) / numStudents * 100;
cout << "班级平均分: " << averageScore << endl;
cout << "不及格率: " << failureRate << "%" << endl;
delete[] scores;
return 0;
}
请确保按照步骤顺序编写代码,并注意释放动态申请的数组空间,以防止内存泄漏。
【相关推荐】