思路:
系统通过 “ rand()” 函数随机数种子随机生成一个0-100之间的数,我们在屏幕上输入一个数,若比生成的数大,提示 “高了” ,若比生成的数小,提示 “低了”,相同则提示 “猜对了” 。
代码详解:
1.创建随机数种子
这一步很关键,如果没有这一步,rand函数随机出的数只有一个,即每一次运行程序时的随机数都是一样的,并且这一步必须在rand函数之前写出,否则没有效果。参数time(0)即是以时间为种子生成随机数,每一刻时间都不同,所以每次生成的随机数都不同。
srand((unsigned int)time(0));//创建随机数种子
2.使用rand函数
使用rand函数生成随机数并赋给num,rand()%100+1就可以将随机数的范围控制在0-100之间。
int num = rand() % 100 + 1;//将随机数字范围控制在0-100之间
3.判断是否猜到
使用while循环中嵌套if语句来判断。首先让用户输入猜的数,再使用if语句判断猜的数和随机出来的数的大小或相等关系,并提示 “高了” “低了” 或 “猜对了”。在这里if语句的作用主要是判断,while循环的作用主要是在猜错时可以继续猜,直到猜到为止。
while (1) { printf("输入一个数:"); scanf("%d", &input); if (input < num) { printf("低了\n"); } else if (input > num) { printf("高了\n"); } else if (input == num) { printf("猜对了\n"); break; } }
完整代码参考
srand函数的头文件:#include<stdio.h>
time()的头文件:#include<time.h>
#include<time.h> #include<stdlib.h> #include<stdio.h> void main() { srand((unsigned int)time(0));//创建随机数种子 int num = rand() % 100 + 1;//将随机数字范围控制在0-100之间 int input = 0; while (1) { printf("输入一个数:"); scanf("%d", &input); if (input < num) { printf("低了\n"); } else if (input > num) { printf("高了\n"); } else if (input == num) { printf("猜对了\n"); break; } } }