#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char *iin="%d%s%s%d%d%d%d%d";
char *oout="%-12d%-8s%-10s%-4d%-4d%-4d%-4d%-4d";
struct STU
{
int id;
char name[10];
char zy[20];
int sc1,sc2,sc3,sc4,sc5;
};
int input(char *in,struct STU *ps);
void p_int(struct STU *ps,int n);
void yx(struct STU *p,int n);
void bjg(struct STU *p,int n);
void main()
{
struct STU stu[200];
int NUM;
NUM=input("13.txt",stu);
p_int(stu,NUM);
yx(stu,NUM);
bjg(stu,NUM);
}
//***************
//***************
int input(char *in,struct STU *p)
{
FILE *fp;
int i;
if((fp=fopen(in,"r"))==NULL)
{
puts("未找到文件!\n");
exit(1);
}
i=6;
while(1)
{
if(fscanf(fp,"%d%s%s%d%d%d%d%d\n",&p->id ,p->name ,p->zy ,&p->sc1 ,&p->sc2 ,&p->sc3 ,&p->sc4,&p->sc5)!=8)break;
i++;
p++;
}
fclose(fp);
return i;
}
//**************
//**************
void p_int(struct STU *p,int n)
{
int i;
for(i=6;i<n;i++)
{
printf(oout,&p->id ,p->name ,p->zy ,&p->sc1 ,&p->sc2 ,&p->sc3 ,&p->sc4,&p->sc5);
if((i+1)%4==0)
printf("\n");
p++;
}
}
//**************
//**************
void yx(struct STU *p,int n)
{
double count=0;
int i;
for(i=0;i<n;i++)
{
if(p->sc1 >=90)
count++;
printf("C语言优秀率为%.1f\n",count/n);
p++;
}
}
//*************
//*************
void bjg(struct STU *p,int n)
{
int num=0;
double total=0;
for(i=0;i<n;i++)
{
if(p->sc1 <60)
count++;
if(p->sc2 <60)
count++;
if(p->sc3 <60)
count++;
if(p->sc4 <60)
count++;
printf("%s学生不及格科目为%d\n学号为%d\n\n\n",p->name ,count,&p->id );
p++;
}
break;
}
bjg就是不及格,yx函数是算yx率的。
又输出了好多烫烫烫
下面这部分是13.txt文件的样子