• 第十次实验作业


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

    #include<stdio.h>
    #define M 6
    #define N 5
    int main()
    {
        int i,j,f=0,sum;
        double ave,a[6][5]={56,78,98,0,0,63,78,82,0,0,69,79,95,0,0,95,86,46,0,0,63,67,89};
        for(i=0;i<5;i++)
        {
            sum=0;
            for(j=0;j<3;j++)
            {
                sum=sum+a[i][j];
                ave=0;
            }
            a[i][3]=sum;
            ave=(double)sum/3;
            a[i][4]=ave;
        }
        printf("      语文        数学        英语        总分         平均分");
        printf("
    ");
        for(i=0;i<5;i++)
        {
            for(j=0;j<5;j++)
            {
                printf("      ");
                printf("%.2f ",a[i][j]);
                f++;
            }
            if(j==5)
            {
                printf("
    ");
            }
        }
        for(i=0;i<5;i++)
        {
            sum=0;
            for(j=0;j<5;j++)
            {
                sum=sum+a[j][i];
                ave=0;
                ave=(double)sum/5;
                a[i][6]=ave;
            } 
        }
        printf("平均分");
        for(i=0;i<5;i++)
        {
            printf("%.2f       ",a[i][6]);
        }
        printf("
    ");
        return 0;
    }

                       

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

    #include<stdio.h>
    #define N 5
    int main()
    {
        int n,i,j,hangsum,liesum,duisum1,duisum2,a[N][N]={0};
        for(i=0;i<N;i++)
        for(j=0;j<N;j++)
        {
            a[i][j]=n;
            n++;
            printf("%3d",a[i][j]);
        }
        printf("
    ");
        for(i=0;i<N;i++)
        {
            hangsum=0;
            for(j=0;j<N;j++)
            {
                hangsum+=a[i][j];
            }
            printf("第%d行的元素之和为%d
    ",i+1,hangsum);
        }
        for(j=0;j<N;j++)
        {
            liesum=0;
            for(i=0;i<N;i++)
            {
                liesum+=a[i][j];
            }
            printf("第%d列的元素之和为%d
    ",j+1,liesum);
        }
        for(i=0;i<N;i++)
        {
            duisum1=0;
            duisum2=0;
            for(j=0;j<N;j++)
            {
            duisum1=a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[4][4];
            duisum2=a[0][4]+a[1][3]+a[3][1]+a[4][0];
            }
        }
        printf("左上到右下对角线的和为%d
    ",duisum1);
        printf("左下到右上对角线的和为%d
    ",duisum2);
        return 0;
    }

     二、实验总结(实验中遇到的问题及解决方法) 

    1.注意不要越界。

    2.在声明函数的二维数组形参时,可以省略第一维的长度,但不能省略数组第二维的长度。

    3.在求和的时候要在循环里边给sum附初始值。

  • 相关阅读:
    浅谈数据库设计技巧
    用Sqlhelper类简化数据访问示例
    SQL数据库对象命名详细文档
    C# 中SqlParameter类的使用方法小结
    DataGridView 列宽和行高自动调整的设定
    生成8位的不重复乱码
    DataGridView 冻结列或行
    用Sqlhelper类简化数据访问示例
    .Net中DataTable的保存
    LeapFTP 出现 “426 ”错误的解决方法
  • 原文地址:https://www.cnblogs.com/wy97/p/6142091.html
Copyright © 2020-2023  润新知