向后读一个数字并用它在C中操作?

时间:2012-03-19 20:20:14

标签: c digit

是否有库函数或简单的方法向后读取数字并使用它进行操作?通过操作,我的意思是使用新号码进行操作。

例如:

2845
would become
5482

你怎么能实现这一目标?我有一个想法,你可以在哪里做一个数字[i]数组,默认为null,并接收与数字一样多的值。例如452将给出数字[3]:数字[1]将是4,数字[2]将是5,数字[3]将是2.但是这听起来非常复杂并且打印它听起来像是一个痛苦的屁股,更不用说我无法使用新数字。我需要检查后退的数字是否均匀。

有什么想法吗?我一直在考虑这个问题,但我找不到合适的解决方案。如果重要的话,我在C语言中使用eclipse IDE。

3 个答案:

答案 0 :(得分:3)

一个简单的解决方案是:

/* only for x>0 */
int reverse(int x)
{
    int r = 0;
    while(x) {
        r = r*10 + (x%10);
        x = x/10;
    }

    return r;
}

答案 1 :(得分:0)

如果您正在处理足够小的数字,可能只是将其读入C字符串,使用strrev()然后转换为整数?虽然,如果你要做的就是"检查后退的数字是否是偶数",你真正需要做的就是检查第一个字符是否为'0', '2', '4', '6', or '8'

答案 2 :(得分:0)

我使用sprintf()将其转换为char *,用一些简单的算法反转它,然后使用strtol()将其转换回来。