回头一笑:简单却让我郁闷的程序

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/20 00:53:32
#include <iostream.h>
main()
{
int m;
cin>>m;
if(0<m<=5000)
cout<<"ok"<<endl;
else if(m>5000)
cout<<"No"<<endl;
else cout<<"hehe"<,endl
}
当输入9000的时候 却显示为ok
大家帮我看看错在哪里啊?

#include <iostream.h>
void main()
{
int m;
cin >> m;

cout << m << endl;

if(m > 0 && m <= 5000)
{
cout<<"ok"<<endl;
}
else if (m > 5000)
{
cout<<"No"<<endl;
}
else
cout<<"hehe"<<endl;
}

我想是你没高明白C的语法,

你用了我们经常使用的 0 < m <= 5000的语法, 但是

这是错的, 正确的应该是 0 < m && m < 5000

C 语言没有提供连续判断, 所以执行到0 < m 时为止,

9000 当然大于 0拉, 就输出 ok了!!!!

#include <iostream.h>
void main()
{
int m;
cin>>m;
if(0<m)
if(m<=5000)
cout<<"ok"<<endl;
else if(m>5000)
cout<<"No"<<endl;
else cout<<"hehe"<<endl;
}