求高手写一个c语言编程,题目自拟,100行以上。谢谢!

2024-11-08 05:55:44
推荐回答(3个)
回答(1):

#include
#include
#define N 5
struct student
{ int num;
char name[20];
int M,E,L,C,P;
int average;
int fail;
} ;
void save(struct student *p)
{ int i;
FILE *fp;
if((fp=fopen("student.text","w"))==NULL)
{
printf("Cannot open file!\n");
return ;
}
for(i=0;i {fwrite(p,sizeof(struct student),1,fp);
p++;
}
free(fp);
}
void average(struct student* p)
{ int i;
for(i=0;i p->average=(p->M+p->E+p->L+p->C+p->P)/5;

}
void fail(struct student* p)
{ int i;
for(i=0;i { p->fail=0;
if(p->M<60||p->E<60||p->L<60||p->C<60||p->P<60)
p->fail=1;
}
}
void excelent(struct student *p)
{ int i,k,t;
for(i=0;i {
for(k=i;k if(((p+i)->average)<((p+k)->average))
{
t=(p+i)->average;
(p+i)->average=(p+k)->average;
(p+k)->average=t;

}

}
}
int main()
{ struct student stu[N];
int i,j;

printf("请输入5个同学的数据\n");
for(i=0;i{
scanf("%d%s%d%d%d%d%d",&stu[i].num,stu[i].name,&stu[i].M,&stu[i].E,&stu[i].L,&stu[i].C,&stu[i].P);
printf("\nnext \n");
}
average(stu);
printf(" 学号 姓名 数学 英语 语文 C 物理 平 均 \n");
for(i=0;iprintf("%4d%8s%8d%8d%8d%8d%8d%8d\n",stu[i].num,stu[i].name,stu[i].M,stu[i].E,stu[i].L,stu[i].C,stu[i].P,stu[i].average);
fail(stu);
save(stu);
printf("有不及格科目的同学有:\n num name \n");
for(i=0;i{
if(stu[i].fail)
printf("%4d %s\n",stu[i].num,stu[i].name);
}
FILE *fp;
if((fp=fopen("student.text","rb"))==NULL)
{
printf("Cannot open file!\n");
exit(0);
}
fread(&stu[i],sizeof(struct student),1,fp);
printf(" 学号 姓名 数学 英语 语文 C 物理 平 均 \n");
for(i=0;iprintf("%4d%8s%8d%8d%8d%8d%8d%8d\n",stu[i].num,stu[i].name,stu[i].M,stu[i].E,stu[i].L,stu[i].C,stu[i].P,stu[i].average);

excelent(stu);
printf("经过安平均分排序后的成绩为:\n 学号 姓名 数学 英语 语文 C 物理 平 均 \n");
for(i=0;iprintf("%4d%8s%8d%8d%8d%8d%8d%8d\n",stu[i].num,stu[i].name,stu[i].M,stu[i].E,stu[i].L,stu[i].C,stu[i].P,stu[i].average);

free(fp);
return 0;

}
绝对自己编的。没有功劳也有苦劳!

回答(2):

你错了,菜鸟也不写这个,菜虫才写吧

回答(3):

高手是不写这么弱智的程序的,叫菜鸟写去。