// 增加学生记录 void add_stu(SqList *l) { printf("请输入学号:"); scanf("%s", l->stu[l->studentCount].NO); printf("请输入姓名:"); scanf("%s", l->stu[l->studentCount].name); printf("请输入性别(M表示男性,F表示女性):"); scanf(" %c", &l->stu[l->studentCount].sex); printf("请输入成绩:"); scanf("%f", &l->stu[l->studentCount].score); l->studentCount++; }
时间: 2024-04-25 14:27:16 浏览: 12
这段代码是关于学生记录的,具体来说是在向一个线性表中添加学生记录。通过用户输入学号、姓名、性别和成绩,然后将这些信息存储到线性表中。其中,NO、name、sex和score分别表示学生的学号、姓名、性别和成绩,studentCount表示当前线性表中已经有的学生记录数。这段代码中的操作是往线性表中添加一条新的学生记录。
相关问题
// 按学号查找学生记录 void search_no(SqList *l) { char NO[20]; printf("请输入要查找的学生学号:"); scanf("%s", NO); int i; for (i = 0; i < l->studentCount; i++) { if (strcmp(l->stu[i].NO, NO) == 0) { printf("学号:%s\n姓名:%s\n性别:%c\n成绩:%f\n", l->stu[i].NO, l->stu[i].name, l->stu[i].sex, l->stu[i].score); return; } } printf("未找到学号为 %s 的学生记录\n", NO); }
这段代码是关于学生记录的,具体来说是按照学号来查找学生记录。首先,用户需要输入要查找的学生学号,然后程序会根据输入的学号在线性表中查找相应的学生记录。如果找到了对应的学生记录,程序就会输出该学生的学号、姓名、性别和成绩。如果没有找到对应的学生记录,则程序会输出提示信息,说明该学号对应的学生记录不存在。在这段代码中,使用了strcmp函数来比较学号是否相同。如果相同,就表示找到了对应的学生记录。
请修改以下代码,使其能够正常运行。#include<stdio.h> #include<string.h> #include<stdlib.h> struct date { int year; int month; int day; }; struct stu { int num; char name[20]; char sex; struct date birth; float score; }; int main() { struct stu s1 = {10010,"zhangsan",'m',2000,5,4,84.5}, s2, s3; /*****输入学生信息存放在变量s2中*****/ /********** Begin **********/ scanf("%d",&(s2.num)); scanf("%s",&(s2.name)); scanf("%c",&(s2.sex)); scanf("%d %d %d",&(s2.birth.year),&(s2.birth.month),&(s2.birth.day)); scanf("%f",&(s2.score)); /********** End **********/ /*****交换两个结构体变量s1和s2*****/ /********** Begin **********/ strcpy(s1.num,s3.num); strcpy(s1.name,s3.name); strcpy(s1.sex,s3.sex); strcpy(s1.date.birth,s3.date.birth); strcpy(s1.score,s3.score); strcpy(s1.num,s2.num); strcpy(s1.name,s2.name); strcpy(s1.sex,s2.sex); strcpy(s1.date.birth,s2.date.birth); strcpy(s1.score,s2.score); strcpy(s3.num,s2.num); strcpy(s3.name,s2.name); strcpy(s3.sex,s2.sex); strcpy(s3..birth,s2.birth); strcpy(s3.score,s2.score); /********** End **********/ /*****输出结构体变量s1和s2的成员*****/ /********** Begin **********/ printf("学号:%d",s1.num); printf("姓名:%s"s1.name); printf("性别:%c",s1.sex); printf("出生日期:%d年%d月%d日",s1.birth.year); printf("成绩:%d",s1.score); printf("学号:%d",s2.num); printf("姓名:%s",s2.name); printf("性别:%d",s2.sex); printf("出生日期:%d年%d月%d日",s2.birth.year,s2.birth.month,s2.birth.day); printf("成绩:%d",s2.score); /********** End **********/ return 0; }
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct date {
int year;
int month;
int day;
};
struct stu {
int num;
char name[20];
char sex;
struct date birth;
float score;
};
int main() {
struct stu s1 = {10010,"zhangsan",'m',{2000,5,4},84.5}, s2, s3;
/*****输入学生信息存放在变量s2中*****/
/********** Begin **********/
scanf("%d",&(s2.num));
scanf("%s",s2.name);
scanf(" %c",&(s2.sex));
scanf("%d%d%d",&(s2.birth.year),&(s2.birth.month),&(s2.birth.day));
scanf("%f",&(s2.score));
/********** End **********/
/*****交换两个结构体变量s1和s2*****/
/********** Begin **********/
s3 = s1; // 先将 s1 的值赋给 s3,避免丢失 s1 的信息
s1 = s2;
s2 = s3;
/********** End **********/
/*****输出结构体变量s1和s2的成员*****/
/********** Begin **********/
printf("学号:%d\n",s1.num);
printf("姓名:%s\n",s1.name);
printf("性别:%c\n",s1.sex);
printf("出生日期:%d年%d月%d日\n",s1.birth.year,s1.birth.month,s1.birth.day);
printf("成绩:%.1f\n",s1.score);
printf("学号:%d\n",s2.num);
printf("姓名:%s\n",s2.name);
printf("性别:%c\n",s2.sex);
printf("出生日期:%d年%d月%d日\n",s2.birth.year,s2.birth.month,s2.birth.day);
printf("成绩:%.1f\n",s2.score);
/********** End **********/
return 0;
}