Open wjczser opened 7 months ago
一、提高题:
Sum1(int n)//函数使用了一个简单的循环来计算阶乘的累加和。在每次循环中,它更新了阶乘的值并将其加到总和中 { int p = 1, sum = 0, m; for (m = 1; m <= n; m++) { p *= m; sum += p; } 回报(总和);
} Sum2(int n)//函数也使用了循环,但在每次循环中,它重新计算了阶乘的值,而不是像 Sum1 那样简单地更新现有的阶乘值。 { int sum = 0, p, m, t; for (m = 1; m <= n; m++) { p = 1; for (t = 1; t <= m; t++) p = t; sum += p; } 回报(总和); } fact(int n)//函数是一个递归函数,它通过递归方式计算阶乘。 { if (n <= 1) return (1); else return (n fact(n - 1));
int main() { printf(“%d\n”, Sum1(5)); printf(“%d\n”, Sum2(5)); printf(“%d\n”, fact(5)); 返回 0; } 第二次课后作业
using namespace std;
// 学生信息结构体 struct Student { int id; // 学号 float score; // 成绩 };
// 输入学生成绩 void inputScores(vector& students) { int n; cout << "请输入学生人数: "; cin >> n; students.resize(n); for (int i = 0; i < n; ++i) { cout << "请输入第 " << i + 1 << " 个学生的学号和成绩: "; cin >> students[i].id >> students[i].score; } }
// 按成绩从高到低排序 void sortScores(vector& students) { sort(students.begin(), students.end(), [](const Student& a, const Student& b) { return a.score > b.score; }); }
// 计算平均成绩 float calculateAverage(const vector& students) { float sum = 0; for (const auto& student : students) { sum += student.score; } return sum / students.size(); }
// 计算不及格人数 int countFailures(const vector& students) { int count = 0; for (const auto& student : students) { if (student.score < 60) { // 假设60分为及格线 ++count; } } return count; }
// 打印成绩 void printScores(const vector& students) { for (const auto& student : students) { cout << "学号: " << student.id << ", 成绩: " << student.score << endl; } }
int main() { vector students;
inputScores(students); // 输入学生成绩 sortScores(students); // 排序 printScores(students); // 打印排序后的成绩 float average = calculateAverage(students); // 计算平均成绩 cout << "平均成绩: " << average << endl; int failures = countFailures(students); // 计算不及格人数 cout << "不及格人数: " << failures << endl; return 0;
}
阅,你的 C++ 有待提高,尤其是 include 没有写全。
一、提高题:
include < stdio.h>
Sum1(int n)//函数使用了一个简单的循环来计算阶乘的累加和。在每次循环中,它更新了阶乘的值并将其加到总和中 { int p = 1, sum = 0, m; for (m = 1; m <= n; m++) { p *= m; sum += p; } 回报(总和);
} Sum2(int n)//函数也使用了循环,但在每次循环中,它重新计算了阶乘的值,而不是像 Sum1 那样简单地更新现有的阶乘值。 { int sum = 0, p, m, t; for (m = 1; m <= n; m++) { p = 1; for (t = 1; t <= m; t++) p = t; sum += p; } 回报(总和); } fact(int n)//函数是一个递归函数,它通过递归方式计算阶乘。 { if (n <= 1) return (1); else return (n fact(n - 1));
int main() { printf(“%d\n”, Sum1(5)); printf(“%d\n”, Sum2(5)); printf(“%d\n”, fact(5)); 返回 0; } 第二次课后作业
include
include
include
using namespace std;
// 学生信息结构体 struct Student { int id; // 学号 float score; // 成绩 };
// 输入学生成绩 void inputScores(vector& students) {
int n;
cout << "请输入学生人数: ";
cin >> n;
students.resize(n);
for (int i = 0; i < n; ++i) {
cout << "请输入第 " << i + 1 << " 个学生的学号和成绩: ";
cin >> students[i].id >> students[i].score;
}
}
// 按成绩从高到低排序 void sortScores(vector& students) {
sort(students.begin(), students.end(), [](const Student& a, const Student& b) {
return a.score > b.score;
});
}
// 计算平均成绩 float calculateAverage(const vector& students) {
float sum = 0;
for (const auto& student : students) {
sum += student.score;
}
return sum / students.size();
}
// 计算不及格人数 int countFailures(const vector& students) {
int count = 0;
for (const auto& student : students) {
if (student.score < 60) { // 假设60分为及格线
++count;
}
}
return count;
}
// 打印成绩 void printScores(const vector& students) {
for (const auto& student : students) {
cout << "学号: " << student.id << ", 成绩: " << student.score << endl;
}
}
int main() { vector students;
}