网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C语言数组应用之学生成绩(个人练习)-创新互联

C语言数组之简单应用

C语言数组的简单应用就是取值并计算了

坚守“ 做人真诚 · 做事靠谱 · 口碑至上 · 高效敬业 ”的价值观,专业网站建设服务10余年为成都成都门帘小微创业公司专业提供成都企业网站建设营销网站建设商城网站建设手机网站建设小程序网站建设网站改版,从内容策划、视觉设计、底层架构、网页布局、功能开发迭代于一体的高端网站建设服务。

比较热门的就是学生成绩的基本操作

重点

自己一定要清楚 这个数组的行(Row)       代表的是什么数据

 这个数组的列(Column) 代表的是什么数据

① 如何定义数组

② 如何初始化数组

③ 如何读取数组里面的某个值

Demo展示

Please enter the number of students.(How many students?)
3
----------------------------------------
There are 3 students
STUDENT No.1 : mark   mark   mark
STUDENT No.2 : mark   mark   mark
STUDENT No.3 : mark   mark   mark
----------------------------------------
Please enter each score.
STUDENT      :Chinese Maths English
STUDENT No.1 :90 90 90
STUDENT No.2 :60 60 60
STUDENT No.3 :90 90 90
----------------------------------------
RESULT
STUDENT      :Chinese Maths English
STUDENT No.1 : 90     90     90
STUDENT No.2 : 60     60     60
STUDENT No.3 : 90     90     90
----------------------------------------
总分
总分 出现同分情况 (可能会出现总分最高排名并列的情况)
学生 No.1: 总分270 平均分90.0
学生 No.3: 总分270 平均分90.0
最高分得主: (有并列排名情况发生时,只显示学号靠前的一名同学)
学生 No.1: 总分270 平均分90.0
----------------------------------------
单科
Chinese 单科出现同分情况 (可能会出现单科状元排名并列的情况)
学生 No.1: 分数90
学生 No.3: 分数90
Chinese 单科状元得主: (有并列排名情况发生时,只显示学号靠前的一名同学)
学生 No.1: 分数90
Chinese 科目平均分: 80.0
----------------------------------------
Maths 单科出现同分情况 (可能会出现单科状元排名并列的情况)
学生 No.1: 分数90
学生 No.3: 分数90
Maths 单科状元得主: (有并列排名情况发生时,只显示学号靠前的一名同学)
学生 No.1: 分数90
Maths 科目平均分: 80.0
----------------------------------------
English 单科出现同分情况 (可能会出现单科状元排名并列的情况)
学生 No.1: 分数90
学生 No.3: 分数90
English 单科状元得主: (有并列排名情况发生时,只显示学号靠前的一名同学)
学生 No.1: 分数90
English 科目平均分: 80.0
----------------------------------------

Process finished with exit code 0

代码演练
#includeint main()
{
//    n个同学 3门科目
//    求平均分 最高分
    short Student_Number = 5;
    const char *Str_Subject[3] = {"Chinese","Maths","English"};
    short Top_one = 0;
    short Container_Subject = 0;
    short Container = 0;
    short Container_Row = 0;

    printf("Please enter the number of students.(How many students?) \n");
    scanf("%hd", &Student_Number);
    printf("----------------------------------------\n");
    printf("There are %hd students\n", Student_Number);

    short mark[Student_Number][3];

    for (int j = 0; j<= (Student_Number-1); ++j) {
        printf("STUDENT No.%d : ", (j+1));
        for (int i = 0; i<= 2; ++i) {
            printf("mark   ");
        }
        printf("\n");
    }

    printf("----------------------------------------\n");
    printf("Please enter each score.\n");
    printf("STUDENT      :");
    for (int i = 0; i<= 2; ++i) {
        printf("%s ",Str_Subject[i]);
    }
    printf("\n");

    for (int j = 0; j<= (Student_Number-1); ++j) {
        printf("STUDENT No.%d :", (j+1));
        scanf("%hd %hd %hd", &mark[j][0], &mark[j][1], &mark[j][2]);
    }

    printf("----------------------------------------\n");
    printf("RESULT     \n");
    printf("STUDENT      :");
    for (int i = 0; i<= 2; ++i) {
        printf("%s ",Str_Subject[i]);
    }
    printf("\n");
    for (int j = 0; j<= (Student_Number-1); ++j) {
        printf("STUDENT No.%d : ", (j+1));
        for (int i = 0; i<= 2; ++i) {
            printf("%-6hd ", mark[j][i]);
        }
        printf("\n");
    }

    printf("----------------------------------------\n");
//    总分最高   分数 是谁
//    单科状元   分数 是谁
//    科目平均分 最高 是什么科目
    for (short k = 0; k<= (Student_Number-1); ++k) {
        Container = 0;
        for (short Column = 0; Column<= 2; ++Column) {
            Container += mark[k][Column];
        }

        if (Container >Top_one){
            Top_one = Container;
            Container_Row = k;
        }
        else if (Container == Top_one){
            printf("总分 \n");
            printf("总分 出现同分情况 (可能会出现总分最高排名并列的情况)\n");
            printf("学生 No.%hd: 总分%hd 平均分%.1f\n", (Container_Row+1), Top_one, Top_one/3.0);
            printf("学生 No.%hd: 总分%hd 平均分%.1f\n", (k+1), Container, Container/3.0);
        }

    }

    printf("最高分得主: (有并列排名情况发生时,只显示学号靠前的一名同学)\n");
    printf("学生 No.%hd: 总分%hd 平均分%.1f\n", (Container_Row+1), Top_one, Top_one/3.0);

    printf("----------------------------------------\n");
    printf("单科\n");
//    单科状元   分数 是谁
//    科目平均分 最高 是什么科目
    for (short k = 0; k<= 2; ++k) {
        Container_Subject = 0;
        Container = 0;
        Top_one = 0;
        for (short Row = 0; Row<= (Student_Number-1); ++Row) {
            Container = mark[Row][k];
            Container_Subject += mark[Row][k];
            if (Container >Top_one){
                Top_one = Container;
                Container_Row = Row;
            }
            else if (Container == Top_one){
                printf("%s 单科出现同分情况 (可能会出现单科状元排名并列的情况)\n", Str_Subject[k]);
                printf("学生 No.%hd: 分数%hd \n", (Container_Row+1), Top_one);
                printf("学生 No.%hd: 分数%hd \n", (Row+1), Container);
            }
        }
        printf("%s 单科状元", Str_Subject[k]);
        printf("得主: (有并列排名情况发生时,只显示学号靠前的一名同学)\n");
        printf("学生 No.%hd: 分数%hd \n", (Container_Row+1), Top_one);
        printf("%s 科目平均分: %.1f \n", Str_Subject[k], (Container_Subject+0.0)/Student_Number);
        printf("----------------------------------------\n");
    }
    
    return 0;
}
出现控制台打印乱码问题?

出现此类问题请参考: 这里 → 我之前的分享

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页标题:C语言数组应用之学生成绩(个人练习)-创新互联
文章链接:http://bjjierui.cn/article/eicjp.html

其他资讯