C++primer 第四版习题1.17

cbzjzsb123 2011-12-16 10:12:41
#include <iostream>
int main()
{
int amount=0,value;
while(std::cin>>value)
{
if(value<=0)
{
++amount;
}
}
std::cout<<amount<<std::endl;
return 0;
}
我写的代码应该没问题,但是在DOS框中的时候,我输入了数字之后,按回车键,却没有出现结果,就是往下跳一行,一直往下跳。
...全文
85 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Karl_S 2011-12-17
  • 打赏
  • 举报
回复
#include <iostream>
int main()
{
int amount=0,value;
while(std::cin>>value)
{
if(value<=0)
{
++amount;
}
else // 跳出循环。
break; // 不然会死循环

}
std::cout<<amount<<std::endl;
return 0;
}
如此美丽的你 2011-12-16
  • 打赏
  • 举报
回复

#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;
}

reylen 2011-12-16
  • 打赏
  • 举报
回复
while()循环一直都是在执行,程序中缺少一个条件跳出whle()循环,
如加上:
while(amount==0&&std::cin>>value)

那么当输入负数的时候自然输出了。
iamnobody 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cbzjzsb123 的回复:]
引用 2 楼 mingliang1212 的回复:

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

你用的应该是vs2010吧。。
他显示完就结束程序了。在return之前加上system("pause");就可以暂停了。
小布 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cbzjzsb123 的回复:]

引用 2 楼 mingliang1212 的回复:

随便输入一个不是数字的就可以了
果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?
[/Quote]
因为不是数字的话返回0 你循环条件不足就退出循环了啊小哥。
想让执行窗口长期存在的话在末尾加上cin.get();或者ctrl f5 执行。
黯然 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cbzjzsb123 的回复:]

引用 2 楼 mingliang1212 的回复:

随便输入一个不是数字的就可以了
果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?
[/Quote]
因为你接收的value是int型的,输入一个非整型就跳出while了
cbzjzsb123 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mingliang1212 的回复:]

随便输入一个不是数字的就可以了
[/Quote]果然,为什么啊?怎么结果显示了一秒中就自动消失了啊?
iamnobody 2011-12-16
  • 打赏
  • 举报
回复
随便输入一个不是数字的就可以了
cbzjzsb123 2011-12-16
  • 打赏
  • 举报
回复
怎么才能然结果出来啊?

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧