#include
#include"string.h"
#include
#define N 100000
struct st{
char a[15];
char b[20];
int x,y,z;
};
int fun1(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
int fun2(char *x,char *y)
{
char *t;
strcpy(t,x);
strcpy(x,y);
strcpy(y,t);
}
int main() {
/*_________________________________________________*/
FILE *fp,*ok;
char b[N + 1];
//判断文件是否打开
if ( (fp = fopen("D:\\操作文件1号.txt", "r")) == NULL )/*这里D:\\操作文件1号.txt 是路径;读取D盘下,名为(操作文件1号)的文本文件*/
{
puts("操作文件1号读取失败!");
exit(0);
}
else
{
puts("操作文件1号读取成功");
puts("开始计算");
}
/*__________________________________________*/
struct st s[111];
char t[20],str[N];
int aver[111]={0};
for(int i=0;i<5;i++)
{
fscanf(fp,"%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i].y,&s[i].z);
printf("%s %s %d %d %d\n",s[i].a,s[i].b,s[i].x,s[i].y,s[i].z);
}
printf("按平均成绩排序\n");
for(int i=0;i<5;i++)
{
aver[i]=(s[i].x+s[i].y+s[i].z)*1.0/3;
}
printf("\n");
for(int i=0;i<5;i++)
{
for(int j=0;j<4-i;j++)
{
if(aver[j] { fun2(s[j].a,s[j+1].a); fun2(s[j].b,s[j+1].b); fun1(&aver[j],&aver[j+1]); fun1(&s[j].x,&s[j+1].x); fun1(&s[j].y,&s[j+1].y); fun1(&s[j].z,&s[j+1].z); } } } if ( (ok = fopen("D:\\操作文件2号.txt", "w")) == NULL )/*D:\\操作文件2号.txt 是路径;写入D盘下,名为(操作文件2号)的文本文件*/ { puts("操作文件2号写入失败!"); exit(0); } else { puts("操作文件2号写入成功"); } for(int i=0;i<5;i++) { fprintf(ok,"第%d名;%s %s %d %d %d\n",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z); printf("第%d名;%s %s %d %d %d\n",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z); } /*___________________________________________*/ //结束关闭文件 fclose(ok); fclose(fp); return 0; } 我就写了5个人的,你在稍加修改就行了;
#include
int main()
{ FILE *fp1,*fp2;
typedef struct stud
{ char id[10],name[11];
int a[3],rank;
float av;
} stu;
stu stud[10]= {},*t,*p[10];
int i,j,k,n=10;
fp1=fopen("student1.txt","r");
fp2=fopen("student2.txt","w");
for(i=0; i
fscanf(fp1,"%s%s%d%d%d",(*p[i]).id,(*p[i]).name,&(*p[i]).a[0],&(*p[i]).a[1],&(*p[i]).a[2]);
(*p[i]).av=((*p[i]).a[0]+(*p[i]).a[1]+(*p[i]).a[2])/3.0;
}
for(i=0; i
{ t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
(*p[0]).rank=1;
for(i=1; i
for(i=0; i
fprintf(fp2,"%s\t%s\t%.1f\t%d\n",(*p[i]).id,(*p[i]).name,(*p[i]).av,(*p[i]).rank);
}
fclose(fp1);
fclose(fp2);
return 0;
}