第十次作业

一、实验内容

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

#include<stdio.h>
#define N 5
#define M 3
int main()
{
    int fen[N][M]={{100,99,98},{97,96,95},{94,93,92},{91,90,89},{88,87,86}},sum1,sum2,i,j,x=0;
    double ave1,ave2,a=0,b=0,c=0;
    printf("        语文    数学    英语    总分    平均分\n\t");
    sum1=0;
    sum2=0;
    ave1=0;
    ave2=0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            printf("%d\t",fen[i][j]);
            x++;
            sum1=sum1+fen[i][j];
            ave1=sum1/3;
            if(x%3==0)
            {
                printf("%d\t%.2lf\n\t",sum1,ave1);
                sum1=0;    
            }
            if(j==0)
            {
                a=a+fen[i][j];
            }
            if(j==1)
            {
                b=b+fen[i][j];
            }
            if(j==2)
            {
                c=c+fen[i][j];
            }
        }
    }
    printf("%.2f\t%.2f\t%.2f",a/5,b/5,c/5);
    return 0;
 } 

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

#include <stdio.h>
#define N 100
int main()
{
    int a[N][N],i,k,x,n=0,sum=0;
    printf("请输入方阵的行数\n");
    scanf("%d",&x);
    for(i=0;i<x;i++)
    {
        printf("\n");
        for(k=0;k<x;k++)
        {
         n++;
         a[i][k]=n;
         printf("%4d",n);
        }
    }
    printf("\n");
    for(i=0;i<x;i++)
    {
        sum=0;
        for(k=0;k<x;k++)
        {
            sum+=a[i][k];
        }
        printf("  第%d行的数的和为%d。\n",i+1,sum);
    }
    for(k=0;k<x;k++)
    {
        sum=0;
        for(i=0;i<x;i++)
        {
            sum+=a[i][k];
        }
        printf("  第%d列的数的和为%d。\n",k+1,sum);
    }
    sum=0;
        for(i=0;i<x;i++)
    {
        for(k=0;k<x;k++)
        {
            if(i==k)
            {
              sum+=a[i][k];
            }  
        }
    }
    printf("  左上至右下的对角线上的数的和为%d\n",sum);
    sum=0;
    for(i=0;i<x;i++)
    {
        for(k=x;k>=0;k--)
        {
            if(i==k)
            {
              sum+=a[i][k];
            }  
        }
    }
    printf("  右上至左下的对角线上的数的和为%d\n",sum);
    return 0;
}

二、知识点总结

1.数字的初始值一定要定义。

2.二维数组的行和列要分清。

三、实验总结

1.使用变量要赋初始值。

2.数组要注意越界的问题。

                            

posted @ 2016-12-11 20:04  呦呵  阅读(143)  评论(1编辑  收藏  举报