📄 prog1.c
字号:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <mem.h>
#include <stdlib.h>
#define MAX 50
typedef struct {
char xh[5];
char xm[7];
int sx,yw,wy,wl,hx,zz,zf;
} STUD;
STUD stud[50] ;
ReadDat(STUD stud[50])
{
FILE *fp ;
char str[30];
int i ;
fp = fopen("in.dat","rb") ;
if (!fp) return 1;
clrscr() ;
for(i = 0 ; i < MAX ; i++) {
fread(&stud[i],sizeof(STUD),1,fp);
stud[i].zf = stud[i].sx+stud[i].yw+stud[i].wy+stud[i].wl+stud[i].hx+stud[i].zz ;
}
fclose(fp) ;
}
void sort(STUD stud[50])
{
int f=0,i=0,temp=0,j=1,k,l=0;
STUD tt;
while (i<MAX) {
while (j<MAX) {
l=0;
for(f=0;f<4;f++)
{ k=stud[j].xh[f]-48;
l+=k;
}
if (l%2!=0) {
if (stud[j].zf>stud[temp].zf)
{temp=j;}
else
{if (stud[j].zf==stud[temp].zf)
if (strcmp(stud[j].xh,stud[temp].xh)>0)
{temp=j;}
}
} /* if (l%2) end */
else stud[j].zf=0;
j++;
}/* while(j<MAX) end */
strcpy(tt.xh,stud[i].xh);strcpy(tt.xm,stud[i].xm);
tt.sx=stud[i].sx;tt.yw=stud[i].yw;
tt.wy=stud[i].wy;tt.wl=stud[i].wl;
tt.hx=stud[i].hx;tt.zz=stud[i].zz;
tt.zf=stud[i].zf;
strcpy(stud[i].xh,stud[temp].xh);strcpy(stud[i].xm,stud[temp].xm);
stud[i].sx=stud[temp].sx;stud[i].yw=stud[temp].yw;
stud[i].wy=stud[temp].wy;stud[i].wl=stud[temp].wl;
stud[i].hx=stud[temp].hx;stud[i].zz=stud[temp].zz;
stud[i].zf=stud[temp].zf;
strcpy(stud[temp].xh,tt.xh);strcpy(stud[temp].xm,tt.xm);
stud[temp].sx=tt.sx;stud[temp].yw=tt.yw;
stud[temp].wy=tt.wy;stud[temp].wl=tt.wl;
stud[temp].hx=tt.hx;stud[temp].zz=tt.zz;
stud[temp].zf=tt.zf;
i++;
temp=i;j=temp+1;
l=l;
} /* while (i<MAX) end */
}
writedat()
{ FILE *fp;
int i;
fp = fopen("out.dat","wb") ;
for(i = 0 ; i < MAX ; i++) {
if (i<9) sprintf(stud[i].xh,"%s%d","000",i+1);
else if (i<99) sprintf(stud[i].xh,"%s%d","00",i+1);
else if (i<999) sprintf(stud[i].xh,"%s%d","0",i+1);
else sprintf(stud[i].xh,"%d",i+1);
sprintf(stud[i].xm,"%s%d","XM-",i+1);
stud[i].sx=random(100);
stud[i].yw=random(100);
stud[i].wy=random(100);
stud[i].wl=random(100);
stud[i].hx=random(100);
stud[i].zz=random(100);
fwrite(&stud[i],sizeof(STUD),1,fp);
/* fprintf(fp,"%4d%6s%3d%3d%3d%3d%3d%3d\n",i,i+50,random(100),random(100),random(100),random(100),random(100),random(100)) ;
printf("%4d%6s%3d%3d%3d%3d%3d%3d\n",i,"aaa",random(100),random(100),random(100),random(100),random(100),random(100)) ;*/
printf("%4s%6s%3d%3d%3d%3d%3d%3d\n",stud[i].xh,stud[i].xm,stud[i].sx,stud[i].yw,stud[i].wy,stud[i].wl,stud[i].hx,stud[i].zz) ;
}
fclose(fp) ;
}
void main()
{
STUD stud[50] ;
char tmp[5] ;
int i ;
FILE *fp ;
if( ReadDat(stud) ) {printf("open file error!\n"); exit(1);}
sort(stud) ;
fp = fopen("out.dat","w") ;
for(i = MAX-1 ; i >=0 ; i--) {
if(stud[i].zf) {
fprintf(fp,"%4s%6s%3d\n",stud[i].xh,stud[i].xm,stud[i].zf) ;
printf("%2d %4s %6s %3d\n",MAX-i,stud[i].xh,stud[i].xm,stud[i].zf) ;}
/* if((i % 20 == 0) && i != 0) getch() ;*/
}
fclose(fp) ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -