C语言课程设计

360U3120092621 |浏览401次
收藏|2020/02/09 17:04

满意回答

2020/02/09 17:30

这里面用到了随机数,其属于stdlib.h,其中利用rand()%a+b,该随机数的取值范围为[b,a+b-1],下面是程序#include <stdlib.h>#include <stdio.h>int main(){ int magic;//计算机想的数; int guess;//用户猜的数; int counter=0;//用来统计用户猜的次数 magic=rand()%100+1; //这是1~100之间的随机数 do{ printf ("Please guess a magic number:"); scanf ("%d",&guess); counter++; if (guess>magic) { printf ("Wrong!Too big!\n"); }else if (guess<magic) { printf ("Wrong!Too small!\n"); }else{ printf ("Right!\n"); } }while(guess!=magic); //直到猜对为止 printf ("counter=%d",counter); //输出猜的次数 return 0;}这是运行结果但是有个问题,那就是在这个程序里随机数看似随机,实际上它是不变的--42,这是一个伪随机数。但是对付你这题够了。如果你想每次运行产生一个不同的随机数,我还是帮你写出来吧,以防万一:我们要用到“随机化”,利用srand()函数来设置随机数种子#include <stdlib.h>#include <stdio.h>int main(){ int magic;//计算机想的数; int guess;//用户猜的数; int counter=0;//用来统计用户猜的次数 unsigned int seed;//定义一个无符号整型变量 printf ("Please enter seed:");//提示输入随机数种子 scanf("%u",&seed); srand(seed);//为函数rand()设置随机数种子 magic=rand()%100+1; //这是1~100之间的随机数 do{ printf ("Please guess a magic number:"); scanf ("%d",&guess); counter++; if (guess>magic) { printf ("Wrong!Too big!\n"); }else if (guess<magic) { printf ("Wrong!Too small!\n"); }else{ printf ("Right!\n"); } }while(guess!=magic); //直到猜对为止 printf ("counter=%d",counter); //输出猜的次数 return 0;}下面是结果从这两个结果里可以看到,随机数种子不同,产生的随机数不同当随机多了,即随机的随机,说不定真的能随机。还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ

木斯皮尔翰

其他回答(1)
  • 给你个我以前做的参考#include <stdio.h>#include <time.h>#include <stdlib.h>int main(){ int n,yournumber,ct,mynumber; time_t ti; char c; srand((unsigned) time(&ti)); //初始化随机函数 while(1) { ct=0; mynumber=rand()%100+1; //1~100随机 while(ct++<10) { printf("你猜的数为:"); scanf("%d",&yournumber); if (yournumber==mynumber) { printf("对了!\n"); break; } if (yournumber> mynumber) printf("大了!\n"); else printf("小了!\n"); } if (ct<10) printf("你共猜了 %d 次\n",ct); else printf("你猜了10次没猜对\n"); printf("继续?(Y/y)"); scanf(" %c",&c); if (c!='y' && c!='Y') break; } return 0;}
    回答于 2020/02/09 18:02
0人关注该问题
+1

 加载中...