[問題] 輸出的數值怪怪...

看板C_and_CPP作者 (胡小揚)時間13年前 (2010/10/17 08:24), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 這個結構 運作之後 輸出年齡會跑出奇怪的值 希望得到的正確結果: 得到我輸入的正確年齡 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) #include <stdio.h> #include <stdlib.h> #include <string.h> struct label { char name[20]; int age; }abc[3]; void showlabel(struct label *ptr) { for(int i=0;i<3;i++){ printf("員工名牌----------\n"); printf("姓名: %s\n", abc[i].name); printf("年齡: %d\n", abc[i].age); printf("------------------\n"); } } int main() { struct label worker; struct label *ptr; ptr = &worker; for (int i=0;i<3;i++){ printf("姓名:"); scanf("%s",&abc[i].name); printf("年齡:"); scanf("%s",&abc[i].age); } showlabel(ptr); system("PAUSE"); return 0; } 補充說明: 麻煩大家了! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.230.54

10/17 08:30, , 1F
scanf("%d",&abc[i].age);
10/17 08:30, 1F

10/17 10:26, , 2F
name應該不用加&吧
10/17 10:26, 2F

10/17 10:39, , 3F
指標地獄
10/17 10:39, 3F

10/17 13:49, , 4F
我發現 void showlabel(struct label *ptr) 的引數....
10/17 13:49, 4F

10/17 14:13, , 5F
有什麼問題
10/17 14:13, 5F

10/17 14:30, , 6F
這個應該是學校做業吧,寫成這樣應該會被扣分
10/17 14:30, 6F

10/17 14:38, , 7F
所以該怎麼寫?
10/17 14:38, 7F

10/17 14:48, , 8F
你看一下程式流程就知道了,原po對指標誤解很大
10/17 14:48, 8F

10/17 14:50, , 9F
void showlabel(struct label *ptr)應該是題目的格式
10/17 14:50, 9F

10/17 14:58, , 10F
你是說worker沒東西嗎
10/17 14:58, 10F

10/17 14:59, , 11F
我覺得題目是在showlabel印出員工資料
10/17 14:59, 11F

10/17 15:02, , 12F
這個東西應該是老師上到陣列跟指標的地方才出的題目
10/17 15:02, 12F

10/17 15:02, , 13F
這個版變成作業解答版了吧
10/17 15:02, 13F
文章代碼(AID): #1Cka8se6 (C_and_CPP)