QZHY-HTX / Data-Structure

泉州海洋职业学院信息工程学院2023-2024学年第二学期数据结构课程仓库
MIT License
6 stars 9 forks source link

马鑫航,2302580053 #10

Open 2023920 opened 7 months ago

2023920 commented 7 months ago

一、提高题:

include

Sum1(int n)//函数使用了一个简单的循环来计算阶乘的累加和。在每次循环中,它更新了阶乘的值并将其加到总和中 { int p = 1, sum = 0, m; for (m = 1; m <= n; m++) { p = m; sum += p; } return (sum); } 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; } return (sum); } 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)); return 0; } 二,课后作业

include

struct Student { int id; float score; };

bool compareScores(const Student &a, const Student &b) { return a.score > b.score; }

int main() { int n; printf("请输入学生人数: "); scanf("%d", &n);

Student *students = new Student[n];

// 输入学生学号和成绩
for (int i = 0; i < n; ++i) {
    printf("请输入第 %d 个学生的学号和成绩: ", i + 1);
    scanf("%d %f", &students[i].id, &students[i].score);
}

// 按成绩由高到低排序
for (int i = 0; i < n - 1; ++i) {
    for (int j = 0; j < n - i - 1; ++j) {
        if (compareScores(students[j], students[j + 1])) {
            Student temp = students[j];
            students[j] = students[j + 1];
            students[j + 1] = temp;
        }
    }
}
printf("学生的学号和成绩按成绩从高到低排列如下:\n");
for (int i = 0; i < n; ++i) {
    printf("学号: %d, 成绩: %.2f\n", students[i].id, students[i].score);
}
float sum = 0;
int failCount = 0;
for (int i = 0; i < n; ++i) {
    sum += students[i].score;
    if (students[i].score < 60) {
        ++failCount;
    }
}
float averageScore = sum / n;
printf("平均成绩为: %.2f\n", averageScore);
printf("不及格学生人数为: %d\n", failCount);
delete[] students;
return 0;

}

QZHY-HTX commented 7 months ago

提高题 请你分析时间复杂度

课后作业 完成得不错,继续保持!