对学生量化总分降序排序(每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