zoukankan      html  css  js  c++  java
  • 第十次实验

    一、实验内容

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

    代码:

    # include <stdio.h>
    # define M 5
    # define N 3
    int main()
    {
        int score[M][N],i,j,sum,sum1[M],sum2;
        double ave1[M],ave2[N];
        printf("请输入每位学生的语文,数学,英语成绩
    ");
        for(i=0;i<M;i++)
        {
            for(j=0;j<N;j++)
            {
                scanf("%d
    ",&score[i][j]);
            }
        }
        for(i=0;i<M;i++)
        {
            sum=0;
            for(j=0;j<N;j++)
            {
                sum=sum+score[i][j];
            }
            sum1[i]=sum;
            ave1[i]=(double)sum/N;
        }
        for(i=0;i<N;i++)
        {
            sum2=0;
            for(j=0;j<M;j++)
            {
                sum2=sum2+score[j][i];
            }
            ave2[i]=(double)sum2/M;
        }
        printf("	语文	数学	英语	总分	平均分
    ");
        for(i=0;i<M;i++)
        {
            printf("学生%d	",i+1);
            for(j=0;j<N;j++)
            {
                printf(" %d	",score[i][j]);
             } 
             printf("%d	%.2f",sum1[i],ave1[i]);
             printf("
    ");
        }
        for(i=0;i<N;i++)
        {
              printf("	%.2f",ave2[i]);
        }
        return 0;
    }

    程序运行结果:

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

    代码:

    # include <stdio.h>
    # define M 100
    int main()
    {
        int i,j,sum1,sum2,sum3,sum4,m,num[M][M];
        printf("请输入方阵的行数(列数)
    ");
        scanf("%d",&m);
        printf("请输入方阵中的数字
    ");
        for(i=0;i<m;i++)
        {
            for(j=0;j<m;j++)
            {
                scanf("%d",&num[i][j]);
            }
        }
        for(i=0;i<m;i++)
        {
            for(j=0;j<m;j++)
            {
                printf("%d ",num[i][j]);
            }
            printf("
    ");
        }
        for(i=0;i<m;i++)
        {
            sum1=0;
            for(j=0;j<m;j++)
            {
                sum1=sum1+num[i][j];
            }
            printf("第%d行的数之和为%d
    ",i+1,sum1);
        }
        for(j=0;j<m;j++)
        {    
            sum2=0;
            for(i=0;i<m;i++)
            {
                sum2=sum2+num[i][j];
            }
            printf("第%d列的数之和为%d
    ",j+1,sum2);
        }
        sum3=0;
        for(i=0;i<m;i++)
        {
            for(j=0;j<m;j++)
            {
                if(i==j)
                {
                    sum3=sum3+num[i][j];
                }
            }
        }
        printf("对角线上的数之和为%d
    ",sum3);
        sum4=0;
        for(i=0;i<m;i++)
        {
            for(j=0;j<m;j++)
            {
                if(i+j==m-1)
                {
                    sum4=sum4+num[i][j];
                }
            }
        }
        printf("副对角线上的数之和为%d
    ",sum4);
        return 0;
     } 

    程序运行结果:

    二、实验总结

    1. 在二维数组中的行数可以省略,列不可以省略。
    2. 在计算二维数组的行数、列数、对角线是要注意对sum赋初值的位置,不同位置会出现不同的结果。
    3. 数组一般与循环密不可分,在一维数组的输入与输出时,用一层循环来实现,在二维数组的输入与输出时,用两层循环来实现,即用外层循环来控制行数,用内层循环来控制列数。
    4. 二维数组的存储是以一维数组的形式进行存储与输出。
  • 相关阅读:
    大胆决定+细致用功, 才可能改变命运
    采用用同步编程的方式实现跨进程异步获取数据
    关于DataGridViewComboBoxCell修改后提交数据源
    学习:如何具有坚韧的性格
    汉语-成语:坚韧不拔
    汉语-词语:坚韧
    阿里云-OSS-Help-SKD参考-.NET:前言
    阿里云-OSS-OSS管理控制台:Bucket列表
    阿里云-OSS-OSS管理控制台:概览
    汉语-词语:推理
  • 原文地址:https://www.cnblogs.com/1997zjx/p/6151751.html
Copyright © 2011-2022 走看看