首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学者再请jixingzhong或其他高手修改代码

2012-02-29 
菜鸟再请jixingzhong或其他高手修改代码jixingzhong(瞌睡虫·星辰)()信誉:102Blog2007-1-3012:16:54得分:15

菜鸟再请jixingzhong或其他高手修改代码
jixingzhong(瞌睡虫·星辰)   (   )   信誉:102         Blog     2007-1-30   12:16:54     得分:   15    
 
 
     
供参考一个:

#include   <string>
#include   <sstream>
#include   <iostream>
#include   <cstdlib>
#include   <cstdio>

using   namespace   std;

int   main   ()
{
        const   float   sui=25.5;
        float   cai;
        cout < < "请从键盘输入你猜的岁数: ";  
   
        in:   string   tmp;
                getline(cin,   tmp);
                while(tmp.find_first_not_of( ".0123456789 ")   !=   string::npos)
                {
                        cout < < "你输入的数据有误,请确认,并重新输入! " < <endl;
                        cout < < "请从键盘输入你猜的岁数: ";  
                        getline(cin,   tmp);
                }        
                istringstream     str(tmp);
                str> > cai;
       
                while(cai <0)
                {
                        cout < < "时光能倒流吗?   请重新输入你猜的岁数: ";  
                        goto   in;
                }
                if(cai==sui)
                        cout < < "     对!岁数是 " < <cai < <endl < <endl;
                if(cai> sui)
                {
                        cout < < "过大了。 " < <endl < <endl;
                        goto   in;
                }
                if(cai <sui&&cai> =0)
                {
                        cout < < "小了。 " < <endl < <endl;
                        goto   in;
                }
        system( "PAUSE ");
        return   0;
}
 
       
以上回复解决了我希望解决的死锁问题,领教受益,诚表谢意。还希望再指点修改,因为以上修改产生了新的不如意:第一次输入数据后,要按两次回车键才输出结果;之后每次输入数据,第一次回车后输出与实际相反的提示。



   
   


[解决办法]
if(cai==sui)
别的问题先不说,这句话是有问题的,浮点数是不能直接做相等比较的,应改为
if (cai - sui < 1.0e-5)

[解决办法]
竟然看到了goto .
[解决办法]
while(cai <0)
{
cout < < "时光能倒流吗? 请重新输入你猜的岁数: ";
goto in;
}

感觉if就够了啊。
[解决办法]
这个代码我调试过了,可以得出正确结果

#include <string>
#include <sstream>
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

int main ()
{
const float sui=25.5;
float cai;
cout < < "请从键盘输入你猜的岁数: ";

in: string tmp;
//getline(cin, tmp);
cin> > tmp;
while(tmp.find_first_not_of( ".0123456789 ") != string::npos)
{
cout < < "你输入的数据有误,请确认,并重新输入! " < <endl;
cout < < "请从键盘输入你猜的岁数: ";
getline(cin, tmp);
}
istringstream str(tmp);
str> > cai;

while(cai <0)
{
cout < < "时光能倒流吗? 请重新输入你猜的岁数: ";
goto in;
}
if(cai==sui)
cout < < " 对!岁数是 " < <cai < <endl < <endl;
if(cai> sui)
{
cout < < "过大了。 " < <endl < <endl;
goto in;
}
if((cai <sui) && (cai> =0))
{
cout < < "小了。 " < <endl < <endl;
goto in;
}
system( "PAUSE ");
return 0;
}

[解决办法]
//getline(cin, tmp);
cin> > tmp;
......

热点排行