首页 > 代码库 > 第十次作业

第十次作业

一、实验内容      

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

#include<stdio.h>
#define H 5
#define L 5
int main()
{
    int i,j,sum=0;
    float ave,score[H][L]={67,89,78,0,0,68,98,88,0,0,90,70,56,0,0,78,80,78,0,0,78,89,70,0,0};;
    for(i=0;i<H;i++)
    {
        sum=0;
        for(j=0;j<L;j++)
        {
            sum+=score[i][j]; 
            score[i][3]=sum;
            ave=0;
            ave=(double)sum/3;
            score[i][4]=ave;
        }
    }   
    printf("          语文    数学     英语     总分    平均分");
    printf("\n");

    for(i=0;i<H;i++)
    {
            printf("学生%d\t",i+1);
        for(j=0;j<L;j++)
        {
            printf("  %.2f ",score[i][j]);
        }
        if(j==5)
        {
            printf("\n");
        }
    }
    for(i=0;i<H;i++)
    {    
        sum=0;
        for(j=0;j<L;j++)
        {
            sum=sum+score[j][i];
            ave=0;
            ave=(double)sum/5;
            score[i][5]=ave;
        }
    }
    printf("平均分");
    for(i=0;i<L;i++)
    {
        printf("    %.2f",score[i][5]);
    }
    printf("\n");
    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("%5d",a[i][j]);
    }
    printf("\n");
    for(i=0;i<N;i++)
    {
        hangsum=0;
        for(j=0;j<N;j++)
        {
            hangsum+=a[i][j];
        }
        printf("第%d行的元素之和为%d\n",i+1,hangsum);
    }
    for(j=0;j<N;j++)
    {
        liesum=0;
        for(i=0;i<N;i++)
        {
            liesum+=a[i][j];
        }
        printf("第%d列的元素之和为%d\n",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\n",duisum1);
    printf("左下到右上对角线的和为%d\n",duisum2);
    return 0;
}

技术分享

 二、实验总结

1.注意不要越界。

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

3.输出时不加取地址符

 

第十次作业