猜数问题关于随机数和循环的问题

我想让每次运行程序可以反复猜多个数,但是运行时发现猜的数还是同一个,想蹲一下该怎么改能实现
#include
#include
#include
int main()
{
int gue,n=0;
char thing;
srand((unsigned int)time(NULL));
int num=rand()%100+1;//生成随机数
{
do
{printf("是否开始游戏(Y/N)");
scanf(" %c",&thing);
switch(thing)
{case 'Y':
do{
printf("请输入你所猜的数字:");
scanf(" %d",&gue);
if(num!=gue)
{
if(num
printf("你猜的数字大啦!");
else
printf("你猜的数字小啦!");
printf("Wrong!");
n++;
}
else
printf("Right!");
printf("您猜的次数为:%d",n);
}
while(num!=gue&&n<10);
case 'N':
printf("猜数结束");
break;
}
}
while(thing=='Y');
}
return 0;
}

int num = rand() % 100 + 1; //生成随机数
n = 0;
这几句放到do里


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int gue, n = 0;
    char thing;
    srand((unsigned int)time(NULL));
    int num = rand() % 100 + 1; //生成随机数
    {
        do
        {
            printf("是否开始游戏(Y/N)");
            scanf(" %c", &thing);
            switch (thing)
            {
            case 'Y':
                do
                {
                    printf("请输入你所猜的数字:");
                    scanf(" %d", &gue);
                    if (num != gue)
                    {
                        if (num < gue)
                            printf("你猜的数字大啦!");
                        else
                            printf("你猜的数字小啦!");
                        printf("Wrong!");
                        n++;
                    }
                    else
                        printf("Right!");
                    printf("您猜的次数为:%d", n);
                } while (num != gue && n < 10);
            case 'N':
                printf("猜数结束");
                break;
            }
        } while (1);
    }
    return 0;
}

随机数你只在最开始的时候生成了一次,应该在循环中进行生成。
按照逻辑,应该在用户选择要开始游戏的时候,开始初始化计数值n=0,同时生成一个随机数,所以应该在 case 'Y'后面生成随机数:

case 'Y':
    n = 0;  // 初始化计数值
    num = rand() % 100 + 1; //生成随机数