注册 登录
编程论坛 新人交流区

数字排序怎么办?

熊猫or彦 发布于 2007-11-08 22:33, 469 次点击

任意输入一个数字,先倒序输出再正序输出,我只会倒序输出,然后的正序输出该怎么办呢?

main()
{
long x;
int y;
scanf("%ld",&x);
do
{
y=x%10;
x=x/10;
printf("%d",y);


}while(x>0);
getch();

}


加群49956042,C交流群..

9 回复
#2
拉风2007-11-08 23:25

这样就可以啦

#include<iostream>
using namespace std;
void main()
{
long x;
int y,i,n;
int a[20];
cin>>x;
for(i=0;x!=0;i++)
{y=x%10;
a[i]=y;
x=x/10;
}
n=i;
for(i=0;i<n;i++)
cout<<a[i];
cout<<endl;
for(i=n-1;i>=0;i--)
cout<<a[i];

}

#3
病书生2007-11-09 01:09
LZ是在win-TC下编译的吧呵呵~LS的给出一个 C++版的~~~~
代码很实用 又学到了
#4
熊猫or彦2007-11-09 08:13
看不懂

能不能用点简单的编啊,用do while编...
#5
ly852065592007-11-09 09:04
直接输出X不就行了~~
#include <stdio.h>
#include <stdlib.h>
void main()
{
long x;
int y;
scanf("%ld",&x);
printf("%d\n",x);
do
{
y=x%10;
x=x/10;
printf("%d",y);
}while(x>0);
}
#6
Gavin_1232007-11-09 09:56
不会
#7
wangfengLLD2007-11-09 10:21

把数字转换成字符串,这样就好处理多了,试试下面的这个:
char s1[10];
std::string s;
int k1=0,i=0,j=0;
scanf("%d",&k1);
sprintf(s1,"%d",k1);
s=s1;
printf("s===%s\n",s.c_str()); // 顺序输出
for(i=s.size()-1;i>=0;i--)
{
s1[j++]=s[i];
}
s=s1;
printf("s===%s\n",s.c_str()); // 倒序输出

#8
寒天雪地2007-11-09 11:11
#include "stdio.h"
main()
{int i,t=0,k;
printf("Please input a number:");
scanf("%d",&k);
i=k;
while(i)
{t=t*10+i%10;
i=i/10;
}
printf("The reverse number is:%d\n",t);
printf("The ordered number is:%d\n",k);
printf("Press any key to quit...");
getch();
}
#9
寒天雪地2007-11-09 11:14
以上建议仅供参考……
#10
熊猫or彦2007-11-09 13:18

谢谢了,寒天雪地。你发的正确的.
能不能解释一下是什么意思啊?
这几句搞不懂...
i=k;
while(i)
{t=t*10+i%10;
i=i/10;
}

1