我看了你的程序,给你改了两处(见注释),完整的程序如下:
#include
#include
#define N 4/*学生人数*/
#define M 5/*课程数*/
struct student
{
int id;
char name[20];
float mark[M];/*每门课的成绩*/
float sum[4];/*总分 平均成绩 最高分 最低分*/
};
typedef struct student STD;
int main()
{
STD st[N];
int i,h,j,k;
FILE *fp,*fp2;;
if((fp=fopen("E:\\11.txt","r"))==NULL)
{
printf("无法打开该文件!\n");
exit(0);
}
for(i=0;i
fscanf(fp,"%d ",&st[i].id);
fscanf(fp,"%c",&st[i].name[0]);
h=0;
while (st[i].name[h]!=' ')
{
h++;
fscanf(fp,"%c",&st[i].name[h]);
}
st[i].name[++h]='\0';//这里加了一句,以添加字符串尾部。
for (j=0;j
}
for(i=0;i
printf("%-3d%-5s",st[i].id,st[i].name);
for(j=0;j
printf("\n");
}
return 0;
}