关于进制转换和数据输入的有关问题,基础有关问题
关于进制转换和数据输入的问题,基础问题
今天被学妹问了两个问题,都不是能讲的很清楚
int j=0;
cout < <hex < < "j= " < <j;
输出为j=a,学妹问为什么不是A
还有一个是比大小的 VC++6.0
#include <iostream.h>
void main()
{
int x,y,max;
cin> > x> > y;
if(x <y) max=y;
else max=x;
cout < <max;
}
运行后,输入009回车后就直接出现结果:9;这样只是输入一个数呀
我刚才上网查了一下,好像是编译器会认为0后面是一个八进制数,但觉得
这样也讲不通呀
请教一下大家了
------解决方案--------------------
第2个程序,可以添加一些输出,就可以知道程序运行过程中变量中值的变化了。
象这样:
#include <iostream>
using namespace std;
int main()
{
int x,y,max;
cin> > x> > y;
cout < < "x= " < < x < < endl;
cout < < "y= " < < y < < endl;
if(x <y) max=y;
else max=x;
cout < <max;
}
------解决方案--------------------
009回车后就直接出现结果:9
009,
00 是八进制的 0,
9 不可能是八进制数据,
所以被作为了 y 的值,
结果就是 x=0, y=9, max自然就是 9
------解决方案--------------------
不过这个也就是 VC 自己这么干.......
第一个问题:
使用 uppercase 格式控制
今天被学妹问了两个问题,都不是能讲的很清楚
int j=0;
cout < <hex < < "j= " < <j;
输出为j=a,学妹问为什么不是A
还有一个是比大小的 VC++6.0
#include <iostream.h>
void main()
{
int x,y,max;
cin> > x> > y;
if(x <y) max=y;
else max=x;
cout < <max;
}
运行后,输入009回车后就直接出现结果:9;这样只是输入一个数呀
我刚才上网查了一下,好像是编译器会认为0后面是一个八进制数,但觉得
这样也讲不通呀
请教一下大家了
------解决方案--------------------
第2个程序,可以添加一些输出,就可以知道程序运行过程中变量中值的变化了。
象这样:
#include <iostream>
using namespace std;
int main()
{
int x,y,max;
cin> > x> > y;
cout < < "x= " < < x < < endl;
cout < < "y= " < < y < < endl;
if(x <y) max=y;
else max=x;
cout < <max;
}
------解决方案--------------------
009回车后就直接出现结果:9
009,
00 是八进制的 0,
9 不可能是八进制数据,
所以被作为了 y 的值,
结果就是 x=0, y=9, max自然就是 9
------解决方案--------------------
不过这个也就是 VC 自己这么干.......
第一个问题:
使用 uppercase 格式控制