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

刚学c++ 遇到困惑

shining小南 发布于 2010-09-16 21:16, 1147 次点击
1..字符串可以放在值类型中分类的吗?能的话分为那一类(int char float bool)?
2. #include "iostream.h"
int main()
{
        int number;
        cout <<"请输入一个四位数(0000~9999):";
        cin >>number;
        cout <<number <<"的千位数是" <<number/1000 <<"," <<number <<"的百位数是" <<number%1000/100 <<"," <<number <<"的十位数是" <<number%100/10 <<"," <<number <<"的个位数是" <<number%10 <<"。" <<endl;
return 0;
}
这个程序输入四位数是12的话就出来12 的千位数是0,12的百位数是0,12 的十位数是1,12 的个位数是2;如果输入0012的话就出来“10的千位数是0,10的百位数是0,10 的十位数是1,4248 的个位数是0”  why?why?
3.cout<<a>0?a%10:-a%10;为什么error咧!
13 回复
#2
redappletree2010-09-16 22:06
为啥我运行时是:0 error(s), 0 warning(s);但是无法执行程序啊?难道我的运行软件有问题?
#3
寒风中的细雨2010-09-16 22:16
0012八进制
#4
寒风中的细雨2010-09-16 22:17
const char
#5
寒风中的细雨2010-09-16 22:17
函数重载
#6
ljzzcm2010-09-16 22:56
我也等答案
#7
肖付2010-09-16 23:21
哦,这个我运行的时候4248的还是对的。但是0012的就是错的,不过三楼和五楼应该是正确的解答了。
#8
holychild2010-09-16 23:26
你应该先补补最基本的数的表示方法和进制之间的转化。
在C和C++语言中,不仅允许十进制整数,还允许八进制和十六进制,它们的表示方法不同。
比如:
75     // 十进制 decimal
0113 // 八进制 octal
0x4b // 十六进制 hexadecimal
所有这些都表示同一个整数: 75  ,分别以十进制数,八进制数和十六进制数表示。
在这个程序里,12表示十进制中的12, 0012却是八进制的表示方法,转化成十进制就是10,所以输出是10。
还有你说的4248,我运行试过了,是正确的,个位是8,估计你看错了。

#9
yao_2101622010-09-17 07:48
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录



这是我在VC++6.0下运行的结果,没有出现楼主的问题?

[ 本帖最后由 yao_210162 于 2010-9-17 07:52 编辑 ]
#10
零下八度2010-09-17 08:48
1.0012会出现楼主说的问题。。这是因为如果写成0012系统会认为是 八进制的012。因为表示八进制数是在前面加0,表示16进制的数时在前面加0x。。。
2.输入4248时,结果正确。。可能是你把8看成了0.

#11
零下八度2010-09-17 08:52
第三个问题 你应该写成 cout<<(a>0)?a%10:-a%10;
#12
shining小南2010-09-17 20:17
第二个问题已经明白了,第三个问题是求a的个位数 cout<<(a>0)?a%10:-a%10 可以运行 不过已经用a>0?cout<<a%10:cout<<-a%10;解决

第一个问题还是不明白 迷糊
#13
honwey2010-09-17 21:22
高手大有人在啊
#14
qshzh1022010-09-21 22:07
加上一个
if(number/1000>0)
cout<<"number的千位数为"<<number/1000;

lz可以试下
1