C语言学习,数组与函数学习,练手

//int max, min;这题是关于5个学生求最高最低和平均的程序
//float getaverage(int a[],int len)
//{
//	int i;
//	int sum = 0;
//	max = min = a[0];
//	for (i = 0; i < len; i++)
//	{
//		if (max < a[i])
//		{
//			max = a[i];
//		}
//		if (min > a[i])
//		{
//			min = a[i];
//		}
//		sum = sum + a[i];
//	}
//	return (float)sum / len;//强制转换才能得到浮点数,不然结果还是整数
//}
//
//int main()
//{
//	int score[] = { 56,89,78,59,99 };
//	float ave;
//	printf("请输入5个学生的分数:\n",score);
//
//	
//	ave = getaverage(score,sizeof(score)/sizeof(score[0]));
//	printf("%d,%d,%f",max,min,ave);
//
//	return 0;
//}

第一题是计算学生成绩的平均分,最大最小值

,一维数组,这题是关于求两个班学生的平均分
//void inita(int a[], int len)
//{
//	int i;
//	for(i=0;i<len;i++)
//	{
//		printf("请输入%d个学生的成绩: \n",i+1);
//		scanf("%d",&a[i]);
//	}
//	puts("done");
//}
//
//void printa(int a[], int len)
//{
//	int i;
//	printf("总人数%d个\n", len);
//	for (i = 0; i < len; i++)
//	{
//		printf("成绩:%d \n", a[i]);
//		
//	}
//	puts("done");
//}
//
//float getave(int a[], int len)
//{
//	int i;
//	float ave = 0.0;
//	for (i = 0; i < len; i++)
//	{
//		ave = ave + a[i];
//	}
//	return ave/len;
//}
//
//int main()
//{
//	float ave1, ave2;
//	int a1[5];
//	int a2[10];
//	int len1 = (sizeof(a1) / sizeof(a1[1]));
//	int len2 = (sizeof(a2) / sizeof(a2[1]));
//	inita(a1, len1);
//	inita(a2, len2);
//
//	printa(a1, len1);
//	printa(a2, len2);
//
//	ave1=getave(a1, len1);
//	ave2=getave(a2, len2);
//
//	printf("平均成绩:%f \n", ave1);
//	printf("平均成绩:%f \n", ave2);
//	return 0;
//}

使用一维数组来计算两个班级学生成绩的均值最值

//,二维数组,这题是关于求矩阵的最大最小
//void inita(int a[][3], int hang,int lie)
//{
//	int i,j;
//	for (i = 0; i < hang; i++)
//	{
//		for (j = 0; j < lie; j++) {
//			printf("%d行,%d列\n",i+1,j+1);
//			scanf("%d", &a[i][j]);
//		}
//	}
//	puts("done");
//}
//
//void printa(int a[][3], int hang, int lie)
//{
//	int i,j;
//	
//	for (i = 0; i < hang; i++)
//	{
//		for (j = 0; j < lie; j++) {
//			printf("%d ", a[i][j]);
//			
//		}
//		putchar('\n');
//	}
//	
//}
//
//int getave(int a[][3], int hang, int lie)
//{
//	int i,j, max, min;
//	max = a[0][0];
//	for (i = 0; i < hang; i++) {
//		for (j = 0; j < lie; j++)
//		{
//			if (max < a[i][j])
//			{
//				max = a[i][j];
//			}
//			/*if (min > a[i][j])
//			{
//				min = a[i][j];
//			}*/
//		}
//	}
//	return max;
//}
//
//int main()
//{
//	int a1;
//	int a[3][3];
//
//	inita(a, 3,3);
//	
//	printa(a, 3,3);
//	
//	a1=getave(a, 3,3);
//	
//
//	printf("二维数组最大值:%d \n", a1);
//	
//	return 0;
//}

创建一个矩阵,并找出矩阵中的最大值

int row, col, max;
void inita(int a[][3], int hang,int lie)
{
	int i,j;
	for (i = 0; i < hang; i++)
	{
		for (j = 0; j < lie; j++) {
			printf("%d行,%d列\n",i+1,j+1);
			scanf("%d", &a[i][j]);
		}
	}
	puts("done");
}

void printa(int a[][3], int hang, int lie)
{
	int i,j;
	
	for (i = 0; i < hang; i++)
	{
		for (j = 0; j < lie; j++) {
			printf("%d ", a[i][j]);
			
		}
		putchar('\n');
	}
	
}

int getave(int a[][3], int hang, int lie)
{
	int i,j, max;
	max = a[0][0];
	for (i = 0; i < hang; i++) {
		for (j = 0; j < lie; j++)
		{
			if (a[i][j] > max)

			{
				max = a[i][j];
				row = i;
				col = j;
			}//忘记添加括号没有归属范围,无法显示行和列
			/*if (min > a[i][j])
			{
				min = a[i][j];
			}*/
		}
	}
	return max;//刚才没找到最大值因为没有添加返回值
}

int main()
{
	
	
	int a[3][3];

	inita(a, 3,3);
	
	printa(a, 3,3);
	
	max=getave(a, 3,3);
	

	printf("最大值是: %d,位于第%d行,第%d列。\n", max, row + 1, col + 1);
	return 0;
}

二维数组,也是创建矩阵找出最大值,并找到其所在行列位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值