+ -
当前位置:首页 → 问答吧 → C++primer 第四版习题1.17

C++primer 第四版习题1.17

时间:2011-12-16

来源:互联网

C/C++ code
#include <iostream>
int main()
{
    int amount=0,value;
    while(std::cin>>value)
    {
        if(value<=0)
        {
            ++amount;
        }
    }
    std::cout<<amount<<std::endl;
    return 0;
}

我写的代码应该没问题,但是在DOS框中的时候,我输入了数字之后,按回车键,却没有出现结果,就是往下跳一行,一直往下跳。

作者: cbzjzsb123   发布时间: 2011-12-16

怎么才能然结果出来啊?

作者: cbzjzsb123   发布时间: 2011-12-16

随便输入一个不是数字的就可以了

作者: mingliang1212   发布时间: 2011-12-16

引用 2 楼 mingliang1212 的回复:

随便输入一个不是数字的就可以了
果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?

作者: cbzjzsb123   发布时间: 2011-12-16

引用 3 楼 cbzjzsb123 的回复:

引用 2 楼 mingliang1212 的回复:

随便输入一个不是数字的就可以了
果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?

因为你接收的value是int型的,输入一个非整型就跳出while了

作者: shenxinji   发布时间: 2011-12-16

引用 3 楼 cbzjzsb123 的回复:

引用 2 楼 mingliang1212 的回复:

随便输入一个不是数字的就可以了
果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?

因为不是数字的话返回0 你循环条件不足就退出循环了啊小哥。
想让执行窗口长期存在的话在末尾加上cin.get();或者ctrl f5 执行。

作者: jordancar   发布时间: 2011-12-16

引用 3 楼 cbzjzsb123 的回复:
引用 2 楼 mingliang1212 的回复:

随便输入一个不是数字的就可以了
果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?


你用的应该是vs2010吧。。
他显示完就结束程序了。在return之前加上system("pause");就可以暂停了。

作者: mingliang1212   发布时间: 2011-12-16

while()循环一直都是在执行,程序中缺少一个条件跳出whle()循环,
如加上:
  while(amount==0&&std::cin>>value)

那么当输入负数的时候自然输出了。

作者: reylen   发布时间: 2011-12-16

C/C++ code

#include <iostream>
int main()
{
    int amount=0,value;
    while(std::cin>>value)
    {
        if(value<=0)
        {
            ++amount;
        }
    }
    std::cout<<amount<<std::endl;
    system("pause");
    return 0;
}


作者: neolyao   发布时间: 2011-12-16