发奋图强的赵同学 2019-12-30 19:42 采纳率: 0%
浏览 192

为什么不能继续录入成绩

图片说明
#include
#include
#include
#include

/*用于储存学生的各科成绩*/

typedef struct _grades{
int math; //高数成绩
int CLanguage; //C语言成绩
int English; //英语成绩
int Moral; //思修成绩
}Grades;

typedef struct _student{
char id[10]; //学生学号
char names[10]; //学生姓名
int clas; //学生班级
Grades grades; //学生成绩
}Student;

int number = 0;
/*函数声明*/
void menu(); //菜单函数
void insert(Student *); //添加函数
void alter(void); //修改函数
void search(void); //查询函数
double function1(Student * ); //用于计算学生的总成绩

Student Information[500];

void menu()
{
int choice;
printf("本程序的功能为如下:\n************************************\n");
printf("1.录入学生成绩\n");
printf("2.修改学生成绩\n");
printf("3.查询学生成绩\n");
printf("4.退出程序\n");
printf("************************************\n");
printf("请选择(输入1-4之间的整数):\n");
scanf("%d", &choice);
switch(choice)
{
case 1: //添加学生信息
insert(&Information[number]);
number++;
printf("请继续选择:\n");
menu();
break;
case 2: //修改学生信息
alter();
printf("请继续选择\n");
menu();
break;
case 3: //查询学生信息
search();
printf("请继续选择\n");
menu();
break;
default:
printf("谢谢使用");
break;

}
}

/* double function1(Student * student)
{
double sum;
sum = student->grades.math + student->grades.CLanguage + student->grades.English + student->grades.Moral;
return sum;
} */

void insert(Student * ptr_1)
{
ptr_1 = (Student *)malloc(sizeof(Student *));
printf("请输入学生的学号:");
scanf("%s", ptr_1->id);
fflush(stdin);
printf("请输入学生的姓名:");
scanf("%s", ptr_1->names);
fflush(stdin);
printf("请输入学生的班级:");
scanf("%d", ptr_1->clas);
fflush(stdin);
printf("1.请输入学生的高数成绩:");
scanf("%d", ptr_1->grades.math);
fflush(stdin);
printf("2.请输入学生的C语言成绩:");
scanf("%d", ptr_1->grades.CLanguage);
fflush(stdin);
printf("3.请输入学生的英语成绩:");
scanf("%d", ptr_1->grades.English);
fflush(stdin);
printf("4.请输入同学的思修成绩:");
scanf("%d", ptr_1->grades.Moral);
fflush(stdin);
}

void alter(void) //修改函数
{
char id; //学生学号
int i;
Student * ptr;
printf("请输入想要修改信息的学生的学号:");
scanf("%d", &id);
fflush(stdin);
for(i = 0; i < number; i++)
{
if(strcmp(id, Information[i].id) == 0)
{
ptr = &Information[i];
printf("请输入修改后的高数成绩:");
scanf("%d", ptr->grades.math);
printf("请输入修改后的C语言成绩:");
scanf("%d", ptr->grades.CLanguage);
printf("请输入修改后的英语成绩:");
scanf("%d", ptr->grades.English);
printf("请输入修改后的思修成绩:");
scanf("%d", ptr->grades.Moral);
break;
}
}
printf("修改成功!");
}

void search(void) //查询函数
{
char id; //学生学号
int i;
printf("请输入所查找学生的学号:");
scanf("%d", &id);
fflush(stdin);
for(i = 0; i < number; i++)
{
strcmp(id, Information[i].id); //比较所输入的学号和程序中已经录入的学号是否有相同的
if(strcmp(id, Information[i].id) == 0)
{
printf("已经查找到所要查找的学生\n");
printf("学生的姓名为:%d", Information[i].names);
printf("学生的班级为:%d", Information[i].clas);
printf("学生的高数成绩为:%d", Information[i].grades.math);
printf("学生的英语成绩为:%d", Information[i].grades.English);
printf("学生的C语言成绩为:%d", Information[i].grades.CLanguage);
printf("学生的思修成绩为:%d", Information[i].grades.Moral);
}
}
}

int main()
{
//Student student;
menu();
//printf("%d %d", Information[0].id, Information[0].clas );

// sum = function1(&student);
return 0;
}

图片说明


  • 写回答

1条回答 默认 最新

  • bostonAlen 2019-12-30 21:04
    关注

    vs 单步调试,跟下代码

    评论

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题