• 問1:ジャンケンを十回行って、何勝何敗、何引き
分けかを表示するプログラムを作れ。
• 問2:計算機とじゃんけんを行って、貴方が計算
機より2回多く勝つまで続けるプログラムを作れ。
上記の問題で、どうしても問2がわかりません。"問1を少し変えれば問2はできる"と思うのですが・・・。
どこをどう変えればよいのか、どなたか回答願います。
使っている言語はC言語です。また、私はC言語初心者なので、if文やfor文、do~while文あたりまでしか使えません。
下記に示すのは私が作った、問1のソースです。参考までに。
----------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
int i, a, b;time_t seed;
seed=time(&seed); srand(seed*(seed%12345));
a=3.0*(float)rand()/(RAND_MAX+1.0)+1;
for(i=0;i<10;i++){
printf("1、2、3 ?\n");
scanf("%d",&b);
printf("PCは%d\n",a);
if(a==b){
printf("アイコッ!\n");
}else{
if((a==1 && b==2) || (a==2 && b==3) || (a==3 && b==1 )){
printf("PCが勝ちッ!\n");
}else{printf("PCが負けッ!\n");}
}/*if の括弧閉じ*/
}/* for の括弧閉じ*/
printf( "結果発表ッ!\n" );
printf( "私は%d 回勝ちッ!\n",b );
printf( "PCは%d 回勝ちッ!\n", a);
printf( "引き分けは %d 回ッ!\n", (10 - a - b) );
return 0;
}/*main() の括弧閉じ*/
--------------------------------------------------------------
--------------------------------------------------------------
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
問1のソースでコンピュータの手は 常に同じ手しか使われていません
つまり 変数aの値が変化していません
forループの中で更新するようにしましょう
勝ち負けを判定した場合に カウントする変数を用意しないと最終結果(何勝何敗何引き分け)が出ませんよ
int nComp = 0, nMan = 0;
などを用意して 勝負判定時に 該当する変数を加算しましょう
現状のソースでは最後に入力したbとforループ前に代入したaをつかって 勝敗結果を表示しています
これでは おかしな結果しか表示されません
自分が5回勝っても『私が3回勝ち』になってしまう場合があります
この回答への補足
なんとッ!そうなのですか!問一は一回プログラムを実行してみて、なんとなくうまくいったような気になっていたので、てっきり合っているのかと。
回答ありがとうございました。もっと勉強しますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
strcmp
-
【C言語教えてください】sin波...
-
球の体積と表面積を表示するプ...
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
ifなんですが
-
printf で二進表示を行いたい。
-
関数について
-
円の面積を求めるプログラミン...
-
Visual Sutdio 2017 でのC言語...
-
コマンドプロンプトがすぐ消える
-
C言語の配列問題について
-
c言語 成績表示のプログラムで...
-
(C言語)西暦年月日を入力して...
-
printfの出力内の文字をdefine...
-
コンパイルエラーについて
-
C言語で五目並べを作成している...
-
%P と %X の違い
-
2つ分数の四則演算を行うプロ...
-
hit&bolwのプログラミングがで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
【C言語教えてください】sin波...
-
strcmp
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
cshの文字列操作(0埋め)
-
4の倍数を論理演算で表す。。
-
C言語 プログラミング
-
%P と %X の違い
-
8人分のテストの点数を入力し、...
-
C言語での、年複利の計算方法...
-
printf( " %2d", p * q );
-
hit&bolwのプログラミングがで...
-
scanfに文字が入力されたときに...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
unsigned int型について
おすすめ情報