• 締切済み

おみくじプログラムですがじっこうできません。

#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; } 自分で考えてみたのですが、どうしたらいいかわかりません。

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

追記で前にも書きましたがデバッガを使ってますか? まず自分でエラー原因の分析とポインタの理解のためにデバッガを使ってくださいね。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.3

>5つの要素と、2×5=10で決めました。 5つの要素は、大吉","小吉","吉","凶","大凶"だと思いますが、 10の根拠の 2? 5? この2つはどこから生まれました?

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

あと一歩です。 >while(i<1&&i>5){ iが1より小さく、かつ、5より大きくなることは、あり得ません。 iが1以上5以下のときに運勢を出力したいのですから、 再入力を求めるのは、「1以上5以下」ではないときですね。 >printf("%s\n",data[5][i-1]); [5]は、どこから来たのでしょうか?また、配列の定義範囲の外です。

tomo_ko_n
質問者

お礼

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

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

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

tomo_ko_n
質問者

補足

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

関連するQ&A