| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 244 人关注过本帖
标题:求指点,这个程序运行不出来。运行第一个界面后无法选择下一步。
只看楼主 加入收藏
ZZUZHX
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-8-30
结帖率:100%
收藏
 问题点数:0 回复次数:2 
求指点,这个程序运行不出来。运行第一个界面后无法选择下一步。
程序代码:
#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++
搜索更多相关主题的帖子: 下一步 
2011-09-01 18:22
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 ZZUZHX
当switch缺少default的语句时程序直接跳出

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-01 18:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你看清楚1楼的程序再作答!
楼主写这么多,还是抄那么多?连主菜单没调试过就闷头敲那么多代码下去?在练指法啊?

授人以渔,不授人以鱼。
2011-09-01 18:41
快速回复:求指点,这个程序运行不出来。运行第一个界面后无法选择下一步。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022935 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved