Saniow 2021-09-03 01:33 采纳率: 87.5%
浏览 111
已结题

某班有学生3人,开设五门课程,分别用三个函数实现如下操作

某班有学生3人,开设五门课程,分别用函数实现如下操作: (1)求各门课程的平均分;(2)找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩;

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-09-03 02:13
    关注

    C代码如下:

    #include <stdio.h>
    #include <string.h>
    struct Student 
    {
        int id;//学号
        char name[20];
        int score[5]; //成绩
    };
    int main()
    {
        int i,j;
        int count = 0;
        int flag[5];
        struct Student stu[3];
        memset(stu,0,sizeof(stu));
        for (i=0;i<3;i++)
        {
            printf("请输入学生%d的学号:",i+1);
            scanf("%d",&stu[i].id);
            printf("请输入学生%d的姓名:",i+1);
            scanf("%s",stu[i].name);
            printf("请输入学生%d的五门课成绩:",i+1);
            for(j=0;j<5;j++)
                scanf("%d",&stu[i].score[j]);
        }
        //
        for (i = 0;i<3;i++)
        {
            count = 0;
            for(j=0;j<5;j++)
            {
                flag[j] = 0;
                if (stu[i].score[j] < 60)
                {
                    count++;
                    flag[j] = 1; //记录标记位
                }
            }
            if(count >=2)//2门以上不及格
            {
                printf("%d",stu[i].id)  ; //如果需要姓名,可以在这里加上 
                for(j = 0;j<5;j++)
                {
                    if(flag[j] == 1)
                        printf("  %d",stu[i].score[j]);
                }
                printf("\n");
            }
        }
        return 0;
    }
    
    
    

    C++代码如下:

    #include <iostream>
    using namespace std;
    struct Student 
    {
        int id;//学号
        char name[20];
        int score[5]; //成绩
    };
    
    int main()
    {
        int i,j;
        int count = 0;
        int flag[5];
        struct Student stu[3];
        memset(stu,0,sizeof(stu));
        for (i=0;i<3;i++)
        {
            cout << "请输入学生" << i+1 << "的学号:";
            cin >> stu[i].id;
            cout << "请输入学生" << i+1 << "的姓名:"; 
            cin >> stu[i].name;
            cout << "请输入学生" << i+1 << "的五门课成绩:";
            for(j=0;j<5;j++)
                cin >> stu[i].score[j];
        }
        //
        for (i = 0;i<3;i++)
        {
            count = 0;
            for(j=0;j<5;j++)
            {
                flag[j] = 0;
                if (stu[i].score[j] < 60)
                {
                    count++;
                    flag[j] = 1; //记录标记位
                }
            }
            if(count >=2)//2门以上不及格
            {
                cout << stu[i].id ; //如果需要姓名,可以在这里加上 
                for(j = 0;j<5;j++)
                {
                    if(flag[j] == 1)
                        cout <<"  " << stu[i].score[j];;
                }
                cout << endl;
            }
        }
        return 0;
    }
    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月3日
  • 已采纳回答 9月3日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 来个会搭建付费网站的有偿
  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
  • ¥20 校园网认证openwrt插件
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
  • ¥15 求GCMS辅导数据分析
  • ¥30 SD中的一段Unet下采样代码其中的resnet是谁跟谁进行残差连接
  • ¥15 Unet采样阶段的res_samples问题
  • ¥60 Python+pygame坦克大战游戏开发实验报告
  • ¥15 R语言regionNames()和demomap()无法选中中文地区的问题
  • ¥15 Open GL ES 的使用
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部