dポイントプレゼントキャンペーン実施中!

#include<stdio.h>

int main()
{
int i;
char data[5][10]={"大吉","小吉","吉","凶","大凶"};


printf("1~5の間の整数を入力:");
scanf("%d",&i);
while(i<1&&i>5){
printf("入力値が不適切です。\n");
printf("1~5でお願いします。\n");
scanf("%d",&i);
}

printf("%s\n",data[5][i-1]);
return 0;

}

自分で考えてみたのですが、どうしたらいいかわかりません。

A 回答 (4件)

あと一歩です。



>while(i<1&&i>5){

iが1より小さく、かつ、5より大きくなることは、あり得ません。
iが1以上5以下のときに運勢を出力したいのですから、
再入力を求めるのは、「1以上5以下」ではないときですね。

>printf("%s\n",data[5][i-1]);

[5]は、どこから来たのでしょうか?また、配列の定義範囲の外です。
    • good
    • 0
この回答へのお礼

そうですね、よく考えてみれば、1以上5以下ですね。
きづきませんでした。直してみます。

お礼日時:2009/05/17 13:03

追記で前にも書きましたがデバッガを使ってますか?


まず自分でエラー原因の分析とポインタの理解のためにデバッガを使ってくださいね。
    • good
    • 0

>5つの要素と、2×5=10で決めました。


5つの要素は、大吉","小吉","吉","凶","大凶"だと思いますが、
10の根拠の
2?
5?
この2つはどこから生まれました?
    • good
    • 0

data[5][i-1]


が間違ってますね。
char data[5][10]=
の5と10って自分で決めたと思いますが、それぞれどういう意味でその値を決めましたか?

この回答への補足

5つの要素と、2×5=10で決めました。

補足日時:2009/05/17 12:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!