課程
/后端開發
/C
/Linux C語言結構體
那個第二個數咋回事
2018-01-01
源自:Linux C語言結構體 5-2
正在回答
看樣子是內存溢出了,請貼代碼
精慕門2223628 提問者
代碼這么寫
scanf("%d,%d",&p1->price,&p1->atk);
錄入就得
100,100
而代碼這么寫
scanf("%d %d",&p1->price,&p1->atk);
100 100
主要看scanf用什么分隔符,你明白了沒有
金大佛爺 回復 精慕門2223628 提問者
那么改成%d%d,就可以直接輸入 100 100了吧
哦,我想復雜了,scanf輸入應該是100逗號100,不是100空格100,因為寫的是%d,%d,因此是用逗號分隔,此時用其他分隔符會導致輸入錯誤
#include?<stdio.h> #include?<malloc.h> struct?weapon { int?price; int?atk; struct?weapon?*?next; }; struct?weapon?*?creat() { struct?weapon?*?head; struct?weapon?*?p1,*p2; int?n=0; p1=p2=(struct?weapon?*)malloc(sizeof(struct?weapon)); scanf("%d,%d",&p1->price,&p1->atk); head=NULL; while(p1->price!=0) { n++; if(n==1) { head=p1; } else { p2->next=p1; } p2=p1; p1=(struct?weapon*)malloc(sizeof(struct?weapon)); scanf("%d,%d",&p1->price,&p1->atk); } p2->next=NULL; ????return?(head); } int?main(void) { struct?weapon?*p; p=creat(); printf("%d,%d",p->price,p->atk); return?0; }
舉報
C語言的深入,幫助小伙伴們進一步的理解C語言,趕緊看過來
2 回答怎么訪問第二個節點啊
1 回答atk 數值輸出的 問題
1 回答p+1取的是weapon_2[1]_name,那么weapon_2[0].atk和weapon_2[0].price怎么?。?/p>
1 回答我這樣第一個節點不單獨處理也行吧?請大神幫看一下,謝謝~
1 回答就輸出第一個節點的信息,如果把輸入的都輸出怎么辦?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-01-02
看樣子是內存溢出了,請貼代碼
2018-01-03
代碼這么寫
scanf("%d,%d",&p1->price,&p1->atk);
錄入就得
100,100
而代碼這么寫
scanf("%d %d",&p1->price,&p1->atk);
錄入就得
100 100
主要看scanf用什么分隔符,你明白了沒有
2018-01-03
那么改成%d%d,就可以直接輸入 100 100了吧
2018-01-03
哦,我想復雜了,scanf輸入應該是100逗號100,不是100空格100,因為寫的是%d,%d,因此是用逗號分隔,此時用其他分隔符會導致輸入錯誤
2018-01-02