zoukankan      html  css  js  c++  java
  • 第十次作业

    一、实验内容      

     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循环时各个表达式之间用分号隔开。

  • 相关阅读:
    Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放
    Npm install failed with “cannot run in wd”
    JQuery使用deferreds串行多个ajax请求
    使用HTML5的History API
    Christmas Trees, Promises和Event Emitters
    Node.js开发者最常范的10个错误
    Mongoose Schemas定义中timestamps选项的妙用
    Ubuntu上安装Robomongo及添加到启动器
    [nodemon] Internal watch failed: watch ENOSPC错误解决办法
    介绍两个Ubuntu上的桌面小工具
  • 原文地址:https://www.cnblogs.com/0000-beauty/p/6160841.html
Copyright © 2011-2022 走看看