• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c++ visual 2008 星座おみくじ)

C++で星座おみくじを作成する方法

このQ&Aのポイント
  • C++を使用して、生年月日を入力すると星座を表示するプログラムを作成したいです。
  • さらに、1から9までの数字を入力するとランダムなおみくじの結果を表示する機能も追加したいです。
  • 現在のコードにはいくつかのエラーがあり、乱数の使い方が分からないため、アドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

>エラーが出でしまい出来ません。 エラーというのは一番の解決の糸口です。 ですので、質問の際にはエラーを(ちょっと長くても)コピペするのが正解です。 とりあえず脳内コンパイルしてみます。 >#include "stdafx.h" この中にstdio.hとかtchar.hがincludeされてるのかな? stdafx.hの中身も示したほうが良いかと思います。 >Int y,m,d; Iが大文字になっています。 >while(swgo!=0) swgoとは何でしょう? >scanf_s("%d",&y) ; scanf_sの使い方がまずそうです。 http://msdn.microsoft.com/ja-jp/library/w40768et(v=vs.80).aspx >if(m*100+d=>0321 && m*100+d=<0419 ) printf("牡羊座\n"); 数値の先頭に0をつけると8進数として扱われます。なので今回のケースではつけてはいけません。 それと演算子が間違っています。<=と>=が正解です。 >while(jsw==1) >printf("\n==終了ならを、継続なら1を入力してください=");sacnf_s("%d",&swgo); jswとは? それとこれだとprintfを無限ループで実行することになります。ちゃんと{}で囲みましょう。 >for(i=1;i<=imax;i++){ iとimaxが宣言されていない気がする。 あとforの閉じ中括弧がありません。 >rj=rand()*6.0/((float) randmx)+1; randmxなどとして自分で用意する必要はありません。というか処理系によってかわるので、乱数の最大値はRAND_MAXを利用しましょう。 >if(i&10==0) printf("\n"); 文法的には問題ないですが、これはどういう意図なのでしょう? >rj=1 大吉 ここからは完全に謎ですね。 こんなところでしょうか? >特に乱数の使い方がわかりません。 乱数の使い方はそこまで間違ってはいない気がします。 ここら辺を読んで基礎から勉強しましょう。 http://9cguide.appspot.com/

zeronew
質問者

お礼

参考になりました。 演算子が間違っていたのを気づきませんでしたありがとうございます。

関連するQ&A