• 第十次作业


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

    #include<stdio.h>
    #define N 3
    #define M 5
    void readScore(int score[M][M]);
    void aveforStud(int score[M][M],double ave[M][M]);
    void aveforCourse(int score[M][M],double asd[4]);
    int main()
    {
        int  score[M][M],i,j;
        double ave[M][M],asd[4];
        readScore(score);
        aveforStud(score,ave);
        printf("        语文        数学        英语        总分    平均分
    ");
        for(i=0;i<M;i++)
        {
            for(j=0;j<4;j++)
            {
                printf("    %8d",score[i][j]);
            
            }
                
            
                 printf("%  8.2f
    ",ave[i][4]);
                
                printf("
    ");
        }
        aveforCourse(score,asd);
        printf("平均分"); 
        for(i=0;i<4;i++)
        {
            printf("%7.2f     ",asd[i]);
        }
    
    
    }
    void  readScore(int score[M][M])
    {
        int j,i,sum=0;
        printf("输入成绩");
        for(i=0;i<M;i++)
        {
            sum=0;
            printf("输入第%d个学生的成绩
    ",i+1);
            for(j=0;j<N;j++)
            {
                    
                scanf("%d",&score[i][j]);
                sum+=score[i][j];
            }
            score[i][3]=sum;
        }
    }
    void aveforStud(int score[M][M],double ave[M][M])
    {
        int i;
        for(i=0;i<M;i++)
        {
          ave[i][4]=score[i][3]/3.0;
        }
    }
    void aveforCourse(int score[M][M],double asd[4])
    {
        int i,j,sum;
        for(i=0;i<4;i++)
        {
            sum=0;
            for(j=0;j<5;j++)
            {
                sum+=score[j][i];
            }
            asd[i]=sum/5.0;
        }
    }

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

    #include<stdio.h>
    #define N 100
    int main()
    {
        int i,j,H,x=0,zhen[N][N],sum;
        printf("输入方阵行数");
        scanf("%d",&H);
        for(i=0;i<H;i++)
        {
            for(j=0;j<H;j++)
            {
                x++;
                zhen[i][j]=x;
                printf("%3d",x);
            }
        printf("
    ");
        }
            for(i=0;i<H;i++)
        {
                sum=0;
            for(j=0;j<H;j++)
            {
                sum+=zhen[i][j];
            }
            printf("第%d行元素和为%d
    ",i+1,sum);
        }
                  for(i=0;i<H;i++)
        {
                sum=0;
            for(j=0;j<H;j++)
            {
                sum+=zhen[j][i];
            }
            printf("第%d列元素和为%d
    ",i+1,sum);
        }
                sum=0;
            for(i=0;i<H;i++)
        {
                sum+=zhen[i][i];
        
        }
        printf("左上到右下元素和为%d
    ",sum);
            sum=0;
            j=H-1;
         for(i=0;i<H;i++)
        {
            sum+=zhen[i][j];
            j--;
        }
        printf("右上到左下元素和为%d
    ",sum);
    
        return 0;
    }

    实验总结:1.如果是多次求和的话,每次重新求和时都要给sum赋初值。

    2.注意函数类型。

    3.下标值应在已定义的数组范围内。

  • 相关阅读:
    javascript工具--控制台详解(转自 阮一峰博客)
    javascript基础知识--函数定义
    javascript基础知识--什么是构造函数?什么是实例化对象?
    移动端开发,几个你可能不知道的CSS单位属性。
    HTML标签语义化,裸奔都那么帅
    THREE.JS开发《我的世界》(一)
    Webpack + ES6 最新环境搭建与配置
    canvas实现3D魔方
    Canvas实现3D效果-可旋转的立方体
    实现记忆中的经典游戏-扫雷
  • 原文地址:https://www.cnblogs.com/gangfeng/p/6160900.html
Copyright © 2020-2023  润新知