猜数字

时间:2013-12-29 13:40:22

标签: c

我编写了一个程序,但总是给出相同的数字(41)。 下次我玩的时候为什么不改变?

第二个问题是:如何限制2个数字之间的答案?

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

int main(int argc, char *argv[]) {
    int magic,guess;
    char ans='y';
    magic=rand();
    printf("\t\t\tgame(guess the number)\n");
    do{
        printf("guess the magic number\n");
        scanf("%d",&guess);
        if(guess==magic){
            printf("\n*****Right*****\n");
            printf("%d is the magic number.",magic);
            getch();
            ans='n';
        }else{
            printf("\n*****Wrong*****\n");
            if(guess>magic)
            printf("your guess is too high\n");
            else printf("your guess is too low\n");
            printf("do you want to continue?\n");
            ans=getch();
        }
    }while(ans=='y');
    return 0;
}

我想限制50到500之间的答案。我该怎么做?

2 个答案:

答案 0 :(得分:1)

srand (time(NULL));作为main()函数的第一行,让魔法开始:)

现在.... rand()给出0到RAND_MAX

范围内的数字

所以假设您想要在x和y(包括)(x 之间限制它

然后int rand_num = rand() %(y-x+1) + x;将是您的解决方案

干杯:)

答案 1 :(得分:0)

使用srand - http://www.cplusplus.com/reference/cstdlib/srand/

对随机数生成器进行种子设定

使用类似进程ID和/或当前时间的内容