- 締切済み
おみくじプログラムですがじっこうできません。
#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; } 自分で考えてみたのですが、どうしたらいいかわかりません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- zwi
- ベストアンサー率56% (730/1282)
追記で前にも書きましたがデバッガを使ってますか? まず自分でエラー原因の分析とポインタの理解のためにデバッガを使ってくださいね。
- zwi
- ベストアンサー率56% (730/1282)
>5つの要素と、2×5=10で決めました。 5つの要素は、大吉","小吉","吉","凶","大凶"だと思いますが、 10の根拠の 2? 5? この2つはどこから生まれました?
- asuncion
- ベストアンサー率33% (2127/6289)
あと一歩です。 >while(i<1&&i>5){ iが1より小さく、かつ、5より大きくなることは、あり得ません。 iが1以上5以下のときに運勢を出力したいのですから、 再入力を求めるのは、「1以上5以下」ではないときですね。 >printf("%s\n",data[5][i-1]); [5]は、どこから来たのでしょうか?また、配列の定義範囲の外です。
- zwi
- ベストアンサー率56% (730/1282)
data[5][i-1] が間違ってますね。 char data[5][10]= の5と10って自分で決めたと思いますが、それぞれどういう意味でその値を決めましたか?
補足
5つの要素と、2×5=10で決めました。
お礼
そうですね、よく考えてみれば、1以上5以下ですね。 きづきませんでした。直してみます。