只编了一半,感觉应该有挺多问题。。。还有我想知道在这道题中有必要用指针么?
#include
#include
#include
#define MAX 50
struct record{char name;
char writer;
char publish;
int ISBN;
int time;
double price;
char kind;} books[MAX],k;
int rank1(struct record books[MAX]);
FILE *fp1,*fp2;
int main()
{int i;
if ((fp1=fopen("data.txt","r"))==NULL)
printf("Cant open!\n");
return -1;
if ((fp2=fopen("result.txt","w"))==NULL)
printf("Cant write!\n");
return -1;
while(!feof(fp1))
for(i=0;i
fscanf(fp1,"%s,%s,%s,%d,%d,%lf,%s",&books[i].name,&books[i].writer,&books[i].publish,&books[i].ISBN,&books[i].time,&books[i].price,&books[i].kind);
rank1(books);
for(i=0;i<50;i++)
fprintf(fp2,"%s",books[i].name);
fclose(fp1);
fclose(fp2);
return 0;
}
int rank1(struct record books[MAX])
{int i,j;
for (i=0;i
for(j=i;j
if (strcmp(books[i].publish,books[j].publish)>0)
{
k=books[i];
books[i]=books[j];
books[j]=k;
}
}
运行后什么也没跳出来,返回-1,没有新建文件。data内是
1 1 a 1 1 1 1
2 2 c 1 1 1 1
3 3 b 1 1 1 1这样的