亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我的結果不是1,1而是3,3

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

struct weapon

{

int price;

int damage;

struct weapon *next;

};


struct weapon *create()

{

struct weapon *p1,*p2,*head;

int i=0;

p1 = p2 = (struct weapon*)malloc(sizeof(struct weapon));

head = NULL;

scanf_s("%d %d",&p1->price,&p1->damage);

while(0!=p1->price)

{

i++;

if( i = 1)

{

head = p1;

}

else

{

p2->next = p1;

}

p2 = p1;

p1 = (struct weapon*)malloc(sizeof(struct weapon));

scanf_s("%d %d",&p1->price,&p1->damage);

}

p2->next = NULL;

return (head);

}


int main(void)

{

struct weapon *p;


p = create();

printf("%d,%d",p->price,p->damage);


system("pause");

return 0;

}


正在回答

2 回答

建議把i==1寫成1==i,這種錯誤就可以避免了,至少系統會提醒你錯了,不能給常量賦值,,,,,,,望采納

0 回復 有任何疑惑可以回復我~

我的問題都有點傻QAQ,if( i = 1)這種寫法導致i始終是1然后head=p1一直執行,所以沒有產生鏈表,只是把所有輸入的值都賦值給head了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我的結果不是1,1而是3,3

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號