2015年12月22日火曜日

C言語:2次配列

問題1.
下の表は東海道新幹線の料金表(=乗車券+自由席特急券)である。
キーボードから乗車駅と下車駅(行き先)をコードで入力し、
料金を求めるプログラムを作成。

                                00        01          02        03        04      05         06        07       08      09
       発着\着駅  |   東京    新横浜  小田原  熱海    三島    新富士  静岡    掛川    浜松    豊橋
============================================================================
00      東京         |    -
01      新横浜     |   1320     -
02      小田原     |   3130    1900     -
03      熱海         |   3570    2960    1240     -
04      三島         |   3890    3300    2330    1160     -
05      新富士     |   4930    4300    2790    2420    1320     -
06      静岡         |   5670    4930    3300    2960    1900    1410     -
07      掛川         |   7140    6820    4930    4620    4300    3130    1660     -
08      浜松         |   7560    7140    5350    4930    4620    4300    2230    1320     -
09      豊橋         |   8190    7870    6820    5670    5350    4930    4300    2790    1490     -


問題2.
キーボードから適当な人の姓名を10人分入力し、それをアルファベット順に
並べるプログラムを作成。(大小を区別し、大→小の順)

問題1のプログラム
int main(void) { long int ryokin[10][10]={{},{1320},{3130,1900},{3570,2960,1240},{3890,3300,2330,1160},{4930,4300,2790,2420,1320},{5670,4930,3300,2960,1900,1410},{7140,6820,4930,4620,4300,3130,1660},{7560,7140,5350,4930,4620,4300,2230,1320},{8190,7870,6820,5670,5350,4930,4300,2790,1490}}; int i,j; char s[1],t[1]; printf("乗車駅コードと下車駅コードを入力してください\n"); printf("01:東京 02:新横浜 03:小田原 04:熱海 05:三島 06:新富士 07:静岡 08:掛川 08:浜松 09:豊橋\n"); printf("乗車駅コード:"); scanf("%s",s); strtok(s,"0"); i = atoi(s); printf("下車駅コード:"); scanf("%s", &t); strtok(t,"0"); j = atoi(t); printf(" 料金は"); if(i<=j){printf("%ld円です。",ryokin[j-1][i-1]);} else {printf("%ld円です。",ryokin[i-1][j-1]);} return 0; }

問題2のプログラム
#define MAX 10

int main(void)
{
  int h,i,j;
  char name[MAX][20],s[128];
  for(h =0;h    printf("%d個目の名前: ",h+1);
    scanf("%s", name[h]);
  }
  for(i=0;i    for(j=i+1;j      if (strcmp(name[i], name[j]) > 0) {
          strcpy(s, name[i]);strcpy(name[i], name[j]);strcpy(name[j], s);
      }
    }
  }
  printf("アルファベット順(a to z,大文字 to 小文字)\n");
  for(h=0;h  return 0;
}

0 件のコメント:

コメントを投稿