0

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

例如:

2845
would become
5482

你怎么能做到这一点?我有一个想法,你可以在哪里做一个 digit[i] 数组,默​​认为 null 并接收与数字一样多的值。例如 452 将给出 digit[3] : digit[1] 将是 4, digit[2] 将是 5, digit[3] 将是 2。但这听起来非常复杂,打印它听起来很痛苦,更不用说我无法使用新数字进行操作。我需要检查向后读取的数字是否是偶数。

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

4

3 回答 3

3

一个简单的解决方案是:

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

    return r;
}
于 2012-03-19T20:25:08.650 回答
0

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

于 2012-03-19T20:23:22.733 回答
0

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

于 2012-03-19T20:24:47.067 回答