WarMj:二维数组数据处理练习

编写一段程序,使用二维数组操作5名学生3个科目(语文,数学,英语)的分数,完成如下处理。
例1:计算每科的最高分。
例2:计算每名学生3个科目的平均分。
——《明解C语言》练习6-11

成绩表样例(程序支持手动录入)

语文 数学 英语
学生1 99 98 97
学生2 99 98 97
学生3 99 98 97
学生4 99 98 97
学生5 99 98 97

代码分析

#include<stdio.h>
#include<stdlib.h>

//函数声明。 
void Scan_Score(const int score[5][3]);
void Max_Score(const int score[5][3]);
void Ave_Score(const int score[5][3]);

int main()
{
    int score[5][3] = {0};
//  int score[5][3] = {{99, 98, 97}, {99, 98, 97}, {99, 98, 97}};
    
    Scan_Score(score);
    Max_Score(score);
    Ave_Score(score);
    
    system("pause");
    return 0;
 } 

//成绩录入函数 
void Scan_Score(const int score[5][3])
{
    for(int i = 0; i < 5; i++)
    {
        printf("Please enter the score of the NO.%d student:\n", i+1);
        for(int j = 0; j < 3; j++)
        {
            switch(j)
            {
                case 0: puts("Chinese score:"); break;
                case 1: puts("Math score:");       break;
                case 2: puts("English score:"); break;
            }
            scanf("%d", &score[i][j]);
        }
    }
}

//各科成绩最高分函数 
void Max_Score(const int score[5][3])
{
    int Max_Ch = score[0][0], Max_Math = score[0][1], Max_Eng = score[0][2];
    for(int j = 0; j < 3; j++)
    {
        for(int i = 0; i < 5; i++)
        {
            switch(j)
            {
                case 0: if(Max_Ch < score[i][j])
                    {
                        Max_Ch = score[i][j];
                    }
                break;
            
                case 1: if(Max_Math < score[i][j])
                    {
                        Max_Math = score[i][j];
                    }
                break;
                
                case 2: if(Max_Eng < score[i][j])
                    {
                        Max_Eng = score[i][j];
                    }
                break;
            }
        }
    }
    printf("The max score of Chinese is:%d\n", Max_Ch);
    printf("The max score of Math is:%d\n", Max_Math);
    printf("The max score of English is:%d\n", Max_Eng);
 } 
 
//每名学生平均成绩函数 
void Ave_Score(const int score[5][3])
 {
    int sum[5] = {0};
    for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            sum[i] += score[i][j];
         }
         printf("The average score for Student.%d is :%d\n", i+1, sum[i]/3);
     }
 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,485评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,596评论 18 399
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,569评论 30 472
  • 一. Java基础部分.................................................
    wy_sure阅读 3,988评论 0 11
  • 本文摘自作者曾是日本销量No.1 的奢侈品店店长的书《聪明女人背小包》。从三个精华内容和大家分享:生活方式、消费理...
    控心_ebed阅读 203评论 2 4

友情链接更多精彩内容