通过编写一个风趣的游戏进修 C 说话
从写一个函数来选择一个随机数字来开始“猜数字”游戏。在编写函数时,优越的措施员会只管使它们具有机动性,这样他们就可以重用它们来办理略有差异的题目。因此,与其硬编码函数来选择 1 到 100 之间的一个随机数,不如编写函数来选择 1 到某个整数 maxval 之间的一个随机数: #include <stdio.h> #include <sys/random.h> int randnum(int maxval) { /* pick a random number from 1 to maxval */ int randval; getrandom(&randval, sizeof(int), GRND_NONBLOCK); /* could be negative, so ensure it's positive */ if (randval < 0) { return (-1 * randval % maxval + 1); } else { return (randval % maxval + 1); } } 该函数行使 Linux 的体系挪用 getrandom 来天生一系列随机数。你可以在手册页中相识关于这个体系挪用的更多信息,但请留意,getrandom 将用随机的 0 和 1 添补变量。这意味着最终值可所以正的,也可所以负的,因此你必要在之后举办测试,以确保 randnum 函数的功效是正值。 编写措施 你可以用这个函数来写你的“猜数字”措施: #include <stdio.h> #include <sys/random.h>
int randnum(int maxval) { ... } int main(void) { int number; int guess; number = randnum(100); puts("Guess a number between 1 and 100"); do { scanf("%d", &guess); if (guess < number) { puts("Too low"); } else if (guess > number) { puts("Too high"); } } while (guess != number); puts("That's right!"); return 0; } 措施起首行使 randnum 函数从 1 到 100 之间选择一个随机数。在向用户输出一个提醒后,措施进入一个 do-while 轮回,以便用户可以揣摩数字。 在轮回的每次迭代中,措施测试用户的揣摩的数值。假如用户的揣摩小于随机数,措施将输出“Too low”,假如揣摩大于随机数,措施将输出“Too high”。轮回继承,直到用户的揣摩与随机数沟通。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |