• 第十次作业


    一、实验内容      

     1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。 

    #include<stdio.h>
    #define N 5
    #define M 5
    int main()
    {
         int sum=0,i,j;
        double average1[5]={0},average2[5]={0},score[N][M]={{87,78,97},{86,72,79},{68,96,85},{74,83,95},{86,75,69}};
         printf("	语文	数学	英语	总分	平均分
    "); 
        for(i=0;i<5;i++)
            {
                sum=0;
                for(j=0;j<5;j++)
                {
                    sum=sum+score[i][j];
                }
            score[i][3]=sum;
            }
        for(i=0;i<3;i++)
            {
                sum=0;
                for(j=0;j<5;j++)
                {
                    sum=sum+score[i][j];
                }
                average1[i]=(double)sum/5;
                sum=score[i][3];
            }
            printf("
    ");
            for(i=0;i<5;i++)
            {
                sum=0;
                for(j=0;j<3;j++)
                {
                    sum=sum+score[i][j];
                }
                average2[i]=(double)sum/3;
                  sum=score[i][3];
            }
         for(i=0;i<5;i++)
        {
            printf("
    ");
            for(j=0;j<4;j++)
            {
                printf("	%.2f",score[i][j]);
            }
        
            printf("%d",score[i][3]);
            printf("	%.2f",average2[i]);
         }
         printf("
    ");
         for(i=0;i<3;i++)
         {
             printf("	%.2f",average2[i]);
         }
             
        return 0;
    }

                              

     2.求任意方阵每行、每列、两对角线上元素之和。

    #include<stdio.h>
    #define N 4
    #define M 4
    void readNum(int num[N][M]);
    void sumHorizontal(int num[N][M]);
    void sumStand(int num[N][M]);
    void sumXie1(int num[N][M]);
    void sumXie2(int num[N][M]);
    int main()
    {
        int i,j,num[N][M];
        printf("请输入数组数据:");
        for(i=0;i<N;i++)
        {
            for(j=0;j<M;j++)
            {
                scanf("%d",&num[i][j]);
            }
        }
        for(i=0;i<N;i++)
        {
            for(j=0;j<M;j++)
            {
                printf("%d",num[i][j]);
                printf("
    ");
            }
        }
        readNum(num);
        sumHorizontal(num);
        sumStand(num);
        sumXie1(num);
        printf("	");
        sumXie2(num);
        return 0;
    }
    void readNum(int num[N][M])
    {
        int i,j;
        for(i=0;i<N;i++)
            {
                for(j=0;j<M;j++)
                {
                    printf("%2d",num[i][j]);
                }
                printf("
    ");
            }
    }
    void sumHorizontal(int num[N][M])
    {
        int i,j,sum;
        for(i=0;i<N;i++)
        {
            sum=0;
            for(j=0;j<M;j++)
            {
                sum+=num[i][j];
            }
            printf("第%d行元素之和为%d
    ",i+1,sum);
        }
        
    }
    void sumStand(int num[N][M])
    {
        int i,j,sum;
        for(j=0;j<M;j++)
        {
            sum=0;
            for(i=0;i<N;i++)
            {
                sum+=num[i][j];
            }
        printf("第%d列元素之和为%d
    ",j+1,sum);
        }    
    }
    void sumXie1(int num[N][M])
    {
        int i,j,sum;
        sum=0;
            for(i=0;i<N;i++)
            {
                for(j=0;j<M;j++)
                {
                    if(i==j)
                    {
                        sum+=num[i][j];
                    }
                }    
            }
            printf("左上到右下的对角线的和为%d",sum);
    }
    void sumXie2(int num[N][M])
    {
        int i,j,sum;
        sum=0;
            for(i=0;i<N;i++)
            {
                for(j=0;j<M;j++)
                {
                    if(i==M-1)
                    {
                        sum+=num[i][j];
                    }
                }    
            }
            printf("右上到左下的对角线的和为%d",sum);
    }

    二、实验总结

    1、为了程序的通用性,可以使用#define预处理宏定义命令;

    2、第一个程序本来使用的五行三列的二维数组,但是就要写两个并列的小循环,为了程序的简洁改用五行五列;

    3、注意数组不要越界;

    4、变量赋初值问题;

    5、for循环时各个表达式之间用分号隔开。

  • 相关阅读:
    【react】---react中使用装饰器
    【react】---react中key值的作用
    【react】---react项目中如何使用iconfont
    【react】---redux-actions的基本使用---【巷子】
    linux查看硬件配置
    ssh实现内网穿透
    base_convert()函数探秘及小bug记录
    【转】ASCII码表
    【转载】在C语言中,double、long、unsigned、int、char类型数据所占字节数
    xdebug及phpstorm、vim+dbgpy远程调试配置以及xdebug profile+webgrind笔记
  • 原文地址:https://www.cnblogs.com/0000-beauty/p/6160841.html
Copyright © 2020-2023  润新知