中易网

高手求教C语言 功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):

答案:3  悬赏:40  
解决时间 2021-02-18 19:19
高手求教C语言 功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):
最佳答案
应该很好写的,给你一个参考的(在VC6.0上面调试过):
#include 
#include 
void insert_sort(float *x, int n);
void main(void)
{
int i=0,j=0,n=0;
float sum=0;
float ave=0;
//申请数组空间
printf("how many people? n=");
scanf("%d",&n);
float *a=(float *)malloc(n*sizeof(float));
//---------end

printf("input n scores
");float *p=a;
for (i=0;i{
printf("NO.%d:",i+1);
scanf("%f",p);
sum+=*p;//求总和
}
ave=sum/n;//求平均分
insert_sort(a,n);//分数由小到大排序,重塑数组
//找到大于或等于平均分的分界点
p=a;
for (i=0;i{
if (*p>=ave)
{
break;
}
}
//-------------------------end

printf("--------------------all informations below----------------------
");

printf("sum: %f
",sum);

printf("ave: %f
",ave);

printf("numbers of level A people: %d A rate: %f%%
",n-i,100*(float)((n-i)/(n-0.000001)));

printf("numbers of level B people: %d B rate: %f%%
",i,100*(float)(i/(n-0.000001)));

printf("lowest  scores: %f distance from ave: %f
",a[0],a[0]-ave);

printf("highest scores: %f distance from ave: %f
",a[n-1],a[n-1]-ave);free(a);//释放数组空间
}
void insert_sort(float *x, int n)//直接插入排序
{
int i, j;
float t;
for (i=1; i{
t=*(x+i);
for (j=i-1; j>=0 && t<*(x+j); j--) 
{
*(x+j+1) = *(x+j);
}
*(x+j+1) = t; 
}
}
效果:

全部回答
#include<stdio.h>
void main()
{int n,i,j,k;
float a,b;
float sum,ave,num[50];
float adang[50],bdang[50];
float max(float ma[],int x);
float min(float mi[],int x);
printf("请输入n的值\n");
scanf("%d",&n);
printf("请输入n个数值\n");
for(i=0;i<n;i++)
{scanf("%f",&num[i]);}
sum=0;
for(i=0;i<n;i++)
{sum=sum+num[i];};
ave=sum/n;
printf("总成绩:%.2f\n",sum);
printf("平均成绩:%.2f\n",ave);
j=0;
k=0;
for(i=0;i<n;i++)
{if(num[i]>=ave) {adang[j]=num[i];j++;}
else {bdang[k]=num[i];k++;};
}
printf("A档人数:%d\t所占比例:%.1f%%\n",j,(((float)j/n)*100));
printf("B档人数:%d\t所占比例:%.1f%%\n",k,(((float)k/n)*100));
a=min(adang,j);
b=max(bdang,k);
printf("A档最低分:%.2f\n",a);
printf("B档最高分:%.2f\n",b);
}
float max(float ma[],int x)
{int i;
float t;
t=ma[0];
for(i=0;i<x;i++)
{if(ma[i]>t) t=ma[i];};
return(t);
}
float min(float mi[],int x)
{int i;
float t;
t=mi[0];
for(i=0;i<x;i++)
{if(mi[i]<t) t=mi[i];};
return(t);
}

#include"stdio.h"
int mian(){
int a[10],sum=0,avg,i;
for(i=0,;i<10;i++)//输入并累计总分
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
avg=sum/10.0;
printf("平均分:%d",avg);
for(i=0,j=0;i<10;i++)
if(a[i]<avg) j++;
printf("低于平均分人数:%d",j);
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
cba2015-2016刘炜在哪支球队
英特电脑网络有限公司在什么地方啊,我要过去
我喜欢的女孩对我胡冷胡热的怎么回事 她是怎
美佳洁干洗地址有知道的么?有点事想过去
新疆有几个企业最好
为什么卡西欧手表可以打半折?
一个女孩以前很温柔,我对她表白后,她特别凶,
兄弟汽车修理服务中心这个地址在什么地方,我
女生的心里年龄比男生大三岁 对吗?
2015 年6月发表的ei会议论文什么时候能出检索
致富财经怎么样呀
我想开一家昆虫特色店不知那里能买到各种昆虫
双疤洞地址在什么地方,想过去办事
ps4pro美版日版和港版有什么区别
excel 要什麼使用if和or 才能出现不同班级的
推荐资讯
饱和蒸汽压的化学题
魏姓男孩国学典故起名
振光鸿泰医疗器械有限公司地址有知道的么?有
市场上90年代鸿泰昌普洱茶是真是假?
为什么鹦鹉下了六个蛋 都孵化出来了 可 是只
平丰塘地址在哪,我要去那里办事
两家子在什么地方啊,我要过去处理事情
今天我路过一家会所门口没有进去,那家会所在
我在写小说,写了3W申请签约被拒了,接着写还
百思图在什么地方啊,我要过去处理事情
请问电视剧《大男当婚》中曹小强的经典台词有
陇深这个地址在什么地方,我要处理点事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?