이 코드는 배변의 게임이다. 그것은 하나의 반복 어떤 사용자 입력 Y
또는 N
후 종료하기 때문에 읽기 문자()
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <time.h> int roll_dice(void); bool play_game(void); int main() { int i, ch,win = 0,lose = 0; bool flag; srand((unsigned)time(NULL)); do { flag = play_game(); if(flag) { printf("You win!"); win++; } else { printf("You lose!"); lose++; } printf("\n\nPlay again(Y/N)? "); scanf("%c", &ch); ch = getchar(); printf("\n"); }while(ch == 'Y' || ch == 'y'); printf("\nWins: %d Losses: %d",win,lose); return 0; } int roll_dice(void) { return rand()%6 + rand()%6 + 2; } bool play_game(void) { int sum = roll_dice(); printf("You rolled: %d\n", sum); if(sum == 7 || sum == 11) return 1; else if(sum == 2 || sum == 3 || sum == 12) return 0; else { int point = sum; printf("Your point is: %d\n", point); do { sum = roll_dice(); printf("You rolled: %d\n", sum); if(sum == 7) return 0; }while(point != sum); return 1; } }
나는 단지 코드 printf("\n\nPlay again(Y/N)? ");
scanf("%c", &ch);
ch = getchar();
printf("\n");
내가 사용한에 문제가 있습니다. 내가 \n
을 먹고 ch = getchar()
을 배치하여 잘못하고 있어요 생각 나는 그것을 제거하고 변환 지정자 앞에 공백을 배치하고 내가 그것을 잘 작동 %d
로 변환 지정자를 대체 일하러 또한 did't " %c"
하여 대체했다.
아무 문제가 있습니까?
나는이 post을 방문 내가했던 같은 일을 말하고있다.
게임 * 쓰레기 *? ! 아니, 아니, *** 결코 ***이를 위해, 하나'는 fgetc (표준 입력)'대신 사용할 수 있습니다 - 그 보좌의 – Renan
게임 .. – Alex1985
는 "()'는 scanf'와 문자를 읽기". 사실,'scanf()'사용을 고려한다면, 그냥하지 마라. –