22018, 1/1101 회원가입  로그인  
   한길
   c언어로 만들었는데 결과가 좀이상해요; (난수 생성)

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=33096 [복사]


#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
srand(time(NULL));
int ran = rand()%11+1;
int in;
real:
printf("Input a number (0~10) : ");
scanf("%d",&in);
if(in > 10){
        printf("\nPlease input a number between 0 and 10.\n");
        goto real;}
if(in < 0){
        printf("\nPlease input a number between 0 and 10.\n");
        goto real;}
if(in == ran){
        printf("\nWow~ that's my favorite number!");
        return 0;}
else{
        printf("\nYour wrong. I don't like that number.\n");
        printf("input again.\n");
        goto real;}
}

0부터 10까지 수 중에 하나를 맞추는 건데요..
해보니깐 수십번 해야 한번 맞추던데
코드가 이상한건가요 아님 그냥 우연인건가요?

  Hit : 10241     Date : 2015/01/14 12:06



    
skyclad1975 저 코드대로라면 한번 실패한 이후 랜덤값이 바뀌지 않으니 1부터 10까지 각각 한번씩만 넣어보면 맞출 수 있도록 되어있네요.
코드 자체엔 문제가 없어보입니다.
2015/01/14  
itseeyou 랜덤한 값을 11로 나누면 나머지 값으로 10이 나오는 경우가 발생합니다.
여기에 1을 더하면 11이 되겠네요.
이 때 어떤 값을 넣더라고 Please input a number between 0 and 10.을 출력하게 됩니다.
2015/01/15  
zades soma ㄷ 2024/03/23