作者 主題: Linked List元素的後面沒東西?  (閱讀 3790 次)

0 會員 與 1 訪客 正在閱讀本文。

史瑞克

  • 憂鬱的高中生
  • ***
  • 文章數: 130
  • 性別: 男
    • 檢視個人資料
    • 史瑞克
Linked List元素的後面沒東西?
« 於: 2010-03-08 21:05 »
題目 :
寫出一個Linked List專門存放字串和數字一組
然後印出來
先不管output的程式碼(因為老師不給...)


typedef char Str[40];

struct Account {
  Str name;
  int id;
  Account *next;
};

typedef Account AccountPtr;

main() {

  AccountPtr account = NULL;

  AccountPtr head = NULL; // linked list 開頭
  Str RegistName;
  int RegistID;

  scanf( "%s", RegistName ); // 第一組字串

  while ( strcmp( RegistName, "-1" ) != 0 ) { // 當輸入-1的時候, input 迴圈停止

     scanf( "%d", &RegistID ); // 第一組數字

     strcpy( head -> name, RegistName );
     head -> id = RegistID;

     scanf( "%s", RegistName ); // 下一組字串

  } // while()
} // main()

話說我的程式碼好像少了什麼東西
變成第一組的資料被下一組覆蓋
然後印不出來...
« 上次編輯: 2010-03-08 21:40 由 史瑞克 »
博學之,審問之,慎思之,明辨之,篤行之。 - 禮記中庸第三十一
我的噗浪:http://www.plurk.com/shrekwang/invite
我的Blog:http://shrekat.blogspot.com

resinell

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
回覆: Linked List元素的後面沒東西?
« 回覆 #1 於: 2010-03-08 21:23 »
這個...是用哪個編譯器
感覺編譯不會過@@?

Str name;

typedef Account AccountPtr;

史瑞克

  • 憂鬱的高中生
  • ***
  • 文章數: 130
  • 性別: 男
    • 檢視個人資料
    • 史瑞克
回覆: Linked List元素的後面沒東西?
« 回覆 #2 於: 2010-03-08 21:39 »
這個...是用哪個編譯器
感覺編譯不會過@@?

Str name;

typedef Account AccountPtr;
可以過
Str和typedef在main function外面就宣告了
博學之,審問之,慎思之,明辨之,篤行之。 - 禮記中庸第三十一
我的噗浪:http://www.plurk.com/shrekwang/invite
我的Blog:http://shrekat.blogspot.com

elleryq

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 908
  • 性別: 男
    • 檢視個人資料
    • Thinking more...
回覆: Linked List元素的後面沒東西?
« 回覆 #3 於: 2010-03-09 09:32 »
沒有當掉是奇蹟...

1. head 指到哪裡呢??
2. typedef Account AccountPtr; 這一行應該是 typedef Account* AccountPtr; 吧
3. 一般是會這樣寫,才會串起來。
head = (AccountPtr)malloc( sizeof( Account ) );
account = (AccountPtr)malloc( sizeof(Account ) );
head->next = account;
account->next = NULL;

要列出來,就是用 while 迴圈去判斷
AccountPtr iter = head;
while( iter->next )
{
  printf( "%s\n", iter->name );
  iter = iter->next;
}

Plan your work, then work your plan.
我的首頁:http://blog.elleryq.idv.tw
351899by http://counter.li.org

resinell

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
回覆: Linked List元素的後面沒東西?
« 回覆 #4 於: 2010-03-09 09:43 »
這個...是用哪個編譯器
感覺編譯不會過@@?

Str name;

typedef Account AccountPtr;
可以過
Str和typedef在main function外面就宣告了

不能這樣重新編輯然後說沒問題吧...
原本貼的程式碼沒有typedef char Str[40];

史瑞克

  • 憂鬱的高中生
  • ***
  • 文章數: 130
  • 性別: 男
    • 檢視個人資料
    • 史瑞克
回覆: Linked List元素的後面沒東西?
« 回覆 #5 於: 2010-03-10 02:59 »
這個...是用哪個編譯器
感覺編譯不會過@@?

Str name;

typedef Account AccountPtr;
可以過
Str和typedef在main function外面就宣告了

不能這樣重新編輯然後說沒問題吧...
原本貼的程式碼沒有typedef char Str[40];

Sorry...

感謝各位解答
博學之,審問之,慎思之,明辨之,篤行之。 - 禮記中庸第三十一
我的噗浪:http://www.plurk.com/shrekwang/invite
我的Blog:http://shrekat.blogspot.com