\ | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
1 | HR | - | - | - | - | 1H |
2 | - | 3H | - | - | 1H | - |
3 | - | - | 2H | 1H | - | - |
4 | - | - | 1H | 2H | - | - |
5 | - | 1H | - | - | 2H | - |
6 | 1H | - | - | - | - | 2H |
なお,表示においては先頭の行には学生番号を,最後にはハイフンによるラインを出力すること.
My student number: s124099 Dices: 3 4 Batter1: 1H Dices: 2 2 Batter2: 3H Run: 1 ------------------------ |
解答作成における条件
条件分岐は switch 文と if else 文を上手に組み合わせて作ってください.また,得点計算は打者ごとの進塁数を数えれば良いのですが,その際に,次週の内容である教科書p.38にある複合演算子を用いると簡潔な処理が可能です.例えば,打者1の進塁数を変数 b1 に入れているとすると,2塁打ならば
b1 += 2;
のようにします.なお,このプログラムは結構長くなりますので,間違いの無いように注意して作ってください.
/* ************************************************** */ /* */ /* 情報科学演習 C6 C7 */ /* レポート課題 */ /* 2012.11.12 */ /* */ /* ************************************************** */ /* */ /* 学生番号: */ /* */ /* 氏名: */ /* */ /* ************************************************** */ /* */ /* この行以降に解答のプログラムを書くこと */ #include <stdio.h> #include <stdlib.h> #include <time.h> main() { srand((unsigned) time(NULL)); int dice1, dice2, sum; int b1=0, b2=0; dice1 = rand() % 6 + 1; dice2 = rand() % 6 + 1; sum = dice1 + dice2; printf("My student number: s124099\n\n"); printf("Dices: %d %d\nBatter1: ", dice1, dice2); if(dice1==dice2) switch(dice1){ case 1: printf("HR\n\n"); b1 += 4; break; case 2: printf("3H\n\n"); b1 += 3; break; default: printf("2H\n\n"); b1 += 2; break; } else if(sum == 7){ printf("1H\n\n"); b1 += 1; } else printf("Out\n\n"); dice1 = rand() % 6 + 1; dice2 = rand() % 6 + 1; sum = dice1 + dice2; printf("Dices: %d %d\nBatter2: ", dice1, dice2); if(dice1==dice2) switch(dice1){ case 1: printf("HR\n\n"); b2 += 4; b1 += 3; break; case 2: printf("3H\n\n"); b1 += 3; break; default:printf("2H\n\n"); b1 += 2; break; } else if(sum == 7){ printf("1H\n\n"); b1 += 1; } else printf("Out\n\n"); printf("Run: "); if(b1+b2<4) printf("0\n"); else if(b1+b2<8) printf("1\n"); else printf("2\n"); printf("\n------------------------\n\n"); return(0); } |