作业(十)

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.要注意计算平均值时的小数点。 

原文地址:https://www.cnblogs.com/wgy774553994/p/6160614.html