1.写一个学生信息录入程序: (1)透行程序,提示用戸輸入"name age class student_id” 的信息。程序<取 用户输入数据,并等待下一次输入。 (2)如果输入为“quit”,将已有的数据按姓名排序,向屏幕打印所有人的姓名与学号 再将所有信息保存至一个文本文件中(格式自定),然后结束程序
时间: 2023-03-28 22:00:46 浏览: 145
我可以回答这个问题。以下是一个示例程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
struct student {
char name[20];
int age;
char class[10];
char student_id[10];
};
int compare_students(const void *a, const void *b) {
const struct student *sa = (const struct student *)a;
const struct student *sb = (const struct student *)b;
return strcmp(sa->name, sb->name);
}
int main() {
struct student students[MAX_STUDENTS];
int num_students = ;
char input[20];
while (1) {
printf("请输入姓名、年龄、班级和学号,或输入 quit 退出:");
scanf("%s", input);
if (strcmp(input, "quit") == ) {
break;
}
strcpy(students[num_students].name, input);
scanf("%d %s %s", &students[num_students].age, students[num_students].class, students[num_students].student_id);
num_students++;
}
qsort(students, num_students, sizeof(struct student), compare_students);
printf("所有学生的姓名和学号如下:\n");
for (int i = ; i < num_students; i++) {
printf("%s %s\n", students[i].name, students[i].student_id);
}
FILE *fp = fopen("students.txt", "w");
if (fp == NULL) {
printf("无法打开文件!\n");
exit(1);
}
for (int i = ; i < num_students; i++) {
fprintf(fp, "%s %d %s %s\n", students[i].name, students[i].age, students[i].class, students[i].student_id);
}
fclose(fp);
return ;
}
注意,这个程序只是一个示例,实际使用时可能需要根据具体需求进行修改。
阅读全文