user-0 提问: 求教C语言，我要怎样把它的名次变成这样

回复:
user: user-1
content: 看三楼。。。

user: user-0
content: 引用 6 楼 zhao4zhong1 的回复:代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。好吧，惭愧！你教育的对，我会虚心接受学习

user: user-2
content: 代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。

user: user-3
content: 可以給我Scores.txt 的內容嗎? 我能直接寫給你

user: user-0
content: 引用 3 楼 zhao4zhong1 的回复://Score.txt: //甲 70 60 65 //乙 80 76 90 //丙 75 65 90 //丁 56 80 70 #include <stdio.h> struct ST {     char name[20];     int gw;     int yw;     int sx;     int zf;     int pj;     int mc; } st[4]; struct ZFS {     int no;     int zf; } zfs[4],zft; int main() {     FILE *fp;     int i,j;      fp=fopen("Scores.txt","r");     if (fp==NULL) return -1;     for (i=0;i<4;i++) {         fscanf(fp,"%19s%d%d%d",             st[i].name,            &st[i].gw,            &st[i].yw,            &st[i].sx);         st[i].zf=st[i].gw+st[i].yw+st[i].sx;         st[i].pj=(int)(st[i].zf/3.0+0.5);         zfs[i].no=i;//记住该总分对应的人         zfs[i].zf=st[i].zf;     }     fclose(fp);     //对总分排序     for (i=0;i<4-1;i++) {         for (j=i+1; j<4;j++) {             if (zfs[j].zf>zfs[i].zf) {                 zft=zfs[i];zfs[i]=zfs[j];zfs[j]=zft;             }         }     }     for (i=0;i<4;i++) st[zfs[i].no].mc=i+1;//填写每个人的名次     printf("姓名\t國文\t英文\t數學\t總分\t平均\t名次\r\n");      for (i=0;i<4;i++) {         printf("%s\t%2d\t%2d\t%2d\t%3d\t%2d\t%2d\n",             st[i].name,             st[i].gw,             st[i].yw,             st[i].sx,             st[i].zf,             st[i].pj,             st[i].mc);     }     return 0; } //姓名    國文    英文    數學    總分    平均    名次 //甲      70      60      65      195     65       4 //乙      80      76      90      246     82       1 //丙      75      65      90      230     77       2 //丁      56      80      70      206     69       3 //   我修改后这样运行的结果，不知怎么回事 //#include<stdafx.h>  #include<stdio.h> #include<stdlib.h> #include<memory.h> int main(int argc, char* argv[]) { 	int StudentScores[10][6]; 	char StudentName[10][20]; 	int temp; 	int Cur=0,Cur1=0; 	int Index=0; 	FILE *fp=NULL; 	fp = fopen("Scores.txt","rb");  		if (fp==NULL) 			return -1; 			 		for(Cur=0; Cur<4;Cur++) 		{	 			fscanf(fp,"%s\t%d\t%d\t%d\t%d", 				StudentName[Cur], 				&StudentScores[Cur][0], 				&StudentScores[Cur][1], 				&StudentScores[Cur][2], 				&StudentScores[Cur][3], 				&StudentScores[Cur][4]); 				StudentScores[Cur][5]=Cur; 				StudentScores[Cur][4]=StudentScores[Cur1][4]; 		} 	 		fclose(fp);	 		for(Cur=0; Cur<4-1;Cur++){ 		for(Cur1=Cur+1;Cur1<4;Cur1++) 		{ 			if(StudentScores[Cur][3]>StudentScores[Cur1][3]) 			{	 				temp=StudentScores[Cur][5]; 				StudentScores[Cur][5]=StudentScores[Cur1][5]; 				StudentScores[Cur1][5]=temp; 			} 		} 		} 		for(Cur=0; Cur<4;Cur++) 			StudentScores[Cur][5]=Cur+1; 		printf("姓名\t國文\t英文\t數學\t總分\t平均\t名次\r\n"); 		 		for(Cur=0;Cur<4;Cur++) 		{ 		 			StudentScores[Cur][3]=StudentScores[Cur][0]+StudentScores[Cur][1]+StudentScores[Cur][2]; 			StudentScores[Cur][4]=(StudentScores[Cur][0]+StudentScores[Cur][1]+StudentScores[Cur][2])/3; 			printf("%s\t%2d\t%2d\t%2d\t%d\t%d\t%d \r\n",  				StudentName[Cur], 				StudentScores[Cur][0], 				StudentScores[Cur][1], 				StudentScores[Cur][2], 				StudentScores[Cur][3], 				StudentScores[Cur][4]); 		} 		//排序 		int temp_Scores[6]; 		char temp_Name[20]; 		int i=0,j=0; 		int value=0; 		for(i=0; i<4;i++) 		{ 			for(j=i+1; j<4;j++) 			{ 				if(StudentScores[j][3]>StudentScores[i][3]) 				{ 					memcpy(temp_Scores,StudentScores[j],sizeof(temp_Scores)); 					memcpy(StudentScores[j],StudentScores[i],sizeof(temp_Scores)); 					memcpy(StudentScores[i],temp_Scores,sizeof(temp_Scores)); 					 					memcpy(temp_Name,StudentName[j],sizeof(temp_Name)); 					memcpy(StudentName[j],StudentName[i],sizeof(temp_Name)); 					memcpy(StudentName[i],temp_Name,sizeof(temp_Name)); 				} 			} 		} 		printf("姓名\t國文\t英文\t數學\t總分\t平均\t名次\r\n"); 		 		for(Cur=0;Cur<4;Cur++) 		{ 			printf("%s\t%2d\t%2d\t%2d\t%2d\t%2d\t%2d \r\n",  				StudentName[Cur], 				StudentScores[Cur][0], 				StudentScores[Cur][1], 				StudentScores[Cur][2], 				StudentScores[Cur][3], 				StudentScores[Cur][4], 				Cur+1); 		} 		return 0; } //姓名    國文    英文    數學    總分    平均    名次 //甲        70        60        65      195       65      0 //乙        80        76        90       246      82      0 //丙        75        65        90       230      76      0 //丁        56        80        70       206      68      0  //姓名    國文    英文    數學    總分    平均    名次 //乙        80       76        90       246     82       1 //丙        75       65        90       230     76       2 //丁        56       80        70       206     68       3 //甲        70       60        65       195     65       4

user: user-2
content: //Score.txt: //甲 70 60 65 //乙 80 76 90 //丙 75 65 90 //丁 56 80 70 #include <stdio.h> struct ST {     char name[20];     int gw;     int yw;     int sx;     int zf;     int pj;     int mc; } st[4]; struct ZFS {     int no;     int zf; } zfs[4],zft; int main() {     FILE *fp;     int i,j;      fp=fopen("Scores.txt","r");     if (fp==NULL) return -1;     for (i=0;i<4;i++) {         fscanf(fp,"%19s%d%d%d",             st[i].name,            &st[i].gw,            &st[i].yw,            &st[i].sx);         st[i].zf=st[i].gw+st[i].yw+st[i].sx;         st[i].pj=(int)(st[i].zf/3.0+0.5);         zfs[i].no=i;//记住该总分对应的人         zfs[i].zf=st[i].zf;     }     fclose(fp);     //对总分排序     for (i=0;i<4-1;i++) {         for (j=i+1; j<4;j++) {             if (zfs[j].zf>zfs[i].zf) {                 zft=zfs[i];zfs[i]=zfs[j];zfs[j]=zft;             }         }     }     for (i=0;i<4;i++) st[zfs[i].no].mc=i+1;//填写每个人的名次     printf("姓名\t國文\t英文\t數學\t總分\t平均\t名次\r\n");      for (i=0;i<4;i++) {         printf("%s\t%2d\t%2d\t%2d\t%3d\t%2d\t%2d\n",             st[i].name,             st[i].gw,             st[i].yw,             st[i].sx,             st[i].zf,             st[i].pj,             st[i].mc);     }     return 0; } //姓名    國文    英文    數學    總分    平均    名次 //甲      70      60      65      195     65       4 //乙      80      76      90      246     82       1 //丙      75      65      90      230     77       2 //丁      56      80      70      206     69       3 //

user: user-0
content: 引用 1 楼 user-3 的回复:可以給我Scores.txt 的內容嗎? 我能直接寫給你