第十次作业

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

 

复制代码
#include<stdio.h>
#define N 3
#define M 5
void readScore(int score[M][M]);
void aveforStud(int score[M][M],double ave[M][M]);
void aveforCourse(int score[M][M],double asd[4]);
int main()
{
    int  score[M][M],i,j;
    double ave[M][M],asd[4];
    readScore(score);
    aveforStud(score,ave);
    printf("        语文        数学        英语        总分    平均分\n");
    for(i=0;i<M;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("    %8d",score[i][j]);
        
        }
            
        
             printf("%  8.2f\n",ave[i][4]);
            
            printf("\n");
    }
    aveforCourse(score,asd);
    printf("平均分"); 
    for(i=0;i<4;i++)
    {
        printf("%7.2f     ",asd[i]);
    }


}
void  readScore(int score[M][M])
{
    int j,i,sum=0;
    printf("输入成绩");
    for(i=0;i<M;i++)
    {
        sum=0;
        printf("输入第%d个学生的成绩\n",i+1);
        for(j=0;j<N;j++)
        {
                
            scanf("%d",&score[i][j]);
            sum+=score[i][j];
        }
        score[i][3]=sum;
    }
}
void aveforStud(int score[M][M],double ave[M][M])
{
    int i;
    for(i=0;i<M;i++)
    {
      ave[i][4]=score[i][3]/3.0;
    }
}
void aveforCourse(int score[M][M],double asd[4])
{
    int i,j,sum;
    for(i=0;i<4;i++)
    {
        sum=0;
        for(j=0;j<5;j++)
        {
            sum+=score[j][i];
        }
        asd[i]=sum/5.0;
    }
}
复制代码

 

 

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

复制代码
#include<stdio.h>
#define N1 100
#define N2 100
int main()
{
    int zhen[N1][N2],n1,i,j,sum;
    printf("请输入方阵的行数:");
    scanf("%d",&n1);
    for(i=0;i<n1;i++)
    {
        printf("请输入第%d行的数\n",i+1);
        for(j=0;j<n1;j++)
        {
            scanf("%d",&zhen[i][j]);
        }
     } 
     for(i=0;i<n1;i++)
     {
         printf("\n");
         for(j=0;j<n1;j++)
         {
             printf(" %d ",zhen[i][j]);
         }
    }
    for(i=0;i<n1;i++)
    {
        sum=0;
        for(j=0;j<n1;j++)
        {
            sum+=zhen[i][j];
        }
        printf("\n方阵第%d行的和为:%d",i+1,sum);
    }
    for(j=0;j<n1;j++)
    {
        sum=0;
        for(i=0;i<n1;i++)
        {
            sum+=zhen[i][j];
        }
        printf("\n方阵第%d列的和为:%d",j+1,sum);
    }
    sum=0;
    for(i=0;i<n1;i++)
    {
        for(j=0;j<n1;j++)
        {
            if(i==j)
            {
                sum+=zhen[i][j];
            }
        }
    }
    printf("\n对角线元素之和为%d",sum);
    sum=0;
    for(i=0;i<n1;i++)
    {
        for(j=0;j<n1;j++)
        {
            if(i+j==n1-1)
            sum+=zhen[i][j];
        }
    }
    printf("\n对角线元素之和为%d",sum);
         return 0;
 } 
复制代码

 

实验总结:

1、注意循环嵌套

2、测试时可以先用简单的数进行测试

3、\b为退格 1字符长度 \t 4个字符

posted on 2016-12-11 20:47  耿前浩  阅读(150)  评论(1编辑  收藏  举报