• 第十次作业


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

    #include<stdio.h>
    int main()
    {
        int score[5][3]={{70,70,80},{70,70,60},{70,70,90},{80,80,70},{70,70,70}},i,j,sum,sum1[5],h,sum2;
        float ave[5],average,ave1[3];
        for(i=0;i<5;i++)
        {
            sum=0;
            for(j=0;j<3;j++)
            {
                sum+=score[i][j];
            }
            average=sum/3;
            sum1[i]=sum;
            ave[i]=average;    
        }
        for(i=0;i<3;i++)
        {
            sum2=0;
            for(j=0;j<5;j++)
            {
                sum2+=score[i][j];
            }
            ave1[i]=sum2/3;
    
        }
        printf("    语文    数学   英语    总分    平均分
    ");
        h=0;
        for(i=0;i<5;i++)
        {
            for(j=0;j<3;j++)
            { 
            printf("     %d",score[i][j]);
            h++;
            }
            printf("      %d",sum1[i]);
            h++;
            printf("     %.3f",ave[i]);
            h++;
            if(h%5==0)
            printf("
    ");
        }
         printf("平均分");    
            for(i=0;i<3;i++)
        {
            printf("%.3f  ",ave1[i]);
        }
        return 0;
     } 

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

    #include<stdio.h>
    int main()
    {
        int a,i,j,shu[20][20],sum1[20],sum2[20],sum3,sum4,sum;
        printf("请输入矩阵边长:");
        scanf("%d",&a);
        for(i=0;i<a;i++)
        {
            for(j=0;j<a;j++)
            {
                printf("请输入第%d行第%d列的数据",i+1,j+1);
                scanf("%d",&shu[i][j]);
            }        
        }
        for(i=0;i<a;i++)
        {
            sum=0;
            for(j=0;j<a;j++)
            {
                sum+=shu[i][j];
            }
            sum1[i]=sum;    
        }
        for(i=0;i<a;i++)
        {
            sum=0;
            for(j=0;j<a;j++)
            
                sum+=shu[j][i];
                sum2[i]=sum;
            
                
        }
        sum=0;
        for(i=0;i<a;i++)
        {
            
            for(j=0;j<a;j++)
            {
                if(i==j)
                sum+=shu[i][j];            
            } 
        }
         sum3=sum;
        sum=0;
        j=a-1;
        for(i=0;i<a;i++)
        {
            sum=sum+shu[i][j];
            j--;
        }
        sum4=sum;
        
        for(i=0;i<a;i++)
        {
            printf("第%d行之和为%d
    ",i+1,sum1[i]);
        }
        for(i=0;i<a;i++)
        {
            printf("第%d列之和为%d
    ",i+1,sum2[i]);
        }
        printf("对角线之和为:%d %d",sum3,sum4);
        return 0;    
    }

    实验总结:

    1二维数组也是线性存储的。

    2.在输出表格形式的数据时灵活使用二维数组。

    3.多次求和,注意每次重新求和时给sum赋初值。

  • 相关阅读:
    移动端日期段选择,不可选过去日期,可传入不可选日期,返回数组
    移动端的silder,未封装,基于zepto的touch模块,有参照修改过touch的bug
    ajax
    简单的cookie读写封装
    自己写的,然后配合zepto+iscroll的上拉加载
    达到
    迷茫
    (转)PropertyGrid相关
    (转)使用NuGet管理项目库
    (转)DDD方面两个开宗明义的文章
  • 原文地址:https://www.cnblogs.com/weizhenchuan/p/6159728.html
Copyright © 2020-2023  润新知