1. 程式人生 > >從鍵盤輸入4位學生的資料(學生資料包括學號、姓名和三門課成績),然後把它們轉存到磁碟檔案中去,再從磁碟檔案讀入相應變數中,並將變數內容輸出到螢幕。

從鍵盤輸入4位學生的資料(學生資料包括學號、姓名和三門課成績),然後把它們轉存到磁碟檔案中去,再從磁碟檔案讀入相應變數中,並將變數內容輸出到螢幕。

#include<stdio.h>
#define num 4
struct stu
{
char number[20];
char name[20];
float Sub1;
float Sub2;
float Sub3;
};


int main()
{
int i;
FILE *fp; 
struct stu st[num],read[num];

printf("請輸入四位學生的學號、姓名以及三門課成績(空格分隔)。\n");
for(i=0;i<num;i++)
{
printf("%d.",i+1);
scanf("%s%s%f%f%f",st[i].number,st[i].name,&st[i].Sub1,&st[i].Sub2,&st[i].Sub3);


if((fp=fopen("D:\\student.txt","w"))==NULL)
printf("開啟失敗!");
else
printf("成功!");

for(i=0;i<num;i++)
{
fprintf(fp,"%s %s %.1f %.1f\n",st[i].number,st[i].name,st[i].Sub1,st[i].Sub2,st[i].Sub3); 
}
fclose(fp);

if((fp=fopen("D:\\student.txt","r"))==NULL)
printf("開啟失敗!");
else
printf("成功!");
 
printf("學號  姓名  學科1  學科2  學科3 \n"); 
for(i=0;i<num;i++)
{
fscanf(fp,"%s %s %f %f %f",read[i].number,read[i].name,&read[i].Sub1,&read[i].Sub2,&read[i].Sub3); 
printf("%s %s %.1f %.1f\n",read[i].number,read[i].name,read[i].Sub1,read[i].Sub2,read[i].Sub3); 
}

fclose(fp);
 
return 0;

}

這個怎麼不對,求解!