输入一个整数1234,输出4321,这个怎么做啊?

zwlawrence 2005-10-23 09:58:30
输入一个整数1234,输出4321,这个怎么做啊?我是初学者,请大家帮忙解答。谢谢了
...全文
2457 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
NicholasTsai 2005-10-29
  • 打赏
  • 举报
回复
用栈加上队列
wangsheng1984 2005-10-26
  • 打赏
  • 举报
回复
栈是最好的办法,
但是对于"1234",用数组也不错,
int i[3]="1234";
for(int j=3;j>=0;j--)
cout<<i[j];
kingknightyang 2005-10-26
  • 打赏
  • 举报
回复
用栈。就可以解决
jiahk 2005-10-26
  • 打赏
  • 举报
回复
void fun(char *s)
{
int i,len;
char tmp;
len=strlen(s);
for(i=0;i<len/2;i++)
{
tmp=s[i];
s[i]=s[len-i-1];
s[len-i-1]=tmp;
}
}
renshengqingganlan 2005-10-26
  • 打赏
  • 举报
回复
用STL里的
void reverse (BidirectionalIterator first,BidirectionalIterator last);函数就可以了
kissfall 2005-10-26
  • 打赏
  • 举报
回复
同意三楼的
gaoch_2000 2005-10-26
  • 打赏
  • 举报
回复
创建缓冲区1-->把1234写入缓冲区1-->把缓冲区1裁减成4个区域,1,2,3,4分别在不同的区域中-->把4个区域按照自己定义的顺序写如冲区2-->把缓冲区2绘制到屏幕上。

工作完成.
:)太无聊了,和我一样无聊的朋友可以实现一下。
PMsg 2005-10-26
  • 打赏
  • 举报
回复
就对写汇编的那位老兄的敢兴趣
canback 2005-10-26
  • 打赏
  • 举报
回复
楼主是不是万里学院的啊??
#include<stdio.h>
void main()
{
unsigned int a,b,c,d,m,n;
printf("qing shu ru yi ge si wei zheng zheng shu\n");
scanf("%d",&m);
if(m>0&&m<10000)
{
a=m%10;
b=(m%100-a)/10;
c=(m%1000-b*10-a)/100;
d=(m-c*100-b*10-a)/1000;
n=d+c*10+b*100+a*1000;
printf("%d",n);
}
else
{
printf("shu ru cuo wu!");
}
}
heskyII 2005-10-26
  • 打赏
  • 举报
回复
*************考虑数据结构中的“栈”的原理:先进后出。

定义一个全局的“栈”(其实就是个数组而已)和指向这个栈的栈指针。当输入1234时,用栈保存元素,同时栈指针++;这样,输入完成后栈指针指向的是最后一个元素4。那么通过栈指针--操作就能反向输出4321了吧。

*************这才是考题的真正意义所在。
dudu妈 2005-10-26
  • 打赏
  • 举报
回复
#include <iostream.h>
void main()
{
int n,r;
cout<<"Enter the nunber:";
cin>>n;
cout<<"The number is:";
do
{
r = n%10;
cout<<r;
n/=10;
}
while(n!=0);
cout<<endl;
}
jiaolong0127 2005-10-25
  • 打赏
  • 举报
回复
能够用汇编做出来呀,真不简单呀。
Rick_ang 2005-10-25
  • 打赏
  • 举报
回复
这个东西只是整数~~没必要用栈吧~~用个取余足够了
cxyol 2005-10-25
  • 打赏
  • 举报
回复
向来还是3的正解!
cxyol 2005-10-25
  • 打赏
  • 举报
回复
为什么不用栈结构来解!
索思索想 2005-10-25
  • 打赏
  • 举报
回复
寒一个汇编解法……
zgy166 2005-10-25
  • 打赏
  • 举报
回复
看看新的解法:

int main(void)
{
int src = 1234, len = 0;
char i = 0, tmp1[5], tmp2[5];

sprintf(tmp1, "%d", src);
len = strlen(tmp1);
while(i < len) sprintf(&tmp2[i++],"%c",tmp1[len-i-1]);

printf("%s\n", tmp2);

}
codearts 2005-10-24
  • 打赏
  • 举报
回复


3楼为正解
lance_123 2005-10-24
  • 打赏
  • 举报
回复
3 4楼都对了!!!!!!!5楼以下没看..........
顶!!!!!!
justrun2005 2005-10-24
  • 打赏
  • 举报
回复
你们都太麻烦了
直接
cout<<"4321"<<endl;
这是最快速的算法了。

实践出真知,努力便成功
我的博客:http://blog.csdn.net/justrun2005
加载更多回复(8)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧