プログラムの課題で分からない問題があるので、ヒントを教えていただきたい
プログラムの課題で分からない問題があるので、ヒントを教えていただきたいです。
ちなみにfor文、if文、配列などを応用して(勿論ぜんぶ使わなくても良いです)プログラムをつくるものなのですが、配列をうまく理解してないので、どういう風に配列に代入して出力するかアドバイスお願いします。
・1~5の数字をキーボードから入力し、それに対応した英語を表示。ただし単語は配列に初期化しておくこと(※swich-caseを使わずに)
・キーボードから英語の大文字を1文字入力して、その文字がアルファベットの何文字目にあたるかを表示する
・キーボードからアルファベットの小文字を1文字入力→大文字に変換して表示する
多くてすみません。
投稿日時 - 2010-06-17 18:50:26
(1)
#include <stdio.h>
int main()
{
int idx;
char *eigo[5] = {"one", "two", "three", "four", "five"};
idx = getchar();
if ((idx >= '1') && (idx <= '5')){
puts(eigo[idx - '1']);
} else {
puts("input number NG!");
}
}
(2)
#include <stdio.h>
int main()
{
int idx;
idx = getchar();
if ((idx >= 'A') && (idx <= 'Z')){
printf("「%c」は %d 番目の文字\n", idx, idx - 'A' + 1);
} else {
puts("input charactor NG!");
}
}
(3)
#include <stdio.h>
int main()
{
int idx;
idx = getchar();
if ((idx >= 'a') && (idx <= 'z')){
printf("「%c」の大文字は「%c」\n", idx, idx - 'a' + 'A');
} else {
puts("input charactor NG!");
}
}
投稿日時 - 2010-06-18 10:21:13
ご回答ありがとうございます。
少し分からない部分がありましたが、よく見ると知っている動作をする
ものだったりするので、仕組みがよく理解できました。
投稿日時 - 2010-06-21 18:28:56
このQ&Aは役に立ちましたか?
9人が「このQ&Aが役に立った」と投票しています
回答(2)
>・1~5の数字をキーボードから入力し、それに対応した英語を表示。ただし単語は配列に初期化しておくこと(※swich-caseを使わずに)
これについて、ポインタや細かいことを気にしなければ下記でもいけます。
参考に他の「1文字入力→大文字」もがんばってみてください。
#include <stdio.h>
int main()
{
int input_data=0;
char input_key[1];
int count;
//・1個目の配列の初期化
char a[6] = {'a','b','c','d','e'};
char b[6] = {'f','g','h','i','j'};
char c[6] = {'k','l','m','n','o'};
char d[6] = {'p','q','r','s','t'};
char e[6] = {'u','v','w','x','y'};
//・1個目の1~5の入力
printf("input (1-5):",c);
scanf("%d",&input_data);
//・1個目の英語の表示
if ( input_data == 1 ) printf("%s\n",a);
else if ( input_data == 2 ) printf("%s\n",b);
else if ( input_data == 3 ) printf("%s\n",c);
else if ( input_data == 4 ) printf("%s\n",d);
else if ( input_data == 5 ) printf("%s\n",e);
else { printf("入力ミス\n"); return 1; }
return 0;
}
投稿日時 - 2010-06-17 19:43:02
ご回答ありがとうございます。
このプログラムを応用すると複数ケタの数字を入力したときに
対応した英語を表示するプログラムも作れそうですね。
投稿日時 - 2010-06-21 18:18:25