Re: [考題] 100年鐵路特考程式設計

看板Examination作者 (雞婆大師)時間11年前 (2013/06/08 01:34), 編輯推噓4(405)
留言9則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《winterQ (DOMO)》之銘言: : 想問的問題是 : 四、設計一票價查詢程式,輸入起站與迄站名(字串),輸出其票價 : 程式中設有: : 一個字串陣列stat,內儲存5站名,依次為: : 台北、新竹、台中、台南、高雄 : 一個5*5之二為陣列tfee,其右上部內存各站之間之票價,如下: : 台北 新竹 台中 台南 高雄 : 台北 0 405 800 1420 1560 : 新竹 0 520 1140 1280 : 台中 0 750 885 : 台南 0 260 : 高雄 0 : 想當然不能跑,因為錯誤很大,但想了解一下若同樣是用C語言 : 該如何修改此程式,讓其能正常跑呢? #include <stdio.h> #include <string.h> int main(void){ static char stat[5][5]={"台北","新竹","台中","台南","高雄"}; static int tfee[5][5]={{0,405,800,1480,1560}, {0,0,520,1140,1280}, {0,0,0,750,885}, {0,0,0,0,260}, {0,0,0,0,0}}; char start[5],end[5]; int sp,ep; printf("起站:"); scanf("%s",start); printf("迄站:"); scanf("%s",end); int i; for(i=0;i<5;i++) { if(!strcmp(stat[i],start)) sp=i; } for(i=0;i<5;i++) { if(!strcmp(stat[i],end)) ep=i; } if(sp<ep) printf("從%s到%s票價=%d\n",start,end,tfee[sp][ep]); else printf("從%s到%s票價=%d\n",start,end,tfee[ep][sp]); getchar(); getchar(); return 0; } ------------------------------------------------------------------------------ 小的是C語言菜鳥 沒有很懂 手癢修了一下 很陽春 但照格式輸入可以跑 寫程式講的是邏輯 先有邏輯再來寫才不會毫無章法 給你參考 但若是死記 題目一改你就毀了 就像推文中大大說的一樣 把基本的語法先弄懂吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.189.142 ※ 編輯: pongno2 來自: 111.254.189.142 (06/08 01:47)

06/08 07:10, , 1F
字串陣列stat應該宣告成 一維 stat[5]就可以了。理由一,
06/08 07:10, 1F

06/08 07:10, , 2F
浪費空間,二,也不合題意。
06/08 07:10, 2F

06/08 08:01, , 3F
抱歉我更正一下,可以改為char *stat[5] 比較不浪費空間
06/08 08:01, 3F

06/08 08:02, , 4F
原po的做法是沒有不合題意~^^" sorry更正嚕
06/08 08:02, 4F

06/08 09:04, , 5F
沒關係,感謝你的分享;char *p[n]的寫法我還不是很熟練XD
06/08 09:04, 5F

06/08 10:02, , 6F
感謝p大的解答,看來還有很多地方該學
06/08 10:02, 6F

06/08 10:33, , 7F
考試是要拿高分不是要誰寫的較省空間,拿高分才是重點
06/08 10:33, 7F

06/08 13:17, , 8F
用c++的string會更省事 但不知閱卷老師對指標會否有先入為主
06/08 13:17, 8F

06/08 13:17, , 9F
的態度
06/08 13:17, 9F
文章代碼(AID): #1HiXciL- (Examination)
文章代碼(AID): #1HiXciL- (Examination)