zoukankan      html  css  js  c++  java
  • 第十次作业

    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 定义函数时数组名不能相同!

  • 相关阅读:
    Tomcat模型结构
    BASE64编码的图片在网页中的显示问题的解决
    详解 Java 中的三种代理模式
    JVM运行原理
    关于浏览器对html, js,css的解析先后顺序的理解
    springboot中使用拦截器、监听器、过滤器
    jQuery中ajax如何返回值到上层函数里?
    FORM表单中onclick()、submit()与onsubmit()的问题
    Java对象的序列化和反序列化
    java传值和传引用区别
  • 原文地址:https://www.cnblogs.com/5267wss/p/6142212.html
Copyright © 2011-2022 走看看