• 第十次作业


    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 N1 100
    #define N2 100
    int main()
    {
        int zhen[N1][N2],n1,i,j,sum;
        printf("请输入方阵的行数:");
        scanf("%d",&n1);
        for(i=0;i<n1;i++)
        {
            printf("请输入第%d行的数
    ",i+1);
            for(j=0;j<n1;j++)
            {
                scanf("%d",&zhen[i][j]);
            }
         } 
         for(i=0;i<n1;i++)
         {
             printf("
    ");
             for(j=0;j<n1;j++)
             {
                 printf(" %d ",zhen[i][j]);
             }
        }
        for(i=0;i<n1;i++)
        {
            sum=0;
            for(j=0;j<n1;j++)
            {
                sum+=zhen[i][j];
            }
            printf("
    方阵第%d行的和为:%d",i+1,sum);
        }
        for(j=0;j<n1;j++)
        {
            sum=0;
            for(i=0;i<n1;i++)
            {
                sum+=zhen[i][j];
            }
            printf("
    方阵第%d列的和为:%d",j+1,sum);
        }
        sum=0;
        for(i=0;i<n1;i++)
        {
            for(j=0;j<n1;j++)
            {
                if(i==j)
                {
                    sum+=zhen[i][j];
                }
            }
        }
        printf("
    对角线元素之和为%d",sum);
        sum=0;
        for(i=0;i<n1;i++)
        {
            for(j=0;j<n1;j++)
            {
                if(i+j==n1-1)
                sum+=zhen[i][j];
            }
        }
        printf("
    对角线元素之和为%d",sum);
             return 0;
     } 
    复制代码

    实验总结:

    1、注意循环嵌套

    2、测试时可以先用简单的数进行测试

    3、为退格 1字符长度 4个字符

  • 相关阅读:
    栈和堆的区别【转】
    C++虚函数表解析(转)
    C++编码规范(转)
    全局变量的声明和定义 以及dll中全局变量的导出
    Sizeof与Strlen的区别与联系.
    利用事件对象实现线程同步
    创建互斥对象同步线程
    MFC GDI笔记 转
    ClientToScreen( )和ScreenToClient( )
    Visual C++线程同步技术剖析
  • 原文地址:https://www.cnblogs.com/gengqihao/p/6160499.html
Copyright © 2020-2023  润新知