-
c언어 과제(숫자야구)전공/c언어 2019. 6. 2. 14:0312345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX 10void s_b(int *str, int *b, int ans[], int gue[]);int main() {int num[3] = { 0 };int guess[3];char start;int i;int strike;int ball;srand(time(NULL));printf("스트라이크 볼 게임 하시겠습니까? (Y/N)\n");scanf_s("%c", &start);while (start != 'N') {for (int i = 0; i < 3; i++)num[i] = rand() % MAX;while (num[0] == 0 || num[0] == num[1] || num[0] == num[2] || num[1] == num[2]) {for (i = 0; i < 3; i++) {num[i] = rand() % MAX;}}printf("정답은 = %d%d%d\n", num[0], num[1], num[2]);while (1) {printf("숫자 세 개를 입력하시오.\n");for (i = 0; i < 3; i++)scanf_s("%d", &guess[i]);s_b(&strike, &ball, num, guess);if (strike == 3) {printf("Congratulation!\n");break;}elseprintf("%d스트라이크, %d볼입니다.\n", strike, ball);}printf("스트라이크 볼 게임 하시겠습니까? (Y/N)\n");scanf_s("%c", &start);}}void s_b(int *str, int *b, int ans[], int gue[]){*str= 0;*b = 0;for (int i = 0; i < 3; i++) {if (ans[i] == gue[i])*str++;}if (ans[0] == gue[1] || ans[0] == gue[2])*b++;if (ans[1] == gue[0] || ans[1] == gue[2])*b++;if (ans[2] == gue[0] || ans[2] == gue[1])*b++;}http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5; text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none; color:white">cs 코드를 짰는데 생각대로 절대 안된다.
왜 그럴까
찾았다 ㅎㅎ 연산자 우선순위를 일단 안 따졌다. 머엉청하게 음 값을 넣어서 확인해보자 아님 그 중간중간에 printf를 끼어 넣어서 코딩해보던지