这串代码执行程序时只有输入1才能起作业,输入2,3时不起作用,可以看下为什么吗(代码还未写完);
```c
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<dos.h>
#include<string.h>
#include<conio.h>
#define FORMAT "%d%s%d\n"
#define DATA stu[i].num,stu[i].name,stu[i].classroom
#define LEN sizeof(struct student)
struct student{
int num;
char name[20];
int classroom;
};
int num;
struct student stu[1000];
void menu1();
void menu2();
void input();
void show();
void serach();
int main()
{
system("color e3\n");
int n;
char w;
printf("\t\t\t***欢***迎***进***入***学***习***平***台******管***理***系***统\n");
printf("\t\t\t\t\t\t请输入模式(T):");
scanf("%c",&n);
if(n=='T'||n=='t'){
menu1();
scanf("%d",&n);
while(n){
switch(n)
{
case 1:input();break;
case 2:serach();break;
case 3:printf("%d %s %d",stu[0].num,stu[0].name,stu[0].classroom);break;
case 4:show();break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
default:break;
}
printf("输入任意键将返回主菜单");
getchar();
menu1();
scanf("%d",&n);
}
}
return 0;
}
void menu1(){
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t |--------------------------------------------|\n");
printf("\t\t\t\t | 学习平台管理系统 |\n");
printf("\t\t\t\t |1.录入学生信息(学号、姓名、班级) |\n");
printf("\t\t\t\t |2.查找学生信息 |\n");
printf("\t\t\t\t |3.新增试题 |\n");
printf("\t\t\t\t |4.更新积分 |\n");
printf("\t\t\t\t |5.计算学生等级 |\n");
printf("\t\t\t\t |6.新增课程 |\n");
printf("\t\t\t\t |7.按某科成绩排序 |\n");
printf("\t\t\t\t |8.将学生信息输出(按平均格式化) |\n");
printf("\t\t\t\t |9.删除某门课程某个试题 |\n");
printf("\t\t\t\t |10.将信息保存到文件中 |\n");
printf("\t\t\t\t |11.从文件中导入信息 |\n");
printf("\t\t\t\t |--------------------------------------------|\n");
printf("\n\t\t\t\t 请输入模式(1~11):");
}
void input(){
int i,m=0;
char ch[2];
FILE *fp;
if((fp=fopen("data99.txt","a+"))==NULL)
{
printf("文件不存在!\n");
return;
}
while(!feof(fp))
{
if(fread(&stu[m] ,LEN,1,fp)==1)
{
m++;
}
}
fclose(fp);
if(m==0)
{
printf("文件中没有记录!\n");
}
else
{
show();
}
if((fp=fopen("data99.txt","ab+"))==NULL)
{
printf("文件不存在!\n");
return;
}
printf("输入学生信息(y/n):");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("学号:");
scanf("%d",&stu[m].num);
for(i=0;i<m;i++)
if(stu[i].num==stu[m].num)
{
printf("该序号已经存在了,按任意键继续!");
getch();
fclose(fp);
return;
}
printf("姓名:");
scanf("%s",stu[m].name);
printf("C语言:");
scanf("%d",&stu[m].classroom);
if(fwrite(&stu[m],LEN,1,fp)!=1)
{
printf("不能保存!");
getch();
}
else
{
printf("%s 被保存!\n",stu[m].name);
m++;
}
printf("继续?(y/n):");
scanf("%s",ch);
}
fclose(fp);
printf("OK!\n");
}
void show(){
FILE *fp;
int i,m=0;
fp=fopen("data99.txt","rb");
while(!feof(fp))
{
if(fread(&stu[m] ,LEN,1,fp)==1)
m++;
}
fclose(fp);
printf("%d",LEN);
printf("学号 姓名 C语言 \t\n");
for(i=0;i<m;i++)
{
printf(FORMAT,DATA);
}
}
void serach(){
FILE *fp;
int snum,i,m=0;
if((fp=fopen("data99.txt","rb"))==NULL)
{
printf("文件不存在!\n");
return;
}
while(!feof(fp))
if(fread(&stu[m],LEN,1,fp)==1)
m++;
fclose(fp);
if(m==0)
{
printf("文件中没有记录!\n");
return;
}
printf("请输入学号:");
scanf("%d",&snum);
for(i=0;i<m;i++)
if(snum==stu[i].num)
{
printf("学号 姓名 C语言 \t\n");
printf(FORMAT,DATA);
break;
}
if(i==m) printf("没有找到这名学生!\n");
}
```