100年鐵路特考程式設計 - 特考

Table of Contents

※ 引述《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語言菜鳥 沒有很懂

手癢修了一下 很陽春 但照格式輸入可以跑

寫程式講的是邏輯 先有邏輯再來寫才不會毫無章法

給你參考

但若是死記 題目一改你就毀了

就像推文中大大說的一樣

把基本的語法先弄懂吧

--

All Comments

Tristan Cohan avatarTristan Cohan2013-06-10
字串陣列stat應該宣告成 一維 stat[5]就可以了。理由一,
浪費空間,二,也不合題意。
Donna avatarDonna2013-06-13
抱歉我更正一下,可以改為char *stat[5] 比較不浪費空間
Steve avatarSteve2013-06-18
原po的做法是沒有不合題意~^^" sorry更正嚕
Frederic avatarFrederic2013-06-20
沒關係,感謝你的分享;char *p[n]的寫法我還不是很熟練XD
Zanna avatarZanna2013-06-24
感謝p大的解答,看來還有很多地方該學
Audriana avatarAudriana2013-06-26
考試是要拿高分不是要誰寫的較省空間,拿高分才是重點
Margaret avatarMargaret2013-07-01
用c++的string會更省事 但不知閱卷老師對指標會否有先入為主
的態度