求指点,这个程序运行不出来。运行第一个界面后无法选择下一步。
											
程序代码:#include <stdio.h>
#include <stdlib.h>
#define N 20
#define M 100
struct score             //课程分数
 {
    int scr1;
    int scr2;
    int scr3;
    int scr4;
    float avg;
    int total;
 };
struct student          //学生基本信息
 {
    char num[10];
    char name[10];
    char sex[2];
    int age;
    struct score scr;
 };
int x=0;
int input(struct student *s);
int insert(struct student *s);
int sort(struct student *s);
int find(struct student *s);
int delet(struct student *s);
//int output(struct student *s);
int main()
 {
    int i=1;
    struct student stu[M];
    printf("* * * * * * * * * * * * * * * *学生成绩管理系统* * * * * * * * * * * * * * * *\n");
    printf("请按数字键选择需要的操作:\n");
    printf("                             1.输入学生信息\n");
    printf("                             2.插入学生信息\n");
    printf("                             3.学生信息排序\n");
    printf("                             4.查找学生信息\n");
    printf("                             5.删除学生信息\n");
    //printf("                             6.输出所有学生信息\n");
    for(i;;)
    {
        i=getchar();
        switch(i)
        {
        case 1:
            system("cls");
            i=input(stu);
            break;
        case 2:
            system("cls");
            i=insert(stu);
            break;
        case 3:
            system("cls");
            i=sort(stu);
            break;
        case 4:
            system("cls");
            i=find(stu);
            break;
        case 5:
            system("cls");
            i=delet(stu);       
            break;
       /* case 6:
            system("cls");
            i=output(stu);
            break;   */
        }
    }
    return 0;
 }
int input(struct student *s)       //输入
 {
    int i;
    for(i=0;i<N;i++,s++)
    {
        printf("请输入%d个学生的信息:\n *学号 姓名 性别 年龄 四科成绩*\n",N+1);
        scanf("%s%s%s%d%d%d%d%d",s->num,s->name,s->sex,s->age,s->scr.scr1,s->scr.scr2,s->scr.scr3,s->scr.scr4);
        s->scr.total=s->scr.scr1+s->scr.scr2+s->scr.scr3+s->scr.scr4;
        s->scr.avg=s->scr.total/4.0;
    }
    printf("输入1返回主菜单,输入0退出");
    return(i=getchar());
 }
int insert(struct student *s)    //插入
 {
    int i=1,j;
    struct student s1;
    printf("输入要插入的学生信息:\n学号 姓名 性别 年龄 四科成绩\n");
    for(i;;)
    {
        scanf("%s%s%s%d%d%d%d%d",s1.num,s1.name,s1.sex,s1.age,s1.scr.scr1,s1.scr.scr2,s1.scr.scr3,s1.scr.scr4);
        for(i=0;i<N;i++)
        {
            if(s1.num<s[i].num)
            {
                for(j=N-1;j>=i;j--)
                {
                    s[j+1]=s[j];
                }
                s[i]=s1;
            }
        }
        printf("继续插入输入1,放弃插入输入0");
        i=getchar();
        x++;
    }
    printf("输入1返回主菜单,输入0退出");
    return(i=getchar());
 }
int sort(struct student *s)        //分类排序
 {
    int i,j;
    struct student s2;
    printf("请选择排序的要求:\n1.按学号\n2.按总成绩\n");
    i=getchar();
    switch(i)
    {
    case 1:
        for(i=0;i<N-1;i++)
        {
            for(j=0;j<N-1-i;j++)
            {
                if(s[j].num>s[j+1].num)
                {
                    s2=s[j];
                    s[j]=s[j+1];
                    s[j+1]=s2;
                }
            }
        }
        break;
    case 2:
        for(i=0;i<N-1;i++)
        {
            for(j=0;j<N-1-i;j++)
            {
                if(s[j].scr.total>s[j+1].scr.total)
                {
                    s2=s[j];
                    s[j]=s[j+1];
                    s[j+1]=s2;
                }
            }
        }
        break;
    }
    printf("%-8学号%-8姓名%-8性别%-8年龄%-8数学%-8中文%-8英文%-8体育%-8平均成绩%-8总成绩");
    for(i=0;i<N;i++)
    {
        printf("%-8s%-8s%-8s%-8d%-8d%-8d%-8d%-8d%-8.2f%-8d",s[i].num,s[i].name,s[i].sex,s[i].age,s[i].scr.scr1,s[i].scr.scr2,s[i].scr.scr3,s[i].scr.scr4,s[i].scr.avg,s[i].scr.total);
    }
    printf("输入1返回主菜单,输入0退出");
    return(i=getchar());
 }
int find(struct student *s)        //查找
 {
    int i=1;
    char f[10];
    for(i;;)
    {
        printf("输入要查找的学生学号或姓名\n");
        scanf("%s",f);
        for(i=0;i<N;i++)
        {
            if(f==s[i].num||f==s[i].name)
            {
                printf("%-8学号%-8姓名%-8性别%-8年龄%-8数学%-8中文%-8英文%-8体育%-8平均成绩%-8总成绩");
                printf("%-8s%-8s%-8s%-8d%-8d%-8d%-8d%-8d%-8.2f%-8d",s[i].num,s[i].name,s[i].sex,s[i].age,s[i].scr.scr1,s[i].scr.scr2,s[i].scr.scr3,s[i].scr.scr4,s[i].scr.avg,s[i].scr.total);
            }
        }
        printf("继续查询输入1,放弃查询输入0");
        i=getchar();
    }
    printf("输入1返回主菜单,输入0退出");
    return(i=getchar());
 }
int delet(struct student *s)            //删除
 {
    int i=1,j;
    char f[10];
    for(i;;)
    {
        printf("输入要删除的学生学号或姓名\n");
        scanf("%s",f);
        for(i=0;i<N;i++)
        {
            if(f==s[i].num||f==s[i].name)
            {
                for(j=i+1;j<N;j++)
                {
                    s[j-1]=s[j];
                }
            }
        }
        printf("继续删除输入1,放弃删除输入0");
        i=getchar();
        x--;
    }
    printf("输入1返回主菜单,输入0退出");
    return(i=getchar());
 }
/*int output(struct student *s)              //输出
 {
    int i;
    printf("所有学生信息:");
    printf("%-8学号%-8姓名%-8性别%-8年龄%-8数学%-8中文%-8英文%-8体育%-8平均成绩%-8总成绩");
    for(i=0;i<N+x;i++)
    {
        printf("%-8s%-8s%-8s%-8d%-8d%-8d%-8d%-8d%-8.2f%-8d",s[i].num,s[i].name,s[i].sex,s[i].age,s[i].scr.scr1,s[i].scr.scr2,s[i].scr.scr3,s[i].scr.scr4,s[i].scr.avg,s[i].scr.total);
    }
    printf("输入1返回主菜单,输入0退出");
    return(i=getchar());
 }        */
大概就是主程序无法执行switch  求指点对了 我用的是Dev C++



											
	    

	


