注册 登录
编程论坛 C++教室

要求用户输入一组数,输出信息说明期中有多少个负数。

hanrui427 发布于 2010-07-25 17:40, 4331 次点击
#include <iostream>
int main()
{
 std::cout<<"Please input your numbers:"<<std::endl;
 int sum=0,val;
 while(std::cin>>val)
 {
  if(val<0)
  {++sum;}                  
                     }
 std::cout<<"The sum of the negetive numbers is"<<sum<<std::endl;
 system("pause");
 return 0;
}
这个程序我又三点疑问,第一为什么这里定义一个变量val就可以输入很多数?
第二,while的()中为什么可以写cin语句?
第三,为什么程序运行的时候等你将所有数字输入后要输一个其他字符程序才能显示结果呢,是否有输完数字直接打换行符显示结果的方法?
请各位大虾回答,感激不尽!
16 回复
#2
hanrui4272010-07-25 17:49
是不是问题太简单了,没有人屑于回答啊,求大虾帮忙!
#3
mxs8102010-07-25 18:46
你的所有疑问都在这一句上吧:while(std::cin>>val)
你定义了一个整形val作为cin的接收值,cin在接收到一个输入数值的时候会有返回值,就可以作为while的条件语句啦,
当接收到了整形的时候,cin返回来成功,while继续循环;
当接收到的不是整形的时候 ,cin返回失败,跳出输入过程;

你的第三个疑问我也不清楚,哈哈
#4
hanrui4272010-07-25 18:59
回复 3楼 mxs810
谢谢,那就是说这种题目可以不需要用数组了?嘿嘿,挺好的,学到东西了!
#5
mxs8102010-07-25 19:02
回复 4楼 hanrui427
你要是不需要存储这些负数,只是统计数目的话,不用数组的啊,哈哈
#6
hanrui4272010-07-25 19:16
回复 5楼 mxs810
嗯,明白了,谢谢你啊!
#7
tianxiao1102010-07-25 19:28
你们知道 system("pause");
这句是什么意思吗?  有什么作用?  让小弟也学习学习;
#8
tww1248499802010-07-25 20:04
这个std::是什么意思?
#9
mxs8102010-07-25 20:12
回复 8楼 tww124849980
名字空间吧~~

[ 本帖最后由 mxs810 于 2010-7-25 20:13 编辑 ]
#10
JINyuanbao2010-07-25 22:37
std表示标准命名空间。因为#include <iostream>是新版本不再是以前的#include <iostream.h>。而像这种不带.h的都是需要引入命名空间的。像#include<fstream>  #include<string> 很多。而你现在用的#include <iostream>又是属于这个空间下的。所以必需使用std来引用。还有别的很多命名空间可以自己到Google了解。而且我们也可以自己定义命名空间。

至于你那个为什么要输入一个字符才跳出是因为,你输入都是数字的话while条件始终成立。其实你只要输入的不是数字它就会跳出循环。你把cin写到while判断里,个人感觉这样是很不好的。虽然语法上可以通过
#11
JINyuanbao2010-07-25 22:39
就像我们使用某个类的静态函数时,我们可以这样调用 类名::函数名
#12
windyfzz2010-07-25 22:55
回复 6楼 hanrui427
防止控制台一闪而过,可以看到显示器输出的内容
#13
pangding2010-07-26 00:48
https://bbs.bccn.net/viewthread.php?tid=313716

前两天刚有一人问了个类似的问题,那里有一个链接还是不错的。
#14
slamjam2010-07-27 15:04
system("pause");
  调试 运行是  程序执行到return 0; 时会直接推出  这样你什么结果都看不到, 当然排除一些眼里够好朋友,  加上system("pause");可以让程序在推出前 暂停,   有些人用在 末尾 加上 getch() 达到类似的 效果
#15
b8705162010-07-27 17:25
这个程序我又三点疑问,第一为什么这里定义一个变量val就可以输入很多数?
这个就算把VAL换成其他的都可以,比如A,都行,这里只相当于是一个整数而已,对于可以输入很多数和VAL没关系,而是while(cin>>val),这句话的意思是当输入整数的时候执行下面语句。这就是回答你的第三个问题了。当你输入一个字符,不是整数的时候,跳出WHILE循环了。程序结束
#16
ToBeOOP2010-07-28 14:36
val是int型,输入字符的话,就会跳出循环了...
#17
清雨轩2015-05-02 15:19
回复 7楼 tianxiao110
其实也没有什么,就是把“Please enter any key to continue”翻译成了中文
1