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

  • 相关阅读:
    Flink安装排坑指南
    Java对类进行XSS过滤
    java.sql.SQLException: 无法转换为内部表示
    Flutter环境搭建
    运行npm命令 TypeError: Cannot read property 'get' of undefined
    利用Xilinx的cordic ip做开方运算
    modelsim脚本化仿真出现的两个错误
    opencv中使用imread()读入的图像,始终为显示为8位深度
    PS端时钟供给PL使用的问题
    Xilinx 使用shift_RAM消耗分布式RAM(LUTRAM)还是BRAM (Block RAM)?
  • 原文地址:https://www.cnblogs.com/0000-beauty/p/6160841.html
Copyright © 2011-2022 走看看