【例 2.2】有 50 个学生,要求将他们之中成绩在 80 分以上者打印出来。
如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩,gi表示第个学生成绩;
则算法可表示如下:
S1: 1→i
S2: 如果gi≥80,则打印ni和gi,否则不打印
S3: i+1→i
S4:若 i≤50, 返回 S2,否则,结束。
#include
#include
#include
// #include "../../tools/tools/String/array_to_string.h"
#define NUM_STUDENTS 50
int main() {
int student_ids[NUM_STUDENTS];
int scores[NUM_STUDENTS];
int i;
int arr[] = {1, 2, 3, 4, 5};
// 初始化随机数种子
srand(time(NULL));
// 填充学生学号,这里简单从1到50
for (i = 0; i < NUM_STUDENTS; i++) {
student_ids[i] = i + 1;
}
// int size = sizeof(student_ids) / sizeof(student_ids[0]);
// char* str = array_to_string(student_ids, size);
// 生成随机成绩(例如,介于0到100之间)
for (i = 0; i < NUM_STUDENTS; i++) {
scores[i] = rand() % 101; // %101 保证范围在0-100
}
// 打印80分以上的学生信息
printf("成绩80分以上的学生信息:
");
for (i = 0; i < NUM_STUDENTS; i++) {
if (scores[i] >= 80) {
printf("学生学号: %d, 成绩: %d
", student_ids[i], scores[i]);
}
}
return 0;
}