book* Initialisation_book(){
book *tail=NULL,*Head=NULL,*sd;
FILE*fp=NULL;
fp=fopen("library.dat","r");
if(fp==NULL){
printf("打开文件失败!");
exit(1);
}
while(!feof(fp)){
sd=(book*)malloc(sizeof(book));
sd->next=NULL;
fread(sd,sizeof(book),1,fp);
// printf("%s\n",sd->name);
if(Head){
tail->next=sd;
tail=tail->next;
}else{
Head=sd;
tail=sd;
}
}
tail=NULL;
return Head;
}
这样改,供参考:
book* Initialisation_book(){
book *tail=NULL,*Head=NULL,*sd;
FILE*fp=NULL;
fp=fopen("library.dat","r");
if(fp==NULL){
printf("打开文件失败!");
exit(1);
}
while(1){ //while(!feof(fp)) 修改
sd=(book*)malloc(sizeof(book));
sd->next=NULL;
if (fread(sd,sizeof(book),1,fp) != 1){ // 修改
free(sd); // 修改
break; // 修改
}
//printf("%s\n",sd->name);
if(Head){
tail->next=sd;
tail=tail->next;
}else{
Head=sd;
tail=sd;
}
}
fclose(fp); // 修改
tail=NULL;
return Head;
}
fread(sd,sizeof(book),1,fp); 这里要少读一个字节,最后一个留着存放'\0',让你的程序知道字符串结束了。
成绩 | 10 | 开启时间 | 2020年03月28日 星期六 08:05 |
折扣 | 0.8 | 折扣时间 | 2020年04月20日 星期一 23:05 |
允许迟交 | 是 | 关闭时间 | 2020年04月30日 星期四 23:05 |
编写程序,输入正数n, 在屏幕上显示对应的杨辉三角形(注意数据之间的空格)。例如:n=5 图形如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
测试输入 | 期待的输出 | 时间限制 | 内存限制 | 额外进程 | |
---|---|---|---|---|---|
测试用例 1 |
|
| 1秒 | 64M | 0 |
测试用例 2 |
|
| 1秒 | 64M | 0 |