注册 登录
编程论坛 C语言论坛

随机数问题

Rainsweet 发布于 2019-12-05 22:02, 1638 次点击
编写一个简单的猜数游戏,程序产生一个1~100的随机数,用户猜这个数,程序会给出“高了”或者“低了”的提示,直到用户猜对或者放弃(假定用户输入-1视为放弃)
#include<stdio.h>。如果用户猜对了,且猜的次数在5次以下,则输出“Good”,猜的次数在5~8次输出“Not bad”,否则输出“You can do better”
这是书上的一道练习题,我的程序不能同时输入多个数和产生的随机数比较,而且后面count前面的else不加if没有用,请问一下大佬这个怎么改,或者给我一种新的解题方法,谢谢各位大佬了!
#include<stdlib.h>
#include<time.h>
int main()
{
    int n, i = 1;
    int x = 0, count = 0;
    srand((unsigned int) time(NULL));
    x = rand() % 100;
    printf("%d ", x);
    printf("输入任意整数n:");
    scanf("%d", &n);
    if (x > n)
    {
        printf("low\n");
    }
    count++;
    if (x < n)
    {
        printf("high\n");
    }
    count++;
    if (count < 5)
        printf("Good\n");
    if (count >= 5 && count <= 8)
        printf("Not bad\n");
    else
        printf("You can do better\n");

    return 0;
}
4 回复
#2
rjsp2019-12-06 09:15
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main( void )
{
    // 这个随机数似乎有点儿问题
    srand( (unsigned)time(NULL) );
    int x = (int)(rand()/(RAND_MAX+1.0)*100+1);

    unsigned count = 0;
    for( ; ; )
    {
        int n;
        if( scanf("%d",&n)!=1 || n==-1 )
            return 0;

        ++count;

        if( n < x )
            puts( "低了" );
        else if( n > x )
            puts( "高了" );
        else
            break;
    }

    if( count < 5 )
        puts( "Good" );
    else if( count <= 8 )
        puts( "Not bad" );
    else
        puts( "You can do better" );
}
#3
Rainsweet2019-12-06 17:07
回复 2楼 rjsp
这个不错,就是随机数不知道是多少,谢谢大佬
#4
自学的数学2019-12-06 18:43
程序代码:
#include<stdio.h>
#include<windows.h>
#include<time.h>
void menu(){

 printf("#######################\n");

 printf("#    1 Play    #\n");

 printf("#    0 Exit    #\n");

 printf("#######################\n");
}
void Play(){

 int m = 0;

 int random = rand() % 100 + 1;

 while (1)

 {
    printf("请输入一个数字:\n");
    scanf("%d", &m);
    if (m == random){
        printf("你猜对了\n");
        break;
    }

 else if (m > random)
        {
        printf("你猜大了,请重新输入!");
        }
        else{
            printf("你猜小了,请重新输入!");
        }
    }
}

 int main()

 {
   srand((unsigned)time(NULL));
   int select = 0;
   do {
     menu();
     printf("请选择:");
     scanf("%d", &select);
     switch (select)
       {
         case 1:  Play();  break;
         case 0:  printf("ByeBye!\n");  break;
        default:  printf("输入错误,请重新输入!\n");  break;
      }
   }
   while (select);
       system("pause");
   return 0;
}
#5
Rainsweet2019-12-07 22:24
回复 4楼 自学的数学
大佬,我怎么运行不了呀,有点尴尬
1