c语言函数最新进展 c语言函数用法大全
C语言 函数问题
用结构体比较方便易懂,我用结构体帮你做了一下,你可以看一看,可以运行的,我试过了。
#includestdio.h
#define N 4
#define M 5
struct student//建立学生数据结如源构体
{
char name[15];
float score[M];
float ave;
} stu[N];
void average(struct student stu[])//求平均成绩函数
{
int i,j,k;
float t;
for(i=0; iN; i++)
{
for(j=1; jM; j++)//冒泡排序将5个评委评分从低到高排列,然后取中间的评分求平均值。
for(k=0; kM-j; k++)
if(stu[i].score[j]stu[i].score[j+1])
{
t=stu[i].score[j];
stu[i].score[j]=stu[i].score[j+1];
stu[i].score[j+1]=t;
}
for(j=1; jM-1; j++)//历橡和去掉最高和最低分后求平均分
{
stu[i].ave+=stu[i].score[j];
}
stu[i].ave/=M-2;
}
}
void sort(struct student stu[])//排序函数
{
int i,j;
struct student temp;
for(i=1; iN; i++)//冒泡排序法
for(j=0; jN-i; j++)
if(stu[j].avestu[j+1].ave)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
main()
{
int i,j;
for(i=0; iN; i++)//输入学生数据
{
printf("请肢盯输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
for(j=0; jM; j++)
{
printf("请输入该生第%d个评委的评分:",j+1);
scanf("%f",stu[i].score[j]);
}
}
average(stu); //执行函数
sort(stu);
printf("\n按平均成绩逆序输出为:\n"); //逆序打印数据
printf("姓名 \t成绩\n");
for(i=0; iN; i++)
printf("%s \t%.2f\n",stu[i].name,stu[i].ave);
}
希望可以帮到你,呵呵
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c语言函数最新进展 c语言函数用法大全
本文地址: https://pptw.com/jishu/297073.html