4.输入n(n<=20)名职工的姓名(姓名的长度小于10)及计算机水平考试成绩,输出及格人数和及格的职工姓名。(期末真题)
【设计要求】
(1)定义职工结构体类型struct Staff
(2)定义输入函数void input(struct Staff work[], int n)完成职工信息的输入,各输入信息间以空格为间隔。
(3)定义输出函数void print(struct Staff work[], int n)完成程序的输出,输出姓名以空格为间隔。
(4)main()要校验输入职工数量N是否符合要求,不符合要求则重新输入。
【输入输出样例】
请输入职工数量:4
请输入4位职工的姓名和成绩:aaa 88 bbb 56 ccc 75 ddd 45
共2位职工成绩合格,合格职工名单: aaa ccc
程序代码:
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 20
#define PASS_SCORE 60
struct Staff {
char name[10];
int score;
};
void input(struct Staff work[], int n) {
for (int i = 0; i < n; i++) {
scanf("%s %d", work[i].name, &work[i].score);
}
}
void print(struct Staff work[], int n) {
int passCount = 0;
printf("合格职工名单: ");
for (int i = 0; i < n; i++) {
if (work[i].score >= PASS_SCORE) {
printf("%s ", work[i].name);
passCount++;
}
}
printf("\n共%d位职工成绩合格\n", passCount);
}
int main() {
int n;
printf("请输入职工数量: ");
scanf("%d", &n);
if (n <= 0 || n > MAX_SIZE) {
printf("职工数量不符合要求,请重新输入\n");
return 0;
}
struct Staff work[MAX_SIZE];
printf("请输入%d位职工的姓名和成绩: ", n);
input(work, n);
print(work, n);
return 0;
}
标签:职工,struct,int,work,11.24,输入,Staff From: https://www.cnblogs.com/lml66/p/17909401.html