#include<stdio.h>
struct students
{
int num;
char name[10];
float math;
float eng;
float cy;
};
double average(float a,float b,float c)
{
double aver ;
aver=(a+b+c)/3;
return aver;
}
void sort(struct students a[3],double aver[3])
{
int i,j;
double t;
FILEfg;
fg=fopen("score_aver . txt","w");
for(i=0;i<2;i++ )
for(j=0;j<3-i;j++)
if(aver[i]<aver[j])
{
t=aver[i];
aver[i]=aver[j];
aver[j]=t;
}
for(i=0;i<3;i++)
{
fprintf(fg,"%d%s%f%f%f%lf",a[i].num,a[i].name ,a[i].math,a[i].eng ,a[i].cy ,aver[i]);
printf("%d%5%f%f%f%lf",a[i].num,a[i].name,a[i].math,a[i].eng,a[i].cy,aver[i]);
}
fclose(fg);
}
int main()
{
struct students a[3];
int i;
double aver[3]={0};
FILEfp, *fg ;
fp=fopen("score.txt" ,"r");
fg=fopen("score_ aver txt","w");
fprintf(fg,"姓名 高数 英语 c语言 平均分");
printf("姓名 高数 英语 c语言");
for(i=0;i<3;i++)
{
fscanf(fp ,"%d%s%f%f%f" ,&a[i] .num,&a[i].name ,&a[i].math,&a[i] .eng ,&a[i].cy);
aver[i]=average(a[i].math,a[i].eng,a[i].cy);
}
sort(struct students a[3],aver[3]);
fclose(fp);
fclose(fg);
return 0;
}
成绩管理系统中sort函数出现错误
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 举个例子,题主可尝试下述思路:
#include <stdio.h> #include <conio.h> struct student { char num[20];//学号 char name[20];//姓名 int s1,s2,s3;//三门课成绩 double ave;//平均成绩 }; int main() { struct student stu[5]; FILE* fp; int i; printf ("请输入3名学生的学号、姓名、3门课的成绩,空格分隔,回车结束\n"); for (i=0;i<3;i++) scanf ("%s %s %d %d %d",stu[i].num,stu[i].name,&stu[i].s1,&stu[i].s2,&stu[i].s3); for (i=0;i<3;i++)//计算平均成绩 stu[i].ave=(stu[i].s1+stu[i].s2+stu[i].s3)/3.0; fp=fopen("stu_list.txt","w");//以"写"方式打开文件 for (i=0;i<3;i++) fprintf (fp,"%s %s %d %d %d %lf\n",stu[i].num,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3,stu[i].ave); fclose(fp); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法