• 締切済み

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

#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% (2126/6288)
回答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

  • C言語【おみくじプログラム】

    お正月前にならったばかりのC言語を用いて おみくじプログラムを作りました。 最近それをまた改良して 強制的にくじを引かせるものにしようと考えました。 しかしどうしてもwhileのループから抜け出せないので ここで質問させていただきます。 どうか間違っている部分を教えてください。 #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 7 int main(){ int k,y,n; printf("ようこそ。\n"); printf("ここではおみくじを販売して折ります。\n"); printf("よろしければ運試しをしていって下さい。\n\n"); printf("おみくじを引きますか?\n"); printf("※引く場合はy,引かない場合はnを入力してください\n"); scanf("%s,&k"); if(k!=y){ while(k=y){ printf("そんなこと言わずに引いてみてくださいよ。\n\n"); printf("おみくじを引きますか?\n"); printf("※引く場合はy,引かない場合はnを入力してください\n"); scanf("%s,&k"); } } char *kuji[N] = {"大吉", "中吉", "小吉","末吉", "吉", "凶","大凶"}; srand((unsigned)time(NULL)); printf("おみくじ: %s\n\n\n", kuji[rand() % N]); printf("結果はどうでしたか?\n"); printf("またのお越しをお待ちしております。\n"); return 0; }

  • おみくじについて

    おみくじは大吉、中吉、小吉、末吉、吉、凶、大凶などとありますが順番はどういう順番なのか教えてください・・・!!

  • 「おみくじ」の順位教えてください

    毎年新年に「おみくじ」するのですが、 大吉、中吉、吉、半吉、小吉、末吉、凶、大凶 ってありますが、 大吉の次は吉なのか、中吉なのか・・・ 知ってる方教えて下さい ○┓ペコリ

  • おみくじの順番は??

     おととい初詣に行きおみくじを引いたら、「吉」でました。 仕事、縁談。と項目があってそれには結構よいことが書いてあったのですが、「吉」って末吉の次くらいにいい(というかあまりよくない)んですよね?。 私の記憶では、大吉→中吉→小吉→吉→末吉→凶。だったと思っていたのですが、これで合っていますか??。 ご存知の方教えて下さい、また、凶、大凶は神社に結んで帰るとよいと聞きましたが、持ち帰るとよくないのでしょうか?それも合わせてわかりましたら教えて下さい、お願いします。

  • おみくじの「吉」って?

    おみくじには、「大吉」とか「凶」とかっていうのがありますが、「大吉」が一番良くて、「凶」が一番悪い意味ですね。この他に「中吉」、「小吉」、「吉」とありますが、このうち「吉」というのは、順番で言うと、「大吉」、「中吉」、「小吉」、「凶」のうち、どこの間に位置するのでしょうか?

  • おみくじで3年連続『大凶』が出る確率は?

    カテゴリー違いだったらすみません。 純粋に確率を知りたいのでここにしました。 数年前ですが、正月に引いたおみくじが3年連続『大凶』だった事がありました。 神社によって、どれくらいの割合で『大凶』を入れるかは違うとは思いますが、およそでいいのでどれくらいの確率になるのか教えてください。 ちなみに、おみくじは 大吉、中吉、小吉、吉、半吉、末吉、末小吉、凶、小凶、半凶、末凶、大凶 の12種類があるらしいのですが、吉が一番出る確率が高いような気がします。

  • おみくじの順位

    大吉→中吉→小吉→吉→末吉→凶と思っていたのですが、 友達は大吉→吉→中吉→小吉→末吉→凶と言って聞きません。 どちらが正しいのか正式な順番を教えて下さい!

  • おみくじの小吉や末吉とは何ですか?

    新年あけましておめでとうございます。 お聞きしたいことがあります。 おみくじで、運勢がいい順番は なんですか? 1大吉 2中吉 3小吉 4末吉 5吉 6凶 7大凶 だとおもっているのですが、いいでしょうか? ご存じの方、よろしくお願いします。

  • 初詣 おみくじの正式な順位は?中吉 > 吉 ?????

    神社によって違うと聞きました。 普通は 大吉ー中吉ー吉ー小吉ー末吉ー凶ー大凶 のはずですが、 吉が中吉より上という話しを聞きました。 その話しは本当なのでしょうか?

  • c++ visual 2008 星座おみくじ

    #include "stdafx.h" #include "stdlib.h" int _tmain(int argc, _TCHAR* argv[]) { Int y,m,d; while(swgo!=0) { printf("生年月日を入力してください\n"); printf("年=") ; scanf_s("%d",&y) ; printf("月=") ; scanf_s("%d",&m) ; printf("日=") ; scanf_s("%d",&d) ; printf("[%d年%d月%d日]\n",y,m,d) ; printf("\n"); if(m*100+d=>0321 && m*100+d=<0419 ) printf("牡羊座\n"); if(m*100+d =>0420 && m*100+d=<0520 ) printf("牡牛座\n"); if(m*100+d =>0521 && m*100+d=<0621 ) printf("双子座\n"); if(m*100+d =>0622 && m*100+d=<0722 ) printf("蟹座\n"); if(m*100+d =>0723 && m*100+d=<0822 ) printf("獅子座\n"); if(m*100+d =>0823 && m*100+d=<0922 ) printf("乙女座\n"); if(m*100+d =>0923 && m*100+d=<1023 ) printf("天秤座\n"); if(m*100+d =>1024 && m*100+d=<1121 ) printf("蠍座\n"); if(m*100+d =>1122 && m*100+d=<1221 ) printf("射手座\n"); if(m*100+d =>1222 && m*100+d=<0119 ) printf("山羊座\n"); if(m*100+d =>0120 && m*100+d=<0218 ) printf("水瓶座\n"); if(m*100+d =>0219 && m*100+d=<0320 ) printf("魚座\n"); } while(jsw==1) printf("\n==終了ならを、継続なら1を入力してください=");sacnf_s("%d",&swgo); long s; unsigned int randmx; int rj; randmx=32767; s=12357; srand(s); for(i=1;i<=imax;i++){ rj=rand()*6.0/((float) randmx)+1; printf("%5d",rj); if(i&10==0) printf("\n"); rj=1 大吉 rj=2 中吉 rj=3 小吉 rj=4 末吉 rj=5 小凶 rj=6 末吉 rj=7 小凶 rj=8  中凶 rj=9 大凶 return 0; } 一応 考えて見て打ってみたのですが、エラーが出でしまい出来ません。 自分でもこれでは駄目だとわかります。特に乱数の使い方がわかりません。  何をしたいかと言うと 星座おみくじを作りたいのです。  生年月日を入れてくださいという画面が出て 生年月日を入れたら 星座が出て、 1-9の好きな数を入れてくださいと画面が表示され 数字を入れたら ランダムで おみくじの結果を出すプログラムを作りたいです。   どなたか アドバイスください。 よろしくお願いします。

専門家に質問してみよう