草皮也要变高 2022-01-02 09:15 采纳率: 33.3%
浏览 2010
已结题

程序1某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组和指针作函数参数,编程实现如下菜单驱动的学生成绩管理系统:

程序1某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组和指针作函数参数,编程实现如下菜单驱动的学生成绩管理系统:
(1)录入每个学生的学号和考试成绩;
(2)按学号由小到大排出成绩表;
(3)计算并输出最高分及相应学生的学号。
要求程序运行后先显示如下菜单,并提示用户输入选项:
1.Append record
2.Sort in ascending order by number
3.Caculate Max. score of course and number
0.Exit
Please enter your choice:
然后,根据用户输入的选项执行相应的操作。

  • 写回答

2条回答 默认 最新

  • fuill 2022-01-02 10:35
    关注

    手打不容易,满意给个采纳吧

    img

    
    #include <stdio.h>
    //typedef
    struct student
    {
        int id;
        int score;
    
    } t[30];
    int post=0,n,max;
    void r()
    {
        int k;
        printf("输入学生个数:");
        scanf("%d",&n);
        printf("输入学号和分数:\n");
        for(k=0; k<n; k++)
        {
            scanf("%d%d",&t[k].id,&t[k].score);
        }
        z();
        return;
    }
    void sort()
    {
        int j,k;
        struct student tem;
        for(k=0; k<n-1; k++)
        {
            for(j=0; j<n-k-1; j++)
            {
                if(t[j].id>t[j+1].id)
                {
                    tem=t[j];
                    t[j]=t[j+1];
                    t[j+1]=tem;
                }
            }
        }
        for(k=0; k<n; k++)
        {
            printf("学号:%d  成绩:%d\n",t[k].id,t[k].score);
        }
        z();
        return;
    }
    
    void m()
    {
        int j,k;
        max=t[0].score;
        for(k=1; k<n; k++)
        {
            if(t[k].score>max)
            {
                max=t[k].score;
                post=k;
            }
        }
        printf("最高分数:%d   学号为:%d",max,t[k].id);
        z();
        return;
    }
    
    int z()
    {
        printf("1.Append record\n");
        printf("2.Sort in ascending order by number\n");
        printf("3.Caculate Max. score of course and number\n");
        printf("0.Exit\n");
        printf("Please enter your choice:\n");
        int c=0;
        scanf("%d",&c);
        switch (c)
        {
        case 1:
            r();
            break;
        case 2:
            sort();
            break;
        case 3:
            m();
            break;
        case 0:
            break;
        default:
            printf("error!");
            break;
        }
    
        return 0;
    }
    int main()
    {
        z();
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月10日
  • 已采纳回答 1月2日
  • 创建了问题 1月2日

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题