• 第十次作业


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

    #include <stdio.h>
    #define M 5
    #define N 3
    void Score(int score[M][N]);
    void aveforstudent(int score[M][N],double average1[]);
    void aveforsubject(int score[M][N],double average2[]);
    int main()
    {
        int score[M][N],i,j,sum1;
        double average1[M],average2[N];
        Score(score);
        aveforstudent(score,average1);
        aveforsubject(score,average2);
        printf("	语文	数学	英语	总分	平均分
    ");
        for(i=0;i<M;i++)
        {
            printf("学生%d	",i+1);
            sum1=0;
            for(j=0;j<N;j++)
            {
                printf("%d	",score[i][j]);
                sum1=sum1+score[i][j];
            }
            printf("%d	",sum1);0
            printf("%.2f",average1[i]);
            printf("
    ");
        }
        printf("平均分	");
        for(j=0;j<N;j++)
        {
            printf("%.2f	",average2[j]);
        }
        return 0;
    }
    
    void aveforstudent(int score[M][N],double average1[])
    {
        int i,j,sum;
        for(i=0;i<M;i++)
        {
            sum=0;
            for(j=0;j<N;j++)
            {
                sum=sum+score[i][j];
            }
            average1[i]=(double)sum/N;
        }
    }
    void aveforsubject(int score[M][N],double average2[])
    {
    int i,j,sum;
        for(j=0;j<N;j++)
        {
            sum=0;
            for(i=0;i<M;i++)
            {
                sum=sum+score[i][j];
            }
            average2[j]=(double)sum/M;
        }
    }
    void Score(int score[M][N])
    {
        int i,j;
        for(i=0;i<M;i++)
        {
            printf("请输入第%d个学生成绩
    ",i+1);
            for(j=0;j<N;j++)
            {
                scanf("%d",&score[i][j]);
            }
            
        }
    }

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

    #include <stdio.h>
    #define N 100
    int main()
    {
        int fz[N][N],i,j,sum,a,b=0;
        printf("请输入行数");
        scanf("%d",&a);
        for(i=0;i<a;i++)
        {
            for(j=0;j<a;j++)
            {
               b++;
               fz[i][j]=b;
               printf("%3d",b);
            }
            printf("
    ");
        }
        for(i=0;i<a;i++)
        {
            sum=0;
            for(j=0;j<a;j++)
            {
                sum=sum+fz[i][j];
            }
            printf("第%d行的和为%d
    ",i+1,sum);
        }
        for(j=0;j<a;j++)
        {
            sum=0;
            for(i=0;i<a;i++)
            {
                sum=sum+fz[i][j];
            }
            printf("第%d列的和为%d
    ",j+1,sum);
        }
        sum=0;
        for(i=0;i<a;i++)
        {
            sum=sum+fz[i][i];
        }
        printf("左对角线的和为%d
    ",sum);
        sum=0;
        j=a-1;
        for(i=0;i<a;i++)
        {
            sum=sum+fz[i][j];
            j--;
        }
        printf("右对角线的和为%d
    ",sum);
        return 0;
    }

    实验总结:

    1 为制表位!

    2 输出语句应判断好在循环内还是循环外!

    3 定义函数时数组名不能相同!

  • 相关阅读:
    C#下实现ping功能
    Telnet Chat Daemon
    ADO.NET连接池
    很好使的MAIL CLASS
    实例看多态
    完整的TCP通信包实现
    使用C#进行点对点通讯和文件传输(通讯基类部分)(转)
    特洛伊木马服务器源代码(C#)
    [C#] 如何选择一个目录
    如何使用C#压缩文件及注意的问题!
  • 原文地址:https://www.cnblogs.com/5267wss/p/6142212.html
Copyright © 2020-2023  润新知