在同一所大学其不同专业的录取过程代码举例c语言
时间: 2023-12-14 17:38:12 浏览: 74
以下是一个简单的 C 语言代码实现,用于模拟同一所大学不同专业的录取过程。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_DEPARTMENTS 5
#define MAX_CANDIDATES 10
struct candidate {
char name[20];
int score;
};
struct department {
char name[20];
int capacity;
int num_applicants;
struct candidate applicants[MAX_CANDIDATES];
};
int main() {
struct department departments[MAX_DEPARTMENTS];
int i, j, k, m;
// 初始化各个专业
strcpy(departments[0].name, "计算机科学与技术");
departments[0].capacity = 3;
departments[0].num_applicants = 0;
strcpy(departments[1].name, "电子信息工程");
departments[1].capacity = 2;
departments[1].num_applicants = 0;
strcpy(departments[2].name, "土木工程");
departments[2].capacity = 2;
departments[2].num_applicants = 0;
strcpy(departments[3].name, "会计学");
departments[3].capacity = 1;
departments[3].num_applicants = 0;
strcpy(departments[4].name, "英语");
departments[4].capacity = 1;
departments[4].num_applicants = 0;
// 模拟考生报名
struct candidate candidates[MAX_CANDIDATES];
k = 0;
strcpy(candidates[k].name, "张三");
candidates[k].score = 90;
k++;
strcpy(candidates[k].name, "李四");
candidates[k].score = 85;
k++;
strcpy(candidates[k].name, "王五");
candidates[k].score = 95;
k++;
strcpy(candidates[k].name, "赵六");
candidates[k].score = 80;
k++;
// 模拟录取过程
for (i = 0; i < MAX_DEPARTMENTS; i++) {
printf("%s:\n", departments[i].name);
// 首先按照成绩从高到低对考生进行排序
for (j = 0; j < k - 1; j++) {
for (m = 0; m < k - j - 1; m++) {
if (candidates[m].score < candidates[m + 1].score) {
struct candidate temp = candidates[m];
candidates[m] = candidates[m + 1];
candidates[m + 1] = temp;
}
}
}
// 然后按照录取人数进行录取
for (j = 0; j < k; j++) {
if (departments[i].num_applicants == departments[i].capacity) {
break;
}
if (departments[i].num_applicants < departments[i].capacity) {
departments[i].applicants[departments[i].num_applicants] = candidates[j];
departments[i].num_applicants++;
}
}
// 输出录取结果
for (j = 0; j < departments[i].num_applicants; j++) {
printf("\t%s\t%d\n", departments[i].applicants[j].name, departments[i].applicants[j].score);
}
}
return 0;
}
```
该程序首先定义了两个结构体,`candidate` 表示考生,包含姓名和成绩两个属性;`department` 表示专业,包含名称、容量、报名人数和报名考生列表四个属性。然后在 `main` 函数中初始化了五个专业和四个考生,并模拟了录取过程。具体来说,首先按照考生成绩从高到低排序,然后按照录取人数进行录取,最后输出录取结果。
阅读全文