合計得点が21点以上の時か10回じゃんけんをしたときにプログラムを終了する。という条件を付けくわえたいです。
どのように表現すればいいのかアドバイスください。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int a = 0, b = 0; int points_a = 0; int points_b = 0; int turns = 0; char inputs[][10] = { "Rock","Scissors","Paper" }; for (turns = 0; turns < 10; turns++) { while (1) { printf("Input for game number %d: ", turns + 1); scanf("%d %d", &a, &b); if (a < 1 || a>3 || b < 1 || b>3) printf("Invalid input(Rock:1,Scissors:2,Paper:3),please try again:\n\n"); else break; } printf("A plays %s,B plays %s: ", inputs[a - 1], inputs[b - 1]); if (a == b) { printf("draw.\n"); } else if ((a == 1 && b == 2) || (a == 2 && b == 1)) { printf("%c wins and gets 1points.\n", (a < b ? 'A' : 'B')); if (a < b) points_a += 1; else points_b += 1; } else if ((a == 1 && b == 3) || (a == 3 && b == 1)) { printf("%c wins and gets 5 points.\n", (a > b ? 'A' : 'B')); if (a > b) points_a = 5; else points_b = 5; } else if ((a == 2 && b == 3) || (a == 3 && b == 2)) { printf("%c wins and gets 2 points.\n", (a < b ? 'A' : 'B')); if (a > b) points_a += 2; else points_b += 2; } else { printf("Unknown error\n"); return -1; } printf("Current number of points: A - %d, B - %d. \n\n", points_a, points_b); if (points_a >= 21 || points_b >= 21) break; } if (points_a == points_b) { printf("Draw(points:A %d,B %d)\n", points_a, points_b); } else { printf("\nWinner: %c (points: A %d, B %d)\n", (points_a > points_b) ? 'A' : 'B', points_a, points_b); } return(0); }
回答5件
あなたの回答
tips
プレビュー
2018/04/29 02:44
2018/04/29 02:47