练习1-17:
Write a program to ask the user to enter a series of numbers.
Print a message saying how many of the numbers are
negative numbers.
自己写的代码如下:
#include <iostream>
int main()
{
int num = 0 ,val;
while (std::cin>>val)
{if (val < 0)
num += 1;
}
std::cout<<"The number of nagetive is "<<num<<std::endl;
return 0;
}
编译后运行正常,不过输入的时候若输入一个小数程序便会马上终止键盘输入,给出结果。如果输入的小数是负数,这个数也不会被记到结果里去。想了一下,明白这是因为输入数值类型和定义的不符了。
据此推理,如果输入大于32767或小于-32768的数,应该也会得到这样的结果。但试过以后,发现在此环境下整形 int的 取值范围为-2147483648-2147483647,说明字长是32位的。
Write a program to ask the user to enter a series of numbers.
Print a message saying how many of the numbers are
negative numbers.
自己写的代码如下:
#include <iostream>
int main()
{
int num = 0 ,val;
while (std::cin>>val)
{if (val < 0)
num += 1;
}
std::cout<<"The number of nagetive is "<<num<<std::endl;
return 0;
}
编译后运行正常,不过输入的时候若输入一个小数程序便会马上终止键盘输入,给出结果。如果输入的小数是负数,这个数也不会被记到结果里去。想了一下,明白这是因为输入数值类型和定义的不符了。
据此推理,如果输入大于32767或小于-32768的数,应该也会得到这样的结果。但试过以后,发现在此环境下整形 int的 取值范围为-2147483648-2147483647,说明字长是32位的。