作者Linkzibata12 (XXXXX)
看板C_and_CPP
标题[问题] linkedlist 排序问题
时间Sun Oct 28 11:15:20 2018
开发平台(Platform): (Ex: Win10, Linux, ...) Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)Visual Stdio
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question): 无法跑出来
喂入的资料(Input): https://i.imgur.com/7jHDGkW.jpg读入一笔文件 用linkedlist
预期的正确结果(Expected Output): 价钱小到大
错误结果(Wrong Output):正常版可以 价钱版无法
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node
{
int id;
char product[50];
int price;
struct node *next;
}NODE;
NODE *head,*pre,*ptr,*temp;
void main()
{
head=(NODE*)malloc(sizeof(NODE));
head->next=NULL;
temp=(NODE*)malloc(sizeof(NODE));
FILE *fptr1;
fptr1= fopen("A.txt","r");
while (fscanf(fptr1,"%d %s %d",&temp->id,temp->product,&temp->price)==3
{
temp->next=head->next;
head->next=temp;
printf("ID:%d,product:%s,price:%d",temp->id,temp->product,temp->
printf("\n");
}
printf("-----------------------------------------------------------\n");
ptr=(NODE*)malloc(sizeof(NODE));
temp=(NODE*)malloc(sizeof(NODE));
ptr=(NODE*)malloc(sizeof(NODE));
while (fscanf(fptr1,"%d %s %d",&ptr->id,ptr->product,&ptr->price)==3)
{
pre=head;
temp=head->next;
while((temp!= NULL)&&(temp->price > ptr->price))
{
pre=temp;
temp=temp->next;
}
ptr->next=temp;
pre->next=ptr;
printf("ID:%d,product:%s,price:%d",ptr->id,ptr->product,ptr->price);
printf("\n");
}
fclose(fptr1);
system("pause");
}
补充说明(Supplement):不好意思 想请问大家我的程式码哪里有错 正常
版的有印出来 可是依照价钱大小的却无法都是空白的 初学者不太懂不好意思
网址程式码
https://paste.ofcode.org/k9teTMqT8ABe24KHyN32wj
----
Sent from
BePTT
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 117.19.147.104
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1540696523.A.DB0.html
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 11:19:03
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 11:21:12
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 11:24:02
1F:推 achicn3: 在你第一个while回圈 fptr已指向档案结尾了10/28 11:29
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 11:30:00
2F:→ achicn3: 使用rewind(fptr)10/28 11:30
不太懂怎麽下手QQ
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 11:35:35
3F:推 uorol: 首先把你的排版给排好10/28 12:24
4F:推 uorol: 再来你知道你的程式码在干嘛吗10/28 12:29
5F:→ uorol: 你知道你第二个while环圈呼叫fscanf(fptr1...)在干嘛吗10/28 12:29
不好意思 请问是我那一个while的条件要重写吗?
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 12:47:12
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 12:51:22
※ 编辑: Linkzibata12 (117.19.147.104), 10/28/2018 12:55:49
6F:推 uorol: 你没有回答问题阿 如果你根本不知道你在写啥, 要别人怎麽帮 10/28 17:37
7F:→ uorol: 如果你只是要解答, 上面的版友已经说了 10/28 17:38
8F:推 uorol: 因为你问的不是程式问题, 而是逻辑问题 10/28 17:41
9F:→ c910335: 所有输入都被写进同一个node也是个问题 10/29 16:10