user-0 提问: 能帮忙看一下嘛 编译编译通过 但是没有运行结果

回复:
user: user-0
content: 引用 6 楼 5250的回复:#include<stdio.h> #include<stdlib.h> struct Student { int num; char name[20]; float score[3]; }stu[5]; int main() { FILE *fp1,*fp2; struct Student temp; int i,j,t; float aver_score[5]; if((fp1=fopen("D:\\CC\\stud.txt","r"))==NULL)//打开文件"stud.txt"  { printf("can't open file\n"); exit(0); } for(i=0;i<5;i++); //啥时候的for循环要加分号了？ {  fscanf(fp1,"%d %s %6.2f %6.2f %6.2f",stu[i].num,stu[i].name,// 从fp1指向的文件读入一组数据      加&        stu[i].score[0],stu[i].score[1],stu[i].score[2]);       printf("%d %s %6.2f %6.2f %6.2f\n",stu[i].num,stu[i].name,// 在屏幕上输出数据     stu[i].score[0],stu[i].score[1],stu[i].score[2]); } for(i=0;i<5;i++) {   aver_score[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;}//求每个学生三科成绩的平均分  for(i=0;i<4;i++) {   t=i;    for(j=i+1;j<5;j++)    if(aver_score[t]<aver_score[j]) t=j;//按平均分排序   temp=stu[i];  stu[i]=stu[t];  stu[t]=temp; } if((fp2=fopen("D:\\CC\\stu_sort.txt","w"))==NULL)//打开文件”stu_sort.txt"  { printf("can't open file\n"); exit(0); } for(i=0;i<5;i++); /////////****************** 分号分号 {  fprintf(fp2,"%d %s %6.2f %6.2f %6.2f %c",stu[i].num,stu[i].name,//将排序后的数据写入        stu[i].score[0],stu[i].score[1],stu[i].score[2],'\n');    printf("%d %s %6.2f %6.2f %6.2f\n",stu[i].num,stu[i].name,    stu[i].score[0],stu[i].score[1],stu[i].score[2]); } fclose(fp1); fclose(fp2); return 0; } 谢谢啊 已经改对了 读数据的时候不需要限制格式 不然读入数据不对

user: user-1
content: #include<stdio.h> #include<stdlib.h> struct Student { int num; char name[20]; float score[3]; }stu[5]; int main() { FILE *fp1,*fp2; struct Student temp; int i,j,t; float aver_score[5]; if((fp1=fopen("D:\\CC\\stud.txt","r"))==NULL)//打开文件"stud.txt"  { printf("can't open file\n"); exit(0); } for(i=0;i<5;i++); //啥时候的for循环要加分号了？ {  fscanf(fp1,"%d %s %6.2f %6.2f %6.2f",stu[i].num,stu[i].name,// 从fp1指向的文件读入一组数据      加&        stu[i].score[0],stu[i].score[1],stu[i].score[2]);       printf("%d %s %6.2f %6.2f %6.2f\n",stu[i].num,stu[i].name,// 在屏幕上输出数据     stu[i].score[0],stu[i].score[1],stu[i].score[2]); } for(i=0;i<5;i++) {   aver_score[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;}//求每个学生三科成绩的平均分  for(i=0;i<4;i++) {   t=i;    for(j=i+1;j<5;j++)    if(aver_score[t]<aver_score[j]) t=j;//按平均分排序   temp=stu[i];  stu[i]=stu[t];  stu[t]=temp; } if((fp2=fopen("D:\\CC\\stu_sort.txt","w"))==NULL)//打开文件”stu_sort.txt"  { printf("can't open file\n"); exit(0); } for(i=0;i<5;i++); /////////****************** 分号分号 {  fprintf(fp2,"%d %s %6.2f %6.2f %6.2f %c",stu[i].num,stu[i].name,//将排序后的数据写入        stu[i].score[0],stu[i].score[1],stu[i].score[2],'\n');    printf("%d %s %6.2f %6.2f %6.2f\n",stu[i].num,stu[i].name,    stu[i].score[0],stu[i].score[1],stu[i].score[2]); } fclose(fp1); fclose(fp2); return 0; }

user: user-0
content: 引用 4 楼 chxchxkkk的回复:fscanf读取数据要用 &，char[]不用，比如 &stu.num, stu.name 忽略了 谢谢 不过还是得不到想要的结果

user: user-2
content: fscanf读取数据要用 &，char[]不用，比如 &stu.num, stu.name

user: user-0
content: 引用 1 楼 user-3的回复:你是不是用文字先描述下想干啥？是求每个人的平均分还是求每科的平均分？ 5个学生 3课成绩 求学生的平均分 谢谢

user: user-0
content: 引用 1 楼 user-3的回复:你是不是用文字先描述下想干啥？是求每个人的平均分还是求每科的平均分？ #include<stdio.h> #include<stdlib.h> struct Student { 	int	num; 	char name[20]; 	float score[3]; }stu[5]; int main() { 	FILE *fp1,*fp2; 	struct Student temp; 	int i,j,t; 	float aver_score[5]; 	if((fp1=fopen("D:\\CC\\stud.txt","r"))==NULL)//打开文件"stud.txt"  	{ printf("can't open file\n"); 	exit(0); 	} 	for(i=0;i<5;i++); 	{  fscanf(fp1,"%d %s %6.2f %6.2f %6.2f",stu[i].num,stu[i].name,// 从fp1指向的文件读入一组数据  		      stu[i].score[0],stu[i].score[1],stu[i].score[2]); 	   printf("%d %s %6.2f %6.2f %6.2f\n",stu[i].num,stu[i].name,// 在屏幕上输出数据  		   stu[i].score[0],stu[i].score[1],stu[i].score[2]); 	} 	for(i=0;i<5;i++) 	{   aver_score[i]=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;}//求每个学生三科成绩的平均分  	for(i=0;i<4;i++) 	{   t=i; 	   for(j=i+1;j<5;j++) 		   if(aver_score[t]<aver_score[j]) t=j;//按平均分排序  		 temp=stu[i]; 		 stu[i]=stu[t]; 		 stu[t]=temp; 	} 	if((fp2=fopen("D:\\CC\\stu_sort.txt","w"))==NULL)//打开文件”stu_sort.txt"  	{ printf("can't open file\n"); 	exit(0); 	} 	for(i=0;i<5;i++); 	{  fprintf(fp2,"%d %s %6.2f %6.2f %6.2f %c",stu[i].num,stu[i].name,//将排序后的数据写入  		      stu[i].score[0],stu[i].score[1],stu[i].score[2],'\n'); 	   printf("%d %s %6.2f %6.2f %6.2f\n",stu[i].num,stu[i].name, 		   stu[i].score[0],stu[i].score[1],stu[i].score[2]); 	} 	fclose(fp1); 	fclose(fp2); 	return 0; }

user: user-3
content: 你是不是用文字先描述下想干啥？是求每个人的平均分还是求每科的平均分？