[問題] 關於結構傳遞問題

看板C_and_CPP (C/C++)作者 (隨g致富)時間11年前 (2014/08/11 16:16), 11年前編輯推噓0(0024)
留言24則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 問題(Question): 餵入的資料(Input):自訂輸入資料 預期的正確結果(Expected Output):輸入資料後應可print輸入的資料 錯誤結果(Wrong Output):(null) 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdlib.h> #include <stdio.h> typedef struct FRIEND { char name[10]; char fone[15]; char birth[15]; }FR; FR enternew(void); void show(FR[],int); int main(void) { char ch; int size=0,i; FR f[20]; while(1) { printf("請問您要 1)輸出好友名單 2)新增好友資料 3)離開"); scanf("%s",&ch); switch(ch) { case'1':if(size!=0) { show(f,size); } else { printf("目前尚無會員資料 "); }; break; case'2':if(size>=20) { printf("名單已滿 "); } else { enternew(); size++; for(i=0;i<size;i++) { printf("%s",f[i]); } } break; case'3':break; } fflush(stdin); } system("pause"); return 0; } FR enternew(void) { FR temp; printf("請輸入姓名"); scanf("%s",temp.name); //getchar(); printf("請輸入電話"); scanf("%s",temp.fone); //getchar(); printf("請輸入生日"); scanf("%s",temp.birth); //getchar(); return temp; } void show(FR f[],int size) { int i; for(i=0;i<size;i++) { printf("=============================\n"); printf("%10s 的生日: %-15s\n",f[i].name,f[i].birth); printf("%10s 的電話: %-15s\n",f[i].name,f[i].fone); } } 補充說明(Supplement): 學校沒有教C/C++ 我們是教Labview...... 自己看書學的 學得有點混亂..... 因為書中從struct講的有點過於簡單..... 煩請要鞭 鞭小力一點QAQ 我也才剛學沒幾個星期 我在想或許是結構傳遞錯誤 尤其是scanf("%s",temp.xxxx); 和printf("%10s 的生日: %-15s\n",f[i].xxxx,f[i].xxxx);這邊 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.249.217 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1407744960.A.C2D.html ※ 編輯: sorryandbye (140.113.249.217), 08/11/2014 16:16:48

08/11 16:25, , 1F
我可能連陣列都沒學好= =
08/11 16:25, 1F

08/11 16:26, , 2F
指標也是......〒△〒
08/11 16:26, 2F

08/11 17:26, , 3F
剛剛發現忘了把enternew中的資料傳出
08/11 17:26, 3F

08/11 17:27, , 4F
所以加了一個f[size]就可以把資料分項存取出來
08/11 17:27, 4F

08/11 17:29, , 5F
另外請教一下這樣算3*20維陣列嗎?(假設f[20])
08/11 17:29, 5F

08/11 17:30, , 6F
每一個分項又有3組資料(分別為name、fone、birth)
08/11 17:30, 6F

08/11 17:38, , 7F
可以找書,我從來沒學過,我看一本書:第一次學C就上手
08/11 17:38, 7F

08/11 17:38, , 8F
我剛好就是看這本= =
08/11 17:38, 8F

08/11 17:39, , 9F
內容還算淺顯,帶struct的那個part稍嫌不足:P
08/11 17:39, 9F

08/11 17:39, , 10F
08/11 17:39, 10F

08/11 19:39, , 11F
沒有人去接enternew這個function吧...
08/11 19:39, 11F

08/11 19:40, , 12F
話說我這邊看起來排版挺亂的,找地方貼code會比好看~
08/11 19:40, 12F

08/11 19:42, , 13F
你的f[] array沒去接enternew function丟出來的東西
08/11 19:42, 13F

08/11 21:37, , 14F
↑對 我後來有發現囉:") 好像有推文吧(?)
08/11 21:37, 14F

08/11 21:38, , 15F
就是f[]=enternew()醬子這方面沒問題了v( ̄︶ ̄)y
08/11 21:38, 15F

08/11 21:38, , 16F
倒是 請教一下這樣算3*20維陣列嗎?(假設f[20])
08/11 21:38, 16F

08/11 22:18, , 17F
3這個數字是哪來的?是指struct裡面的林呈遠數嗎?
08/11 22:18, 17F

08/11 22:20, , 18F
成員數嗎?
08/11 22:20, 18F

08/11 22:21, , 19F
BTW,一般應該不是這樣算的吧XD 這樣算一維陣列..
08/11 22:21, 19F

08/11 23:08, , 20F
謝過koka813囉:")
08/11 23:08, 20F

08/12 09:47, , 21F
f[3][20]
08/12 09:47, 21F

08/12 11:30, , 22F
可以上網早答案
08/12 11:30, 22F

08/13 10:33, , 23F
f[3][20]不就是一種2維陣列嗎?(對struct裡面的元素)
08/13 10:33, 23F

08/13 10:34, , 24F
對FR而言是一維陣列,這樣說算正確嗎?
08/13 10:34, 24F
文章代碼(AID): #1Jw7l0mj (C_and_CPP)
文章代碼(AID): #1Jw7l0mj (C_and_CPP)