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

第十次作业

一、实验要求

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

代码:

#include<stdio.h>
int main()
{
    int i,j,sum1,sum2;
    double a[5][5]={{80,90,100},{80,90,100},{80,90,100},{80,90,100},{80,90,100}},ave[3]={0};
    sum1=0;
    sum2=0;
    for(i=0;i<5;i++)
    {
        for(j=0;j<3;j++)
        {
            sum1+=a[i][j];
        }
        a[i][3]=sum1;
        a[i][4]=(double)sum1/3;
    }
    for(j=0;j<3;j++)
    {
        for(i=0;i<5;i++)
        {
            sum2+=a[i][j];
        }
        ave[j]=(double)sum2/5;
    }
    printf("\t语文\t数学\t英语\t总分\t平均分\n");
    for(i=0;i<5;i++);
    {
        for(j=0;j<5;j++)
        {
            printf("\t%.2f",a[i][j]);
        }
        printf("\n");
     } 
     printf("平均分");
     for(j=0;j<3;j++)
     {
         printf("\t%.2f",ave[j]);
     } 
     return 0;
}

程序运行结果:技术分享

2、实验内容 :求任意方阵每行、每列、两对角线上元素之和。

代码:

#include<stdio.h>
#define N 100
int main()
{
    int sum1,sum2,sum3=0,sum4=0,i,j,n,a[N][N];
    printf("请输入方阵的行数:\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("请输入方阵的一个元素:\n");
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        sum1=0;
        for(j=0;j<n;j++)
        {
            sum1+=a[i][j];
        }
        printf("第%d行的元素之和是%d\n",i+1,sum1);
    }
    for(j=0;j<n;j++)
    {
        sum2=0;
        for(i=0;i<n;i++)
        {
            sum2+=a[i][j];
        }
        printf("第%d列的元素之和是%d\n",j+1,sum2);
    }
    for(i=0,j=0;i<n,j<n;i++,j++)
    {
        sum3+=a[i][j];
    }
    printf("一条对角线上的元素之和是%d\n",sum3);
    for(i=0,j=n-1;i<n;i++,j--)
    {
        sum4+=a[i][j];
    }
    printf("另一条对角线上的元素之和是%d\n",sum4);
    return 0;
}

程序运行结果:技术分享

二、实验总结

1、制作表格用\t;

2、二维数组中可以省略行的数组长度,但是不能省略列的数组长度;

3、二维数组中a[行数][列数];在循环中要注意先循环行还是先循环列;

4、注意中英文的书写。

第十次作业