#include <stdio.h>
#include <conio.h>
#define MAX 35
typedef struct
{
long stu_no;
char name[10];
int score;
}rectype;
void main()
{
void read_file(rectype R[]);
void print_data(rectype R[]);
void write_file(rectype R[]);
rectype R[MAX];
read_file(R);
print_data(R);
write_file(R);
}
int n=0;
void read_file(rectype R[])
{
FILE *fp1;
int i;
fp1=fopen(".\\data.txt","r");
printf("Please input select numbers(n<=34):");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fscanf(fp1,"%ld,%s,%d",&R[i].stu_no,R[i].name,&R[i].score);
}
fclose(fp1);
}
void print_data(rectype R[])
{
int i;
printf("\nSorted datas is:\n");
printf("学号 姓名 成绩\n");
for(i=1;i<=n;i++)
{
printf("%15ld%10s%5d\n",R[i].stu_no,R[i].name,R[i].score);
}
}
void write_file(rectype R[])
{
int i;
FILE *fp2;
if( (fp2=fopen(".\\new.txt","w")) == NULL)
{
fprintf(stderr,"文件new.txt关闭失败!\n");
exit(1);
}
for(i=1;i<n;i++)
{
fprintf(fp2,"%ld,%s,%d\n",R[i].stu_no,R[i].name,R[i].score);
}
fclose(fp2);
}
#include "stdio.h"
#include "conio.h"
#define MAX 20
typedef struct
{ int key;
char name[9];
int score;
} rectype;
int n;
void INSERTSORT (rectype R[ ])
{ int i,j;
for( i = 2; i <=n; i ++)
if (R[i].key <R[i-1].key )
{ R[0] = R[i];
for(j=i-1; R[0].key< R[j].key; j--)
R[j+1] = R[j];
R[j+1] = R[0];
}
}
main()
{ rectype R[MAX+1];
int i;
FILE *fp1,*fp2;
fp1=fopen(".\\data.txt","r");
fp2=fopen(".\\new.txt","w");
printf("please input n(<=20):");
scanf("%d",&n);
for(i=1;i<=n;i++)
fscanf(fp1,"%d %s %d",&R[i].key, R[i].name,&R[i].score);
printf("The %d datas is :\n",n);
for(i=1;i<=n;i++)
printf("%5d%10s%5d\n",R[i].key, R[i].name,R[i].score);
getch();
INSERTSORT(R);
printf("\nSorted datas is :\n");
for(i=1;i<=n;i++)
{printf("%5d%10s%5d\n",R[i].key, R[i].name,R[i].score);
fprintf(fp2,"%5d%10s%5d\n",R[i].key, R[i].name,R[i].score);
}
fclose(fp1);
fclose(fp2);
getch();
}