求大佬解答c语言问题

对学生量化总分降序排序(每10个一行),并输出低于平均分的量化总分(假设有20名学生)跪求大佬!!!

void paixu(int a[], int n)
{
	int i, j,t;
	for (i = 0; i < n - 1; i++)
	{
		for (j = 0; j < n - 1 - i; j++)
		{
			if (a[j] < a[j + 1])
			{
				t = a[j];
				a[j] = a[j + 1];
				a[j + 1] = t;
			}
		}
	}
}

int main()
{
	
	int a[20];
	int i;
	float sum = 0, avg = 0;
	printf("请输入20个量化总分:");
	for (i = 0; i < 20; i++)
	{
		scanf_s("%d", &a[i]);
		sum += a[i];
	}
	avg = sum / 20;
	printf("量化总分降序排列为:\n");
	for (i = 0; i < 20; i++)
	{
		printf("%d ", a[i]);
		if (i == 9)
			printf("\n");
	}
	printf("平均分为:%.1f\n", avg);
	printf("低于平均分的分数有:");
	for (i = 0; i < 20; i++)
	{
		if (a[i] < avg)
			printf("%d ", a[i]);
	}

	return 0;
}

 

量化总分是啥?就是一个分数呗?

每10个一行是指打印后的效果吗?

代码已重新编辑,如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
int main()
{
	float score[20],tmp,avg = 0.0;
	int i,j;
	printf("请输入20个学生的成绩:");
	for(i=0;i<20;i++)
	{
		scanf("%f",&score[i]);
		avg += score[i];
	}
	avg = avg/20.0;
	for(i=0;i<19;i++)
	{
		for(j=0;j < 19-i;j++  )
		{
			if( score[j] < score[j+1] )
			{
				tmp = score[j];
				score[j]=score[j+1];
				score[j+1]=tmp;
			}
		}
	}
	//输出
	for(i=0;i<20;i++)
	{
		if(score[i] < avg)
			printf("%f ",score[i]);
	}
	printf("\n");
	return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632