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

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

      

    #include<stdio.h>
    void scanfscore( int a[5][3] );
    void ave(int a[5][3]);
    int sum(int a[5][3],int i);
    int main()
    {
        int a[5][3],i,j,Sum;
        double average;
        scanfscore(a);
    	printf("输入分数
    ");
        printf("	数学	语文	英语	总分	平均分
    ");
        for(i=0;i<5;i++)
        {
            printf("学生%d	",i+1);
            for(j=0;j<3;j++)
            {
                printf("%d	",a[i][j]);
            }
            Sum=sum(a,i);
            average=(double)Sum/3;
            printf("%d	%.2f
    ",Sum,average);
        }
    
        printf("平均分	");
        ave(a);
        return 0;
    }
    void scanfscore( int a[5][3])
    {
        int i,j;
        for(i=0;i<5;i++)
        for(j=0;j<3;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    void ave(int a[][3])
    {
        int i,j,sum;
        double ave;
        for(j=0;j<3;j++)
        {
            for(i=0,sum=0;i<5;i++)
            {
                sum+=a[i][j];
            }
            ave=(double)sum/5;
            printf("%.2f	",ave);
        }
    }
    int sum(int a[][3],int i)
    {
        int j,Sum;
            for(j=0,Sum=0;j<3;j++)
            {
                Sum+=a[i][j];
            }
        return Sum;
    }
    

      

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

      

    # include<stdio.h>
    # define N 5
    int main()
    {
    	int i,j,n=1,sum,a[N][N]={0};
    	for(i=0;i<N;i++)
    	for(j=0;j<N;j++)
    	{
    		a[i][j]=n;
    		n++;
    		if(n%5==0)
    		{
    	       printf(" %3d",a[i][j]);
    		}
    	}
    	printf("
    ");
    	for(j=0;j<N;j++)
    	{
    		sum=0;
    		for(i=0;i<N;i++)
    		{
    			sum=sum+a[j][i];
    		}
    		printf("第%d行的和为%d
    ",j+1,sum);
    	}
    	for(i=0;i<N;i++)
    	{
    		sum=0;
    		for(j=0;j<N;j++)
    		{
    			sum=sum+a[j][i];
    		}
    		printf("第%d列的和为%d
    ",i+1,sum);
    	}
    	sum=0;
    	for(i=0;i<N;i++)
    	{
    		sum+=a[i][i];
    	}
    	printf("主对角线之和为%d
    ",sum);
    	sum=0;
    	for(i=0;i<N;i++)
    	{
    		sum+=a[4-i][i];
    	}
    	printf("副对角线之和为%d
    ",sum);
    	return 0;
    }
    

      

      

    二.实验总结
    1.数据类型 数组名[常量表达式][常量表达式]
    2.二维数组:按行存放,线性存储 
    3.在声明函数的二维数组形参时,可以省略第一维的长度,但不能省略数组第二维的长度
    4.注意赋初值
    5对角线分主对角线,副对角线
    

      

     

      

  • 相关阅读:
    JavaScript中创建对象的几种模式
    Vue学习5:条件渲染
    Vue学习4:class与style绑定
    Vue学习3:计算属性computed与监听器
    Vue学习2:模板语法
    普通递归与优化递归
    new操作符具体干了什么呢?
    各种形式存放token
    用es6的Array.reduce()方法计算一个字符串中每个字符出现的次数
    ES6 对象的解构赋值
  • 原文地址:https://www.cnblogs.com/1601wyn/p/6140781.html
Copyright © 2011-2022 走看看