• C语言猜数字游戏


    问题:

      编写一个猜数字的游程序,任意给一个1—100之间的整数,程序应能迅速的猜出此数是多少,每猜完一次数之后询问是否继续,若回答是则继续做猜数游戏,若回答否,则结束程序运行。

    分析:

      rand()是“伪随机数”产生函数,注意,是“伪随机数”,而不是随机数,如果每次srand()给的参数值都相同,那么rand()产生的序列就是相同的,time(NULL)返回的是从某年的1月1日0时0分0秒到系统当前时间所经过的秒数,所以如果不是同一秒钟以内多次运行程序的话,time(NULL)的返回值一定是不同的,用这样的方式来产生相对比较随机的序列。在C语言头文件<stdlib.h>中包含标准库函数srand(),设置产生随机数的种子。程序员可以在程序开始时自行设置种子的数值。

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<time.h>
     4 main()
     5 {
     6     int a,b;
     7     char c;
     8     srand(time(NULL));
     9     a=1+(rand()%100);
    10     printf("I have a number between 1 and 100.
    Can you guess my number?
    Please type your first guess.
    ");
    11     scanf("%d",&b);
    12     while(b)
    13     {
    14     if(b==a)
    15     {
    16         printf("Excellent! You guessed the number!
    Would you like to play again(y or n)?");
    17         scanf(" %c",&c);     //%c前面的空格不能少!用以隔离以前输入的回车符 
    18         switch(c){
    19         case 'y':
    20             printf("I have a number between 1 and 100.
    Can you guess my number?
    Please type your first guess.
    ");
    21             scanf("%d",&b);
    22             break;
    23         case 'n':
    24             break;
    25         }
    26     }
    27 
    28     while(b<a)
    29     {
    30         printf("Too low.Try again.");
    31         scanf("%d",&b);
    32     }
    33 
    34     while(b>a)
    35     {
    36         printf("Too high.Try again.");
    37         scanf("%d",&b);
    38     }
    39     }
    40 }
  • 相关阅读:
    strutr2运行流程
    ConcurrentHashMap原理分析
    面试题集锦
    jvm如何知道那些对象需要回收
    java中volatile关键字的含义
    关于Java类加载双亲委派机制的思考(附一道面试题)
    new关键字和newInstance()方法的区别
    Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别
    字符串中第一个只出现一次的字符
    二进制数中1的个数
  • 原文地址:https://www.cnblogs.com/geziyu/p/8734659.html
Copyright © 2020-2023  润新知