• 作业(十)


    1.

    实验要求:

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

    实验代码:

    #include<stdio.h>
    #define m 5
    #define n 6
    int main()
    {
        int i=0,j=0;
        float sum=0,ave=0;
        float score[m][n]={{1,65,78,84},{2,68,78,89},{3,81,48,84},{4,85,67,69},{5,90,80,50}};
        for(i=0;i<m;i++)
        {
            for(j=1;j<=n-3;j++)
            {
                score[i][n-2]=score[i][n-2]+score[i][j];
            }
            score[i][n-1]=(score[i][n-2])/3; 
        }
        
        printf("	同学	语文	数学	英语	总分	平均分	
    ");
        for(i=0;i<m;i++)
        {
            for(j=0;j<n;j++)
            {
                if(score[i][j]==0)
                {
                    break;
                }
                printf("	%.2lf",score[i][j]);
            }
            printf("
    ");
        }
        printf("平均值:");
        for(j=1;j<=n-3;j++)
        {
            sum=0;
            for(i=0;i<m;i++)
            {
                sum+=score[i][j];
            }
            ave=sum/5;
            printf("	%.2lf",ave);
        }
        return 0;
    }

    实验截图:

     

    2.

    实验要求:                    

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

    实验代码:

    #include<stdio.h>
    #define N 100
    int main()
    {
        int n,sum[N][N]={0},i=0,j=0,m=1,sum1=0,sum2=0,I,J;
        printf("请输入方阵的长度
    ");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                sum[i][j]=m++;
            }
        }
        printf("原方阵:
    ");
        for(i=0;i<=n;i++)
        {
            for(j=0;j<=n;j++)
            {
                if(sum[i][j]==0)
                {
                    break;
                }
                printf("%4d",sum[i][j]);
            }
            printf("
    ");
        }//对角线
        for(i=n-1;i>=0;i--)
        {
            j=n-i-1;
            sum1=sum1+sum[i][j];
        }
        for(i=0;i<=n-1;i++)
        {
            j=i;
            sum2=sum2+sum[i][j];
        }//每行每列
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                sum[i][n]=sum[i][n]+sum[i][j];
            }
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                sum[n][j]=sum[n][j]+sum[i][j];
            }
        }//输出
        for(i=0;i<=n;i++)
        {
            for(j=0;j<=n;j++)
            {
                if(sum[i][j]==0)
                {
                    break;
                }
                printf("%4d",sum[i][j]);
            }
            printf("
    ");
        }
        for(i=0;i<n;i++)
        {
            I=i+1;
            printf("第%d行的合是%4d
    ",I,sum[i][n]);
        }
        for(j=0;j<n;j++)
        {
            J=j+1;
            printf("第%d列的合是%4d
    ",J,sum[n][j]);
        }
        printf("从右上到左下的对角线合为%d
    ",sum1);
        printf("从左上到右下的对角线合为%d
    ",sum2);
        return 0;
    }

    实验截图:

    实验结论:

    1.二维数组[][]第一个可以为空白,第二个不能为空白。

    2.数组的越界问题还是要考虑。

    3.注意循环之前要先对其赋值。

    4.要注意计算平均值时的小数点。 

  • 相关阅读:
    UVa 481
    ZOJ 1108 & HDU 1160
    UVa 11450
    UVa 11242
    UVa 750
    UVa 725
    UVa 483
    UVa 10258
    UVa 793
    The Little Girl who Picks Mushrooms HDU 4422 水题类似模拟的一种感觉
  • 原文地址:https://www.cnblogs.com/wgy774553994/p/6160614.html
Copyright © 2020-2023  润新知