A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© _let'sgo 中级黑马   /  2015-11-2 22:11  /  4901 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,不停猜测,直到猜对为止。最后输出猜测的数字,和猜测的次数。并且如果没有猜中要提示用户输入的值是大了还是小了。

7 个回复

倒序浏览
  1. import java.util.Scanner;
  2. import java.util.Random;
  3. /*
  4. @author XuChang
  5. */
  6. class GuessNumCtrl {
  7.         public static void main(String[] args) {
  8.                 GuessNum guess = new GuessNum();
  9.                 guess.start();
  10.         }
  11. }
  12. class GuessNum {

  13.         public void start() {
  14.                 Random rad = new Random();
  15.                 int num = rad.nextInt(100)+1;
  16.                 int count = 0;
  17.                 System.out.println("请猜一个数字,在1-100之间:");
  18.                 while(true) {
  19.                         int i = getInt();
  20.                         if (num == i) {
  21.                                 System.out.println("恭喜你,答对了,继续猜请输入1,退出请输入2-100");
  22.                                 int j = getInt();
  23.                                 if (j!=1){
  24.                                         return;
  25.                                 }
  26.                                 count = 0;
  27.                                 this.start();
  28.                         } else if (i < num ) {
  29.                                 count ++;
  30.                                 System.out.println("小了,第" + count + "次猜数");
  31.                                 continue;
  32.                         } else {
  33.                                 count ++;
  34.                                 System.out.println("大了,第" + count + "次猜数");
  35.                                 continue;
  36.                         }
  37.                 }
  38.         }
  39.         public int getInt() {              //键盘获取一个1-100之间的int型
  40.                 Scanner scan = new Scanner(System.in);
  41.                 int num ;
  42.                 while (true) {
  43.                         try {
  44.                                 num = scan.nextInt();
  45.                         }               
  46.                         catch (Exception e) {
  47.                                 System.out.println("输入不正确,请重新输入1-100之间的数字");
  48.                                 scan = new Scanner(System.in);
  49.                                 continue;
  50.                         }
  51.                         if (0 < num && num < 101) {
  52.                                 return num;
  53.                         }else {
  54.                                 System.out.println("输入不正确,请重新输入1-100之间的数字");
  55.                                 continue;
  56.                         }
  57.                 }
  58.         }
  59. }
复制代码
回复 使用道具 举报
//猜数字小游戏
import java.util.Scanner;
class Guess_Num {
        public static void main(String[] args) {
                //先生成随机数
                int guessNum=(int)(Math.random()*100)+1;
                //开始猜数
                Scanner sc=new Scanner(System.in);
                int temp;
                int count=0;
                System.out.println("请输入一个1-100间的整数");
                while (true){
                        temp=sc.nextInt();
                        count++;
                        if (temp>guessNum){
                                System.out.println("大了");
                                continue;
                        }
                        if (temp<guessNum){
                                System.out.println("小了");
                                continue;
                        }
                        if (temp==guessNum){
                                System.out.println("中了");
                                break;
                        }
                }
               
                System.out.println("猜数字次数为"+count);
               
        }
}
回复 使用道具 举报
  1. import java.util.Scanner;
  2. class GuessNumber
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                
  7.                 int number = (int)(Math.random()*100) + 1;
  8.                
  9.                 while(true) {
  10.                         Scanner sc = new Scanner(System.in);
  11.                         System.out.println("please input your guess number:");
  12.                         int guessNumber = sc.nextInt();
  13.                         if(number < guessNumber) {
  14.                                 System.out.println(guessNumber+" is too large.");
  15.                         } else if(number > guessNumber) {
  16.                                 System.out.println(guessNumber+" is small.");
  17.                         } else {
  18.                                 System.out.println("Congratulation! you guess it.");
  19.                                 break;
  20.                         }
  21.                 }
  22.         }
  23. }
复制代码
回复 使用道具 举报
/*

使用随机数随机产生一个1-1000之间的数,给用户10次机会

// 产生 m,n 之间的随机数
// arc4random_uniform(n-m+1)+m
// arc4random_uniform(50-10+1)+10
*/


#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char * argv[]) {
   
    // 定义变量
    // 保存计算机产生的随机数和玩家输入的数字
    // 保存随机数产生的范围
    // 保存总的次数
    // 保存已经竞猜的次数
    int randomNum=0,inputNum=0;
    int m=1,n=1000;// 设定范围
    int totalCount=10;
    int nowCount=1;
    int flag=1;
    int oldNum=0;
    // 产生随机数
    // 导入头文件 <stdlib.h>
    // 调用随机数函数,产生随机数
    // arc4random_uniform(3);     0,1,2
    // arc4random_uniform(1000)   0-999
    // arc4random_uniform(1000)+1 [1,1000]
    randomNum=arc4random_uniform(n-m+1)+m;
    // 死循环判断
   
    while(flag){
        // 判断次数是否小于总的次数
        if(nowCount<=totalCount){
            
            // 提示让用输入一个数
            printf("请输入[%d,%d]之间的数字\n",m,n);
           
            scanf("%d",&inputNum);
            
            if(inputNum>randomNum){
               
               
                printf("当前是第%d次竞猜,还有%d次机会\n上次竞猜:%d,本次竞猜:%d\n竞猜结果:猜大了!\n",nowCount,totalCount-nowCount,oldNum,inputNum);
            }else if (inputNum<randomNum){
               
               
            printf("当前是第%d次竞猜,还有%d次机会\n上次竞猜:%d,本次竞猜:%d\n竞猜结果:猜小了!\n",nowCount,totalCount-nowCount,oldNum,inputNum);
               
            }else {
               
               
                printf("当前是第%d次竞猜,还有%d次机会\n上次竞猜:%d,本次竞猜:%d\n竞猜结果:猜对了!\n",nowCount,totalCount-nowCount,oldNum,inputNum);
               
                flag=0;
            }
        }
        
        nowCount++;
        oldNum=inputNum;
    }
   
   
    return 0;
}
回复 使用道具 举报
  1. package cn.itcast.test;
  2. /**
  3. * 编写程序随即生成一个0-100之间的随机数。程序提示用户输入一个数字,
  4. * 不停猜测,直到猜对为止。最后输出猜测的数字,和猜测的次数。
  5. * 并且如果没有猜中要提示用户输入的值是大了还是小了。
  6. */
  7. import java.util.Random;
  8. import java.util.Scanner;

  9. public class Demo4 {
  10.         public static void main(String[] args)
  11.         {
  12.                 //获取随机数对象
  13.                 Random random = new Random();
  14.                 int guess = (int)(random.nextInt(100))+1;//要求随机数是0~100的
  15.                 Scanner sc = new Scanner(System.in);//创建一个扫描器对象

  16.                 int count = 0;//定义一个变量,用来控制猜测的测试
  17.                 while(true){
  18.                         System.out.print("请输入数字 ");
  19.                         int num = sc.nextInt();//调用扫描器的nextInt方法扫描一个数字
  20.                        
  21.                         if(num>guess){
  22.                                 System.out.print("大了"+"\n");
  23.                         }else if(num<guess){
  24.                                 System.out.println("小了"+"\n");
  25.                         }else{
  26.                                 System.out.println("您猜对了" +"\n");
  27.                                 break;
  28.                         }
  29.                        
  30.                         count++;
  31.                         System.out.println("用来接收您输入的次数"+count);
  32.                 }


  33.         }
  34. }
复制代码
回复 使用道具 举报
这么多种方法我都没看懂,没救了
回复 使用道具 举报
import java.util.Scanner;
class Test3_Math
{
        public static void main(String[] args)
        {
                //创建键盘录入对象
                Scanner sc = new Scanner(System.in);
               
                //设置系统随机数
                int random = (int)(Math.random() * 100 + 1);
               
                System.out.println("请输入您猜测的数字,范围在 1-100 之间:");
               
                //设置num接收键盘录入,count记录猜测次数
                int num = 0;
                int count = 0;
               
                //用来提示的最大最小区间
                int min = 1,max = 100;
               
                while(num != random)
                {
                        //接收键盘录入
                        num = sc.nextInt();
                        count++;
                       
                        //判断
                        if(num > random)
                        {
                                System.out.println("大了");
                                System.out.println("---------------------");
                                //将num作为范围的最大值
                                max = num;
                                System.out.println("请输入" + min + " - " + max + "之间的数字:");
                        }else if (num <random)
                        {
                                System.out.println("小了");
                                System.out.println("---------------------");
                               
                                //将num作为范围的最小值
                                min = num;
                                System.out.println("请输入" + min + " - " + max + "之间的数字:");
                        }else
                        {
                                System.out.println("输入正确!");
                        }
                }
                System.out.println("您猜了:" + count + "次");
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马