| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:[求助]求更简单的办法!
只看楼主 加入收藏
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
结帖率:86.67%
收藏
 问题点数:0 回复次数:10 
[求助]求更简单的办法!

给出一个不多于5位数的正整数
1:求它是几位数
2:按逆序打印出各位数字,输入:321,输出:123。

我写了个,知道很多语句都重复了,希望大家教个简单点的

#include<iostream>
using namespace std;

int main()
{
int number,a,b,c,d,e,change;
cin>>number;
char ch;
char ch;
ch=(number>=10000)?'a':(number>=1000)?'b':(number>=100)?'c':(number>=10)?'d':e;
switch(ch)
{
case 'a': a=number/10000;
change=number%10000;
b=change/1000;
change=number%1000;
c=change/100;
change=number%100;
d=change/10;
e=number%10;
cout<<"五位数,它的逆序是:"<<e<<d<<c<<b<<a<<endl;
break;
case 'b': b=number/1000;
change=number%1000;
c=change/100;
change=number%100;
d=change/10;
e=number%10;
cout<<"四位数,它的逆序是:"<<e<<d<<c<<b<<endl;
break;
case 'c': c=number/100;
change=number%100;
d=change/10;
e=number%10;
cout<<"三位数,它的逆序是:"<<e<<d<<c<<endl;
break;
case 'd': d=number/10;
e=number%10;
cout<<"两位数,它的逆序是:"<<e<<d<<endl;
break;
default:cout<<"一位数,它的逆序是:"<<number<<endl;
}return 0;
}

搜索更多相关主题的帖子: 办法 
2007-07-03 23:07
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
int main(){
int num,digit[5],i=0;
cin >> num;
while (num){
digit[i++] = num % 10;
num /= 10;
}
for (int j = 0;j < i;++j)
cout << digit[j];
return 0;
}

[此贴子已经被作者于2007-7-3 23:25:13编辑过]


Fight  to win  or  die...
2007-07-03 23:23
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 

顶楼上的


Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-07-04 09:47
yushui
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:1355
专家分:22
注 册:2006-7-19
收藏
得分:0 
厉害 先一个一个取出来 装进数组了   

fighting!from now on!
2007-07-04 11:44
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
可以直接打印... 不用存..
如果存可以用char digit[6], 每个元素只存1位数, int太浪费了..
digit[5]='\0', 然后 cout<<digit;就是了..
浪费了1个元素(1 byte)的空间, 节约了最少1x bytes的代码空间

女侠,约吗?
2007-07-04 13:20
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 

嘿嘿,太谢谢了。


2007-07-04 16:02
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
野比想的真全面啊!
PF,学习了。

Fight  to win  or  die...
2007-07-04 16:53
Ailsa
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-7-4
收藏
得分:0 
很简洁,比较好!

2007-07-04 17:23
reamercer
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2007-7-4
收藏
得分:0 
佩服,两位版主果然强悍...
2007-07-04 17:25
沉墨
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-6-12
收藏
得分:0 
回复:(a8451727)[求助]求更简单的办法!
#include<iostream>
using name space std;

main()
{
int a,i=0,digit[5];
int b=1,count=0;
cout<<"please input a number:";
cin>>a;
while(b)
{
b=a/10;
a=b;
digit[i++]=a%10;
count++;
}
cout<<"您输入的是"<<count<<"位数";
for(j=0;j<i;j++)
cout<<a[j];
}

/区区沉墨 /读过几年闲书 /尘世中一个迷途小书生.............
2007-07-04 19:52
快速回复:[求助]求更简单的办法!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017868 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved