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

问题描述

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

#include
#include
#include
#include
#include
int main(void)
{
unsigned int max = 3;
unsigned int guess = 0;
unsigned int chones = 0;
unsigned int limit = 20;
char answer = 'n';
printf("这是一个猜数字游戏!游戏开始时!
");
srand(time(NULL));

while(true)
{

    chones = 1 + rand() % limit;
    printf("这是一个猜数字游戏(范围1~20)
");
    for(  unsigned int count = max ; count > 0 ; count-- )
    {
    printf("你还有%u 次机会!
", count);
    scanf("%u",&guess);
    if(guess == chones)
        {
        printf("恭喜你猜对了!
");
        break;
        }

     if(guess < 1||guess > 20)
    printf("请输入正确范围(1~20)
");
    else
    printf("对不起!你猜错了!
");
    }

    printf("程序结束!你没有猜对!这个数是:%u 继续? (Y or N)
",chones);
    scanf(" %c", &answer);
     if(tolower(answer) == 'n')
    break;
}
    printf("程序结束!
");
    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++)后
为什么三次猜不对继续猜的时候出现问题?

望大神指教!(纸上得来终觉浅,绝知此事要躬行)

解决方案

问题1:break跳出的当前循环体,也就是for循环,接着执行的是打印 printf("程序结束!你没有猜对!这个数是:%u 继续? (Y or N)
",chones);
问题2:每一次的while循环产生一个随机幸运数字,三次猜测的是同一个幸运数字。
问题3:改为unsigned int count = 0;for(unsigned int i = 1 ; i <= count ; i++)后,count为0,for循环根本不执行。

解决方案二:

一.题目:猜数字游戏
???功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了,还是小了,继续猜,直到猜到,给出所用时间、次数和评语(要求评语多样性、滑稽)。
???界面要求:简洁
?
二.设计概要
该程序是由:??????1.生成随机数函数?......
答案就在这里:猜数字游戏(c语言程序)
----------------------

解决方案三:

假如第一次猜对了,执行了break; break 语句的功能是跳出当前的循环,所以猜对后会直接退出程序。输出的提示:恭喜你猜对了! 估计是看不到的,因为没有 getch() 之为类的语句。

解决方案四:

问题1: 假如第一次猜对了,执行了break; 那么程序跳转到哪?

 while(1)
{
    //do something...
    break;  //此处跳出while循环
}

while(1)
{
    for(int i = 1; i < 10; ++i)
    {
        //do something...
    }

    //do something...
    break;  //此处跳出while循环,因为for循环并没有把break包含在内
}

while(1)
{
    for(int i = 1; i < 10; ++i)
    {
        //do something...
        break;  //跳出for循环
    }

    //do something...
    break;  //跳出while循环
}

//始终记住跳出的是包含它(break)最近的循环,还有可以搜下contiune的区别

问题2: 幸运数字是怎么随着所猜的次数变化而变化的?
你可以搜下srand(time(NULL));,使用和不使用的时候会对rand()造成什么效果

 问题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++)后
为什么三次猜不对继续猜的时候出现问题?
for(  unsigned int count = 0 ; count < max; count++ )
printf("你还有%u 次机会!
", max - count);



时间: 2025-01-01 19:23:05

c语言程序猜数字游戏程序的相关文章

c++编写猜数字游戏如何控制布尔值不让程序进入死循环?

问题描述 c++编写猜数字游戏如何控制布尔值不让程序进入死循环? 游戏规则:系统随机出一个三位数,例如1.2.3,假设你猜1.3.2,那么系统则给与2,1.2代表数字和位置相对,1代表数字对而位置不对,0代表位置和数字都不对.关键是怎么用布尔值控制0-9这些数字且在比较的时候不让程序进入死循环呢? 解决方案 思路说下:首先把这三位数按个.十.百 分别存入到一个数组中a[0] = 个, a[1] = 十, a[2]= 百, 然后对你猜的数也分成个十百,分两次比较: 第一次:比较该位上的数是否完全匹

猜数字游戏及自动解猜数字程序

都是寂寞惹得祸...网络故障已经四天了,强烈谴责华数网通这种低效率的行为(好吧,谴责有个屁用). 实在无聊,于是写了一个猜数字游戏:随机生成一个[0, 99]之间的整数,如果猜得小了就显示 Too small,大了显示 Too big,否则显示 You are right.作为添头,前面会以英文序数词输出 The first time, The second time... (setf *random-state* (make-random-state t)) (do ((target (ran

go语言实现猜数字小游戏的方法_Golang

本文实例讲述了go语言实现猜数字小游戏的方法.分享给大家供大家参考.具体分析如下: 随机生成一个数字,输入一个数字看是否匹对,匹配则结速,反之提示是大了还是小了 复制代码 代码如下: package main import (     "bufio"     "fmt"     "math/rand"     "os"     "strconv"     "time" ) var (  

java源码-这个编写猜数字游戏如何编写啊,没有思路

问题描述 这个编写猜数字游戏如何编写啊,没有思路 编写个小程序,游戏,木有思路,希望大神求教????????????????????????求源代码 解决方案 import java.util.InputMismatchException; import java.util.Scanner; public class Main { public static void main(String[] args) { // 产生一个随机数 int number = (int) (Math.random

C++项目参考——猜数字游戏

[项目-猜数字游戏]通过本题学习一些系统函数. 随机产生一个1000内的数字,要求用户猜测这个整数.输入一个猜测想的整数,判断是否与产生的随机数相等,由屏幕显示判断结果.如果猜得不对,给出"大了"或"小了"的提示,直到猜出这个数为止.(可以再加一个要求,猜了几次才得到正确结果.) 参考解答: #include <iostream> #include<ctime> #include<cstdlib> using namespace

新手 帮忙 网页-用一个JSP页面编写一个猜数字游戏

问题描述 用一个JSP页面编写一个猜数字游戏 系统内部生成一个0-100之间的随机数,提供一个表单让用户来猜这个数字是多少,若猜大了,出现"大了"的提示,若猜小了,出现"小了"的提示,直到用户猜到正确的数字时,提示"猜对了!",并统计用户猜了几次才猜对. 我的代码: **<%@ page language="java" import="java.util.*" pageEncoding="U

您好!我想问用我做了个猜数字游戏, 界面控制数字范围怎么弄

问题描述 您好!我想问用我做了个猜数字游戏, 界面控制数字范围怎么弄 您好!我想问用我做了个猜数字游戏, 界面控制数字范围怎么弄,就是编出两个输入框,数字范围我随时可以改,然后我在那个范围内猜数,能帮帮我不!非常感谢! 解决方案 a,b是你输入的值math.random()*math.abs(b-a)+(a>b?b:a) 解决方案二: 不知道你要表达什么意思,是要猜一个数还是要猜这个数在不在范围内. 解决方案三: 用java做 要猜出在一个范围内系统随机定的数,但范围是在界面里的输入框由我自己输

printf-请帮忙看下猜数字游戏,刚学,谢谢

问题描述 请帮忙看下猜数字游戏,刚学,谢谢 #include #include #include void main() { srand(time(0)); int r=rand()%100+1; int i; int d; scanf("%d",&i); d=0; while (i!=r) { if(i>r) printf("da"); if(i<r) printf("xiao"); d++; } printf("

Python版的文曲星猜数字游戏代码_python

复制代码 代码如下: # -*- coding: utf-8 -*- import random #数字类class NumberItem:     #数字个数    _GUESS_NUMBER_COUNT_ = 4     def __init__(self):        self._num_ = []     #长度是否标准        def IsFormat(self):        return self._num_.__len__() == self._GUESS_NUMBE