广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2965 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
koinouta 手机
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x6 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 猜数字(乱数问题)
请问一下
我程式写出来了
可是为何答案永远都是42 ??
哪里写错了??

题目是
从1~1000中随机取一个
让使用者猜...还要显示总共猜了几次...

=====================================
#include <stdio.h>
#include <stdlib.h>

int main()
{
..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2005-10-20 01:37 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

while (a=b);
这边就不对啦....
你假如第一次猜错的话...
c的答案是2吧...
42??
类似题=>http://bbs.mychat.to/read.php?tid=248464
自己改吧...


[ 此文章被唐老鸭在2005-10-20 03:56重新编辑 ]


没东西可以抓
献花 x0 回到顶端 [1 楼] From:美国 | Posted:2005-10-20 03:49 |
koinouta 手机
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x6 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

while (a=b);
请问要改成什么??

我改成
while (a==b);
会有问题....程式执行不正常..

我后来有写出来了...
====================
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
     int a,b,c=0;
     printf("Please Guess The Number :\n");
     srand(time(NULL));
     b=(rand()%999)+1;      

     do      {
     scanf("%d",&a);
           if (a>b)      {
                 printf("你猜的数字比答案大喔!!!\n");
                 c++;
           }
           if (a<b)      {
                 printf("你猜的数字比答案小喔!!!\n");
                 c++;
           }
           if (a==b){
                 break;
           }
     }      while (a=b);
     
     c++;
     printf("恭喜您!!!猜中了!!!\n您总共猜了%d!!!\n",c);

     return 0;
}
===============

可是我还是不知道.......为何一开始写的那个版本....答案永远都会是42...?


献花 x0 回到顶端 [2 楼] From:台湾中华电信 | Posted:2005-10-20 23:18 |
唐老鸭
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x230
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

第一...
你没有用srand(time(NULL));
所以程式执行时....
rand()取出来的永远会一样....
原来你说的42是指b值....
我还以为你在说c值....

第二....
我之前把你的while (a=b)看成while (a==b)了....
因为不会有人这样写 表情 .....
执行while (a=b)是无穷回圈....
跟写成while(1)是一样的....
虽然你有用break来跳出回圈....
但是正常的写法应该是while (a!=b)吧....
利用回圈的判断来跳出....
当然你的程式还要稍作修改才行....
只是你要那样写也是可以啦 表情 ....


没东西可以抓
献花 x0 回到顶端 [3 楼] From:美国 | Posted:2005-10-21 00:06 |
koinouta 手机
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x6 鲜花 x140
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

原来如此~谢谢大大的详细说明!!


献花 x0 回到顶端 [4 楼] From:台湾中华电信 | Posted:2005-10-21 16:58 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.055769 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言