在猜数游戏中 while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢

1.Python中我按照python 2的教材在python 3 上写了一个猜数小游戏 但是运行之后 我写的代码在我猜对了数之后不会跳出循环, 而是又一次的开始了循环,直到次数用完。后来找大神改了一下代码可以成功运行了,但是对于其中 guess=int(input(""))和 if int(guess)有了疑问。
我用的就是Python自带的 IDLE

2.教材上的代码:

import random
secret = random.randint(1, 99)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!")
print ("It is a number from 1 to 99,I'll give you 8 tries. ")
while guess != secret and tries < 8:
    guess = input("what's yer guess? ")
    if guess < secret:
        print ("太小")
    elif guess > secret:
        print ("太大!")
    tries = tries + 1
if guess == secret:
    print ("答对了")
else:
    print ("没有机会了!")
    print ("正确答案",secret)

如果我按照教材上的代码运行会报错:
图片说明
大概意思就是不同的类型不能比较大小。所以我就在我的代码上改进了一下。

(2)我自己的代码:
因为教材上是在py 2上写的 我是在Py 3写的 所以有一点改动就是在guess前面加上了int

import random
secret = random.randint(1, 99)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!")
print ("It is a number from 1 to 99,I'll give you 8 tries. ")
while guess != secret and tries < 8:
    guess = input("what's yer guess? ")
    if int(guess) < secret:
        print ("太小")
    elif int(guess) > secret:
        print ("太大!")
    tries = tries + 1
if int(guess) == secret:
    print ("答对了")
else:
    print ("没有机会了!")
    print ("正确答案",secret)

但是我自己写的是可以运行了但是不会跳出while循环 我就很奇怪了,下面是我的运行结果报错:
图片说明
就是说我在第五次已经猜对了,但是并没有跳出循环而是继续让我猜了。(不能使用break,就是用单纯的while循环)

(3)大神改进后的代码:大神只是在教材上的代码稍加改动,结果就可以正确运行了,大神在源代码的

guess = input("what's yer guess? ")

改成了

guess = int(input("what's yer guess? "))

是在input钱加了int 详细如下:

import random
secret = random.randint(1, 100)
guess = 0
tries = 0
print ("AHOY! I'm the Dread Pirate Roberts,and I have a secret!")
print ("It is a number from 1 to 99,I'll give you 8 tries. ")
while guess != secret and tries < 8:
    guess = int(input("what's yer guess? "))
    if guess < secret:
        print ("太小")
    elif guess > secret:
        print ("太大!")
    tries = tries + 1
if guess == secret:
    print ("答对了")
else:
    print ("没有机会了!")
print ("正确答案",secret)

这样就可以完美输出了结果如下:
图片说明在第七次猜对之后直接跳出循环并结束了;大神给我简单解释说:在input上加, guess就是一个数值类型了,并且在当前循环中都是的; 你在 if int(guess)中这样使用
只是把输入的字符串变成了int 并没有赋值 ,此时guess还是字符串类型,你这种 guess = int(guess)
把转换成int的重新赋值在一个变量上才行.如果我输入40 本应该和随机的相等的,但是此时的40不是int

类型啊,字符串和int做比较,那怎么会相等呢."if ‘40’== 40,是这种形式了".
但是我不理解的是既然我的方法并没有让guess变成int型那代码是怎么运行并且还判断了大小了呢。
为此我有和我学Java的同学聊了一下 但是Java和Python语法上会有相差没有搞懂:

图片说明
现在就想请教一下大神 我这个是一个什么情况 ,第一次提问还是恳请大神讲解一下 本人是自学小白 只是大学学了一点编程
再补充一下: 就是我自己改的代码哪里一直没有跳出循环我一开始以为是缩进问题,但是我试过了并不是 而且我试着在print("答对了")下一行加上 break 结果我的代码就也能比较大小也能完美运行了,所以就对大神给我的解释更蒙了

我这个其实总共出现了两个问题吧一个是我的那种方法为什么不会跳出循环呢 第二个就是按照大神那样的改的话while 循环里 guess=int(input(""))和 if int(guess) 使用有什么区别呢

2个回答

首先,我也是自学小白,在看python从入门到实践,也就是python创始人写的书。你的问题我看了下,我自己写过后发现,兄弟,你在下面的if
语句中用了int(guess),那么上面while呢? 难道不应该是 while int(guess) != secret and tires < 8 : 吗?后面的你就不用改了
看我耐心的看了你的代码后,你看看我的代码,能在猜对了就退出,还能显示猜的次数,但是我这也有不明白的,我那个else为什么可以在哪个位置,不用缩进。我去,自己都把自己尴尬到了,你自己copy后运行一下(csdn中缩进我还是不会搞于是我就贴图了),猜对猜错都试一试,然后咱么两个小白互补一下图片说明
还有就是第三个if也可以是elif,亲测效果都一样。当然,你可别错过这条!!!!!!!!!!!!!!!!!!!!!!!!后面看其他代码时突然想到一个问题,就是else无意义,于是去掉了,然后发现运行结果一致,噗笑哭,所以图片里面的else没意义,完全可以去掉,不过如果想在完成游戏(无论是猜对还是猜错)都有over输出,就请一定要注意缩进。!!!!

weixin_44074810
宗文博 https://blog.csdn.net/weixin_44074810/article/details/88694460 这个是链接
大约一年之前 回复
weixin_44074810
宗文博 兄弟你可以加我QQ:1691598339我给你解释一下或者我一会把你的问题写一个博客放出来 你可以看一下 因为我不知道回复你消息怎么添加图片
大约一年之前 回复

while guess!=secret and tries<8,你这循环的条件就是不够8次,就算猜对了也会再次循环的啊

Python_Leaner
Python_Leaner 上一条回答没理解你的意思,你看啊,while循环是当满足条件时循环while之后的语句对吧,意思就是当猜的数字不等于随机数and变量tires(猜的次数)<8这两个条件都满足时,退出while循环,但是当他猜的数字=随机数字后,已经不满足while语句了,但仍没有退出循环,所以是你没理解意思啦。
大约一年之前 回复
Python_Leaner
Python_Leaner 兄弟,python会从0.1.2.3.4.5.6.7这样来运行8次,所以次、是足够的
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
这个猜数游戏中怎么将for循环的语句换成while循环语句

``` ```import java.util.Random; import java.util.Scanner; public class Chenwei_Guessnumebr{ static int w = 8; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Random ran = new Random(); int num = ran.nextInt(100)+1; for(;;){ System.out.println("1.开始猜数"); System.out.println("2.游戏参数设置"); System.out.println("9.退出"); Scanner sc=new Scanner(System.in); String choo =sc.next(); if (!choo.equals("1")&&!choo.equals("2")&&!choo.equals("9")){ //if条件语句 三种条件,限制情况. System.out.println("非法数据"); } else { if (choo.equals("1")) { int t = 1; for (t=1;t<w;t=t+1) { System.out.println("请输入你想猜测的数字"); Scanner scs=new Scanner(System.in); int n = scs.nextInt(); if (n>num) { System.out.println("猜的数字大了."); } else if (n<num) { System.out.println("猜的数字小了."); } else{ System.out.println("恭喜你猜对了,你的战斗力是x%" ); // ☆“缺一个计算战斗力的式子” break; } } if(t > w) //t(猜测次数)超过了w(设置的总次数) { System.out.println("超过次数,尚需努力"); break; } else { break; } } } if(choo.equals("2")){ System.out.println("请选择难度:"); System.out.println("1.简单"); System.out.println("2.一般"); System.out.println("3.困难"); Scanner scs = new Scanner(System.in); int u = scs.nextInt(); if (u==1) { w=8; //次数为8(简单) } else if (u==2) { w=6; //次数为6(一般) } else { w=4; //次数为4(困难) } } else { break; } } } } ``` ``` 同时缺少一个计算战斗力的式子 就是在答对的时候 “恭喜你猜对了,你的战斗力是x%"(x=1-n/8,n是猜中时的次数-1)

求助:猜数字游戏的问题

<div class="post-text" itemprop="text"> <p>我的数字游戏就差一点就成功了,但出于某种原因我被卡住了。我将变量存储在一个隐藏的表单中,但是每次页面被发送时,它都会重置数字,然后就永远无法得到正确的数字。有什么想法吗?我的代码在下面:</p> <pre><code>&lt;?php // generate a random number for user to guess $number = rand(1,100); if($_POST["guess"]){ // grab the user input guess $guess = $_POST['guess']; $numbe = $_POST['number']; if ($guess &lt; $number){ echo "Guess Higher"; }elseif($guess &gt; $number){ echo "Guess Lower"; }elseif($guess == $number){ echo "You got it!"; } echo "&lt;br /&gt;Random Number:".$number."&lt;br /&gt;"; echo $guess; } ?&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt; &lt;title&gt;Guess A Number&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;form action="&lt;?=$_SERVER['PHP_SELF'] ?&gt;" method="post" name="guess-a-number"&gt; &lt;label for="guess"&gt;Guess A Number:&lt;/label&gt;&lt;br/ &gt; &lt;input type="text" name="guess" /&gt; &lt;input name="number" type="hidden" value="&lt;?= $number ?&gt;" /&gt; &lt;input name="submit" type="submit" /&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> </div>

菜鸟跪求大神帮忙!!!猜数游戏

我编的程序字符测试显示乱码,我实在不知道问题在哪。。。。希望大神们帮帮忙!!在线等,急 //游戏界面菜单 //1 显示界面 System.out.println("请输入一个数"); while(true){ System.out.println("1 开始猜数"); System.out.println("2 游戏参数设置"); System.out.println("9 退出"); //2 读取输入 Scanner sc = new Scanner(System.in); int sel = sc.nextInt();//从键盘读取整数 if(sel==1){ System.out.println("开始游戏喽"); Scanner in = new Scanner(System.in); for (int i=1;i<9;i++){ int suiji = in.nextInt(); int shuru = (int)(Math.random()*100)+1; if (suiji<shuru){ System.out.println("小了"); }else if(suiji==shuru){ System.out.println("恭喜你猜对了,你的战斗力是"+i+"%"); }else if(suiji>shuru){ System.out.println("大了"); } System.out.println("超过次数,尚需努力!"); } }else if(sel==2){ System.out.println("1 难"); System.out.println("2 一般"); System.out.println("3 容易"); }else if(sel==9){ System.out.println("游戏退出"); //System.exit(0);//强制退出程序 break; }else{ System.out.println("请输入正确数字"); } } }//main }

c语言猜数游戏,为什么在循环中不能实现猜错了输出随机数在%d-%d之间呢

``` #include<stdio.h> #include<string.h> #include<iostream> #include <math.h> #include<time.h> #define CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) using namespace std; int randomnumber()//获取随机数 { srand((unsigned)time(NULL)); return rand() % 100 + 1; } int compare(int a, int b) { return (a > b) ? 2 : (b > a) ? 1 : 0;//1大了,2小了,0猜对了 } int main() { int a, b, c, i = 1; a = randomnumber(); cout << a << endl; puts("数字范围1-100,你有十次机会,输入你的数字吧"); for (i=0;i<11;i++) { int temp=100,num=0; scanf_s("%d", &b); c = compare(a, b); switch (c) { case 1:printf("在%d到%d之间",num,b); break; case 2:printf("在%d到%d之间", b, temp); break; case 0:puts("you are right"); goto end; } puts("再试试吧"); temp = b; num = b; } end: switch (i) { case 1:puts("天才"); break; case 2: case 3:puts("聪明"); break; case 4: case 5:puts("一个凡人"); break; case 6: puts("智商着急"); break; case 7: case 8:puts("笨"); break; case 9: case 10:puts("笨到家"); break; case 11:puts("我对你无语"); break; } return 0; } ``` 问题好像就出在循环里,temp,和num的值为什么被重置了

jsp猜数游戏,随机数生成

实现网页版猜数游戏,实现网页guess.jsp,中间是一个输入整数的文本输入框及一个猜数提交按钮, 其上是一行提示“请输入1-100之间的整数:”,其下是根据所猜数判断输出的“大了”、“小了”、 “猜中了”、“超过次数”的提示,最大猜测次数固定为5。 提示: 可以使用session保存生成的随机数,避免每次访问guess.jsp都生成新的随机数。

C语言 做了一个猜数游戏,如何在3次失败以后显示正确的数字printf应该加在哪里?

#include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> int main() { { printf("********************************\n I want to play a game with you\n********************************"); } int c; printf("\nChoose your Rank LV1~LV3:"); scanf_s("%d", &c); printf("\nYou have 3 chances"); int a, b; srand(time(NULL)); if (c == 1) { a = 1 + (rand() % 10); //get a number from 1~10// } if (c == 2) { a = 1 + (rand() % 100); // get a number from 1~100// } if (c == 3) { a = 1 + (rand() % 1000); //get a number from 1~1000// } int n = 0; while (a && n++ < 3) { printf("\nint a number:"); scanf_s("%d", &b); if (a == b) { printf("good job\n"); break; } if (n != 3) { if (b > a) printf("try a smaller number"); if (b < a) printf("try a bigger number"); } } getchar(); return 0; }

这是猜数游戏的部分代码,为什么会输入40显示大了,输入39显示小了

Scanner in = new Scanner(System.in); { for(int j = 1 ; j< 8; j++){ System.out.println("请输入一个整数:"); int value = in.nextInt(); int ran = (int)(Math.random()*100)+1; if (value > ran){ System.out.println("大了"); } else if (value < ran){ System.out.println("小了"); } else if (value == ran){ System.out.println("恭喜你猜对了!你的战斗力是"+j+"%");} }

人机猜数游戏,么么哒,小妹万分感谢

本人不才,编写的程序太简单,不符合要求,希望大神做一个复杂的,问题是:计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜 ,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。

用python编写猜数字游戏,遇到一个问题总解决不了,求助!

希望能在游戏过程中添加一个按“q”就能退出游戏的功能, 但是又和程序中只能输入数字的代码冲突, 就是希望,在游戏开始后,任何时候想退出游戏,按“q”就可以退出游戏, 但又不会和游戏中的try-except代码想冲突。 本人初学者,怎么想也解决不了,希望能有前辈指导。 ``` import random name = input("你好! 你的名字是什么?\n"); print("欢迎来到猜数字游戏 " + name.title()) print("我有一个数字在1到100之间, 你能在7次内猜到它吗?") random_num = random.randint(1, 100) time = 0 while time <= 7: try: num = int(input("输入一个数字:\n")) except ValueError as e: print("请输入有效数字") continue if num == random_num: break elif num < random_num: print("你的数字小了!") else: print("你的数字大了!") time += 1 if time <= 7: print("恭喜你,你赢了^_^.") else: print("别灰心,再来一次你可以的^_^") ```

Java,猜数字游戏,当捕获输入异常时会进行无限循环,求解

public class Csz { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Random r=new Random(); int a=r.nextInt(1000); System.out.println("---------猜数字游戏--------"); System.out.println("\t范围:1~1000"); System.out.println("请输入一个数字"); while(true){ try{ int b=sc.nextInt(); if(b>0&&b>a){ System.out.println("太大了,小一点"); }else if(b>0&&b<a){ System.out.println("太小了,大一点"); }else if(b>0&&b==a){ System.out.println("恭喜你,答对了"); break; }else if(b<0){ System.out.println("请输入正整数"); }else if(b>1000){ System.out.println("请输入1~1000的整数"); } }catch(InputMismatchException e){ System.out.println("请输入数字"); } } } } public class Csz { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Random r=new Random(); int a=r.nextInt(1000); System.out.println("---------猜数字游戏--------"); System.out.println("\t范围:1~1000"); System.out.println("请输入一个数字"); while(true){ try{ int b=sc.nextInt(); if(b>0&&b>a){ System.out.println("太大了,小一点"); }else if(b>0&&b<a){ System.out.println("太小了,大一点"); }else if(b>0&&b==a){ System.out.println("恭喜你,答对了"); break; }else if(b<0){ System.out.println("请输入正整数"); }else if(b>1000){ System.out.println("请输入1~1000的整数"); } }catch(InputMismatchException e){ System.out.println("请输入数字"); } } } }

用一个JSP页面编写一个猜数字游戏

系统内部生成一个0-100之间的随机数,提供一个表单让用户来猜这个数字是多少,若猜大了,出现“大了”的提示,若猜小了,出现“小了”的提示,直到用户猜到正确的数字时,提示“猜对了!”,并统计用户猜了几次才猜对。 我的代码: **<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <。html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <%! public class bean{ int answer; int guessnum; int count; int state; public void init(){ double d=Math.random(); d=d*100; answer=(int)d; count=0; } } %> <% bean b= new bean(); b.init(); session.setAttribute("state", 0); session.setAttribute("answer",b.answer); switch(Integer.valueOf((session.getAttribute("state").toString()))){ case 0:{ session.setAttribute("state", 1); %> 现在已经准备好了一个随机数,来猜一猜吧。correct answer:<%=session.getAttribute("answer")%>//这个是看看正确答案猜的对不对 请输入一个0-100的整数: <。input name="guess" type="text"><。input type="button" value=提交 onclick="submit()"> <% break; } case 1:{ b.guessnum=Integer.parseInt(request.getParameter("guess")); b.count++; if(b.guessnum<b.answer){ %> 你输入的数小了,再输入一个比它大的数:<。input name="guess" type="text"><。input type="button" value=提交 onclick="submit()"> <% }else if(b.guessnum>b.answer){ %> 你输入的数大了,再输入一个比它小的数:<。input name="guess" type="text"><。input type="button" value=提交 onclick="submit()"> <% }else{ %> 恭喜你!猜对了!你一共猜了<%= b.count %>次,再来一次吗?<。input type="button" value=是 onclick="submit()"> <。input type="button" value=否 onclick="Window.close()"> <% session.setAttribute("state", 0); } } } %> <。/html>** 因为部分代码无法显示,因此在他们之间加个句号 每次输入了一个数,提交后,重新生成了一个新的随机数,并且submit()后没有按照我的预想进行到下一个case:1{...}中的判断代码。还有init()后设置session.setAttribute("state", 1),会出现error。不懂,求指导!该如何修改,或者用java bean?

求大神看看人机猜数游戏中,每从新猜数,结果都不同

#include<stdio.h>#include<stdlib.h>#include<time.h>#include<math.h>struct num_type{ int g; int i; int k;}p[1];int menu();int game();int save();void main(){ for(;;) { switch(menu()) { case 1:game();break; case 2:exit(0); } }}int menu() /*菜单程序*/{ int d; printf("***************************\n"); printf("**欢迎进入游戏**\n"); printf("**1.开始**\n"); printf("** 2.退出**\n"); printf("**好运!!!**\n"); printf("***************************");do { printf("\n请选择1或2:"); scanf("%d",&d); if(d!=1&&d!=2) printf("Erroe,again!\n"); printf("\n");} while(d!=1&&d!=2); return (d);} int game() /*游戏程序*/ { struct num_type p[1]; int w[4],b[4],g,m=0,n=0,i; int j,a,f,r,c,l,k,h,o,y,q,z; //srand((unsigned)time(NULL)); srand(time(NULL)); z=rand(time(NULL)); for(j=0;j<1;j++) {if((rand()%10000)>=1000&&(rand()%10000)<=9999) a=rand()%10000;} printf("机器输入四位数****\n"); printf("\n"); printf("请输入你猜的四位数:"); scanf ("%d",&g); {r=g/1000; c=(g/100)%10; l=(g/10)%10; k=g%10; w[0]=r; w[1]=c; w[2]=l; w[3]=k;} {h=a/1000; o=(a/100)%10; y=(a/10)%10; q=a%10; b[0]=h; b[1]=o; b[2]=y; b[3]=q;} for(j=0;j<4;j++) for(i=0;i<4;i++) { if(w[j]==b[i]) {m++;} if(w[j]==b[i]&&j==i) n++; } printf("你猜的结果是"); printf("%dA%dB\n",m,n); for(f=0;f<1;f++) { p[f].g=g;p[f].i=m; p[f].k=n;save(); } if(n==4) { printf("****你赢了*****\n"); printf("\n~~********~~\n"); } return(0); } int save() /*保存程序*/ { FILE *fp; int f; if((fp=fopen("d:\\data.dat","wb"))==NULL) { printf("can not open file\n"); return(0); } for (f=0;f<1;f++) fwrite (&p[f],sizeof(struct num_type),1,fp); fclose(fp); }

c语言程序猜数字游戏程序

#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <time.h> #include <stdbool.h> int main(void) { unsigned int max = 3; unsigned int guess = 0; unsigned int chones = 0; unsigned int limit = 20; char answer = 'n'; printf("这是一个猜数字游戏!游戏开始时!\n"); srand(time(NULL)); while(true) { chones = 1 + rand() % limit; printf("这是一个猜数字游戏(范围1~20)\n"); for( unsigned int count = max ; count > 0 ; count-- ) { printf("你还有%u 次机会!\n", count); scanf("%u",&guess); if(guess == chones) { printf("恭喜你猜对了!\n"); break; } if(guess < 1||guess > 20) printf("请输入正确范围(1~20)\n"); else printf("对不起!你猜错了!\n"); } printf("程序结束!你没有猜对!这个数是:%u 继续? (Y or N)\n",chones); scanf(" %c", &answer); if(tolower(answer) == 'n') break; } printf("程序结束!\n"); return 0; } 这是一个猜数字游戏,共有3次机会,3次猜不到提示幸运数字并询问是否继续 问题1: 假如第一次猜对了,执行了break; 那么程序跳转到哪? 问题2: 幸运数字是怎么随着所猜的次数变化而变化的? 问题3:这两行语句unsigned int max = 3;for( unsigned int count = max ; count > 0 ; count-- )改为unsigned int count = 0;for(unsigned int i = 1 ; i <= count ; i++)后 为什么三次猜不对继续猜的时候出现问题? 望大神指教!(纸上得来终觉浅,绝知此事要躬行)

跪求解答!一道关于C语言的题目

1. 电脑随机产生1000—9999之间的数字(包括1000、9999); 提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数 2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分; 3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下; 4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。  帮助内容及扣分细则: . 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。 ——扣当前分数的1/10 . 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10 #include #include int sort = 100; int main() { int in = 0; int r = 0; while (1) { r = rand(); while (1000 <= r && r <= 9999) { printf("please enter data:"); scanf("%d", &in); if (in > r || in < r) //如果大或小,减去当前分数的1/10 sort -= sort / 10; printf("当前分数%d\n", sort); } } return 0; } 同问0 | 浏览16 | 收藏0 | 1. 电脑随机产生1000—9999之间的数字(包括1000、9999); 提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数 2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分; 3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下; 4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。  帮助内容及扣分细则: . 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。 ——扣当前分数的1/10 . 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10 #include #include int sort = 100; int main() { int in = 0; int r = 0; while (1) { r = rand(); while (1000 <= r && r <= 9999) { printf("please enter data:"); scanf("%d", &in); if (in > r || in < r) //如果大或小,减去当前分数的1/10 sort -= sort / 10; printf("当前分数%d\n", sort); } } return 0; } 同问0 | 浏览16 | 收藏0 |

用C语言实现一个猜数游戏,用递归实现

用C语言实现一个猜数游戏,随机产生一个数,用户每次猜,告诉它大了或者小了,知道猜对,用递归实现

编写一个猜数字的游戏的问题,根据输入判断大小,怎么用C语言的程序的过程实现的

Problem Description A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" 。 问B猜n次可以猜到的最大数。 Input 第1行是整数T,表示有T组数据,下面有T行 每行一个整数n (1 ≤ n ≤ 30) Output 猜n次可以猜到的最大数 Sample Input 2 1 3 Sample Output 1 7

PHP猜数

<div class="post-text" itemprop="text"> <p>This is a random number guessing game between 1 and 100.</p> <p>I am stuck on the guessing number part. The code doesn't work, whatever number I put it just show me the message "Your number is lower!".I need help.</p> <p>This is what I have so far.</p> <pre><code>&lt;?php $x = rand(1, 100); $num = ''; if (isset($_POST['submit'])) { if ($num &lt; $x) { echo " Your number is lower! &lt;br /&gt;"; } elseif ($num &gt; $x) { echo " Your number is higher! &lt;br /&gt;"; } elseif ($num == $x) { echo " Congratulations! You guessed the hidden number. &lt;br /&gt;"; } else { echo " You never set a number! &lt;br /&gt;"; } } ?&gt; &lt;p&gt; &lt;form action="" method="post"&gt; &lt;input type="text" name="num"&gt; &lt;button type="submit" name="submit"&gt;Guess&lt;/button&gt; &lt;button type="reset" name="Reset"&gt;Reset&lt;/button&gt; &lt;/form&gt; &lt;/p&gt; </code></pre> </div>

抽象类变量没有赋初值 但是在普通方法中赋值了 为什么在子类中使用这个变量的时候一直输出是0

public abstract class GuessGame { int num; public abstract void showMessage(); public abstract void getUserInput(); public int getNum(){ num=(int)(Math.random()*100);//将产生的随机数赋值给num return num; } } 子类使用num这个变量怎么都得不到随机数 而是始终得到的是0 public class Guess extends GuessGame{ int a ; public void showMessage() { System.out.println("系统设置的数字是:"+num); if(a<num){ System.out.println("输入的数字小"); } if(a>num){ System.out.println("输入的数字大"); } if(a==num){ System.out.println("猜中了!"); } System.out.println("请问是否继续猜数"); System.out.println("YES|NO"); Scanner input = new Scanner(System.in); if(input.next().equals("YES")){ getUserInput(); showMessage(); } else{ System.out.println("游戏结束"); } } public void getUserInput() { Scanner sc = new Scanner(System.in); System.out.println("请输入您猜测的数字:"); a = sc.nextInt(); } } 测试类 public class test { public static void main(String[] args) { Guess g = new Guess(); g.getUserInput(); g.showMessage(); } } 结果如下 请输入您猜测的数字: 55 系统设置的数字是:0 输入的数字大 请问是否继续猜数 YES|NO YES 请输入您猜测的数字: 22 系统设置的数字是:0 输入的数字大 请问是否继续猜数 YES|NO

java中出现一个嵌套问题

import java.util.Random; import java.util.Scanner; public class Chenwei_GuessNumber{ static int m=8; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); Random ran = new Random(); int number = ran.nextInt(100)+1; // 产生随机数 for (;;) { System.out.println("1.开始猜数"); System.out.println("2.游戏参数设置"); System.out.println("9.退出"); Scanner sc=new Scanner(System.in); String choo =sc.next(); if (!choo.equals("1")&&!choo.equals("2")&&!choo.equals("9")) { System.out.println("属于非法输入"); } else { if (choo.equals("1")) { int guess; // 用户猜的数字 int count = 0; // 猜测次数 System.out.println("有一个0到100之间的整数,你猜是什么?"); do { guess = input.nextInt(); if (number < guess) { System.out.println("大了,再猜"); > count++; } else if (number > guess) { System.out.println("小了,再猜"); count++; } else { count++; break; } if (guess > count){ System.out.println("次数超过"); break; } else if(guess <= count) { {break;} } else if(choo.equals("2")){ System.out.println("请选择难度:"); System.out.println("1.简单"); System.out.println("2.一般"); System.out.println("3.困难"); Scanner ssc = new Scanner(System.in); int n = ssc.nextInt(); if (n==1) { m=8; } else if(n==2) { m=6; } else { m=4; } } else {break;} } } while (true);{ System.out.println("这个数字是" + number); String count; System.out.println("您猜的次数" + count); } } } } // 根据猜测次数给出评价 if (count >= 1 && count <= 3) { System.out.println("厉害啊,兄弟!"); } else if (count >= 4 && count <= 6) { System.out.println("不错,再接再厉!"); } else { System.out.println("菜的真实!"); } input.close(); } } ``` ``` ![图片说明](https://img-ask.csdn.net/upload/201903/26/1553608382_937235.png) ![图片说明](https://img-ask.csdn.net/upload/201903/26/1553608275_954466.png) eclipse中 Syntax error, insert "while ( Expression ) ;" to complete DoStatement Syntax error on token "}", { expected after this token ![图片说明](https://img-ask.csdn.net/upload/201903/26/1553612898_773671.png) 删除了break的分号 底下的count报错。 pss: 现在是这样的 ![图片说明](https://img-ask.csdn.net/upload/201903/26/1553614027_20697.png)

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

立即提问
相关内容推荐