注册 登录
编程论坛 C语言论坛

如何将“123”变成”321”呢?

makoki 发布于 2020-04-01 00:15, 3785 次点击
# include <stdio.h>
# include <malloc.h>

void f(int i)
{
    int b;

    for (i; i != 0; i/10)
    {
        b = i%10;
        i = i/10;
        printf("%d", b);
    }
    return;
}

int main()
{   
    int a;
   
    printf("请输入想要输入的数:\n");
    scanf("%d", &a);

    f(a);

    return 0;
}

我的这个只是将123倒序输出321.
如何要将一百二十三,变成三百二十一后作为一整个值输出出来呢?
可以实现.....吗?
6 回复
#2
lin51616782020-04-01 00:18
for (i; i != 0; i/=10)
#3
makoki2020-04-01 00:22
回复 2楼 lin5161678
谢谢!我就说哪里不对劲。。。。
还是那个问题,可以将一百二十三变成三百二十一后输出来吗?

#4
rjsp2020-04-01 08:25
程序代码:
#include <stdio.h>

unsigned f( unsigned n )
{
    unsigned r = 0;
    for( ; n!=0; n/=10 )
        r = r*10 + n%10;
    return r;
}

int main( void )
{  

    unsigned a;
    printf( "请输入想要输入的数:" );
    scanf( "%u", &a );
    printf( "%u", f(a) );
}

当然,以上程序并不完美,因为 unsigned未必存得下其十进制形式的逆序值。
比如 uint32_t 存得下 4294967289,但存不下 9827694924


#5
lin51616782020-04-01 08:29
这种问题我总想问100是输出001 还是1
#6
makoki2020-04-01 08:46
回复 3楼 makoki
谢谢!已参考。
#7
return_02020-04-01 09:10
最好用while,
1