C语言 调用函数如何求分数的平均分。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 调用函数如何求分数的平均分。相关的知识,希望对你有一定的参考价值。

主函数中输入分数的:for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&score[i][j]);
调用:aver1=num_ave(score[0])
定义的函数是:float num_ave(float score[])

int i;
float sum=0;
for(i=0;i<3;i++)
sum=sum+score[i];
return (sum/3);
调用函数时用score[0] 就能算一列的和了么,怎么算的。要是想算第一行的呢,应该怎样定义一个函数。
指针还没搞太懂。。。最好说清楚些,谢谢了。。

1、首先我们打开visual studio 2019软件,新建一个win32控制台程序。

2、然后在源文件夹下面新建一个C语言文件。

3、接着在C语言中导入stdio和stdlib库。

4、然后在main函数中输入如下图所示的逻辑代码。

5、运行程序以后我们就可以看到如下图所示的CMD界面,这里需要大家输入10个成绩。

6、最后输完第10个成绩的时候,回车就可以得到平均值了。

参考技术A

c语言的中没有现成的求平均数函数,可以自定义一个求平均数的函数

double Average(double s[],int n)//s为储存分数的数组,n为分数的总个数

    if(n==0)return 0;
    double sum=0;
    for(int i=0;i<n;i++)sum+=s[i];
    return sum/n;

参考技术B 定义的函数是求数组元素的平均值.
调用:aver1=num_ave(score[0]), 因为score[0]是第一行这个一维数组的名字,所以结果aver1即第一行元素的平均值.若调用num_ave(score[1]),那结果就是第二行的平均值.追问

score[0]算的是第一行的么?。。那第一列呢。

追答

想求第一列的平均值,必须用二维数组作参数。
定义函数
:float num_ave(float score[][3], int k)

int i;
float sum=0;
for(i=0;i<3;i++)
sum=sum+score[i][k];
return (sum/3);

本回答被提问者采纳
参考技术C float ave(float score[0][])

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出所有分数中最高分

//每个学生平均分;
void Average_Students(int a[5][5])
    
	
	int i, j;
	for (i = 0; i < 5; i++)
	
		//第i+1个同学
		double c;
		int b = 0;
		for (j = 0; j < 5; j++)
		//第i+1个同学的成绩平均分
			b += a[i][j];
			c = b / 5.00;
		
		printf("第%d个同学的成绩平均分%0.2f\\n", i + 1, c);
	
	

//每门课的平均分;
void Average_Class(int a[5][5]) 
    
	int i, j;
	for (j = 0; j < 5; j++) //这里a【i】【j】,j循环放在最外面
		double c;
		int b = 0;
		for (i = 0; i < 5; i++)
		
			b += a[i][j];
			c = b / 5;
			//printf("%d\\t", a[i][j]);     这里可以看下输出的分数列的数据
		
		printf("第%d门课的平均分分别为%0.2f\\n", j + 1, c);
	

//所有分数中最高分;
void Max_Point(int a[5][5]) 
   
	int maxh[5];
	int i, j, max;
	for (i = 0, j = 0; i < 5; i++)
	
		maxh[i] = a[i][j];//假设每行第一个是最大值 	
		for (j = 0; j < 5 - 1; j++)
		   //此行元素分别与之比较,较大值为maxh[i] 
			if (a[i][j + 1] >= maxh[i])
			
				maxh[i] = a[i][j + 1];
			
		
	
	for (i = 0; i < 5 - 1; i++) 
	
		max = maxh[i];//假设第一列的数是最大值 
        //整列元素分别与之比较,较大值为max
		if (maxh[i + 1] >= max)
		
			max = maxh[i + 1];
		
	
	printf("所有分数中最高分max=%d\\n", max);

int main()

	int a[5][5];
	int i, j;
	for (i = 0; i < 5; i++)
	
		printf("第%d个同学的成绩:", i + 1);
		for (j = 0; j < 5; j++)
		
			scanf_s("%d", &a[i][j]);
		
	//**输入时数字之间用空格分隔**
	printf("\\n");
	Average_Students(a); printf("\\n");
	Average_Class(a); printf("\\n");
	Max_Point(a); printf("\\n");//输出空格可去掉,这样只是为了输出结果美观
	return 0;


输出结果

1个同学的成绩:56 54 81 62 652个同学的成绩:85 96 42 68 783个同学的成绩:96 84 35 65 454个同学的成绩:54 31 41 68 485个同学的成绩:21 95 87 65 321个同学的成绩平均分63.602个同学的成绩平均分73.803个同学的成绩平均分65.004个同学的成绩平均分48.405个同学的成绩平均分60.001门课的平均分分别为62.002门课的平均分分别为72.003门课的平均分分别为57.004门课的平均分分别为65.005门课的平均分分别为53.00

所有分数中最高分max=95



要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .


参考链接 https://blog.csdn.net/weixin_45391986/article/details/105919562

以上是关于C语言 调用函数如何求分数的平均分。的主要内容,如果未能解决你的问题,请参考以下文章

C语言利用函数调用求一组数的最大值,最小值,平均数。。。。。。急。。。。

编写c语言程序用三个函数求10个同学的平均分及成绩排序

c语言编程 一维数组和函数

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分

C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分