• 第十次作业


     

    一、实验内容

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

    1.1 代码:

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

    1.2 程序运行结果:

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

     2.1 代码:

    #include <stdio.h>
    #define M 5
    int main()
    {
    	int a,i,j,score[M][M]={0},sum1,sum2,sum3,sum4;
    	printf("请输入行数(列数)
    ");
    	scanf("%d",&a);
    	printf("请输入数字
    "); 
    	for(i=0;i<a;i++)
    	{
    		for(j=0;j<a;j++)
    		{
    			scanf("%d",&score[i][j]);
    			printf("%d",score[i][j]);
    		}
    		printf("
    ");
    	}
    	for(i=0;i<a;i++)
    	{
    		sum1=0;
    		for(j=0;j<a;j++)
    		{
    			sum1+=score[i][j];
    		}
    		printf("第%d行的和为%d
    ",i+1,sum1);
    	}
    	for(j=0;j<a;j++)
    	{
    		sum2=0;
    		for(i=0;i<a;i++)
    		{
    			sum2+=score[i][j];
    		}
    		printf("第%d列的和为%d
    ",j+1,sum2);
    	}
    	sum3=0;
    	for(i=0;i<a;i++)
    	{
    		for(j=0;j<a;j++)
    		{
    			if(i==j)
    			{
    				sum3+=score[i][j];
    			}
    		}
    	}
    		printf("对角线的和为%d
    ",sum3);
    	sum4=0;
    	for(i=0;i<a;i++)
    	{
    		for(j=0;j<a;j++)
    		{
    			if(i+j==a-1)
    			{
    				sum4+=score[i][j];
    			}
    		}
    	}
    	printf("副对角线的和为%d",sum4);
    	return 0;
    } 
    

    2.2 程序运行结果:

    二、实验总结

    1.计算每个变量的时候都要重新赋值。

    2.函数不用返回值。因为平均值数组是通过参数数组传过来的,可以把函数计算的平均值带回去

    3.如果对数组每行求平均,那么平均值是多个,应该存放在一个数组里面,函数参数应该有一个存放平均值的数组

  • 相关阅读:
    自定义 ListView
    linux IO重定向
    Facebook开源C++组件库Folly
    在vi按了ctrl+s后
    让Erlang服务器后台运行
    mysql innodb 性能相关参数
    linux 网卡驱动升级
    kernel panic
    32位Linux下使用2G以上大文件的几个相关宏的关系
    CentOS安装erlang
  • 原文地址:https://www.cnblogs.com/wei530/p/6159088.html
Copyright © 2020-2023  润新知