C语言在连续创建两个链表的时候,会跳过创建其中的一个链表 10

#include<stdio.h>#include<stdlib.h>typedefstructnode{intcoef;intHighPower;structnode*... #include<stdio.h>
#include<stdlib.h>

typedef struct node{
int coef;
int HighPower;
struct node *pNext;
}NODE,*PNODE;
PNODE crateList();
void traverseLinkList(PNODE);
PNODE caculate(PNODE,PNODE);
int main(){
PNODE pList,pList2;
pList=crateList();
pList2=crateList();
caculate(pList,pList2);
traverseLinkList(pList);
return(0);
}
PNODE crateList(){
int a,b,c;
PNODE pCurrent,pPre,pHead=NULL;
while(1){
if(scanf("%d %d",&b,&c)!=2)
break;
pCurrent=(PNODE)malloc(sizeof(NODE));
if(pHead==NULL)
pHead=pCurrent;
else
pPre->pNext=pCurrent;
pCurrent->pNext=NULL;
pCurrent->coef=b;
pCurrent->HighPower=c;
pPre=pCurrent;
}
puts("input end,now next step");
return(pHead);
}
void traverseLinkList(PNODE pList){
PNODE pCurrent;
pCurrent=pList;
if(pCurrent==NULL)
puts("No Data Record");
else
while(pCurrent!=NULL){
printf("the Coef is %d,and HighPower is %d\n",pCurrent->coef,pCurrent->HighPower);
pCurrent=pCurrent->pNext;
}
}
PNODE caculate(PNODE pList,PNODE pList2){
PNODE pNew,pCurrent,pPre,pHead;
/*在这个main程序里面,我要创建两个链表,我用cratelist()函数创建了list1,但是程序会跳过创建list2请问这是什么问题啊?求告知,不胜感激 */

if(!pList||!pList2)
return(0);
while(pList->pNext!=NULL){
while(pList2->pNext!=NULL){
pNew=(PNODE)malloc(sizeof(NODE));
if(pHead=NULL)
pHead=pNew;
else{
pNew->coef=(pList->coef)*(pList2->coef);
pNew->HighPower=(pList->HighPower)+(pList2->HighPower);
pList2=pList2->pNext;
}
}
pList=pList->pNext;
}
return(pNew);
}
/*在这个main程序里面,我要创建两个链表,我用cratelist()函数创建了list1,但是程序会跳过创建list2请问这是什么问题啊?求告知,不胜感激 */

//好吧我在两个创建链表的函数之间加了个getchar()就莫名其妙的可以了,有木有人告诉我这是什么原理。。。
展开
 我来答
匿名用户
2016-09-14
展开全部

问题在创建链表函数的输入上

if(scanf("%d %d",&b,&c)!=2)

就是这条语句。


请注意,尽量不要在输入中加上其他非数据格式的字符,如上面代码里面输入语句格式字符串中的空格。

如果有这些非数据格式的字符,则要求必须照原样准确输入,而这是经常出现错误的地方。

if(scanf("%d%d",&b,&c)!=2)

就这样就好,输入时两个数据之间可以是任意多个空白字符,如空格、制表符、回车等等.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式