数字的倒数,c

新手上路,请多包涵

我正在创建一个使用以下方法显示数字倒数的程序:

示例

 123 ==> 3*10^2 + 2*10^1 + 1*10^1 = 321

但输出始终为 0。有什么帮助吗?

 #include <stdio.h>

int power(int a)
{
    int i;
    int x = 1;
    for (i = 1; i = a; i++)
    {
        x = x * 10;
    }
    return x;
}

int inv(int b)
{
    int z = b, j = 0, s = 0, y;

    for (z = b; z = 0; z = z / 10)
    {
        for (y = z; y = 0; y = y / 10)
        {
            j++;
        }
        s = s + (z % 10)*power(j - 1);
    }
    return s;
}

int main()
{
    printf("please enter a number"); int n;
    scanf("%d", &n);
    printf("%d", inv(n));
    return 0;
}

原文由 pioneer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 523
1 个回答

为什么不使用 string 并反转它?当然,这只有在您可以自由选择方法时才有效。

 #include <iostream>
#include <string>
#include <algorithm>

int reverse(const int n)
{
    std::string s = std::to_string(n);
    std::reverse(s.begin(), s.end());
    return std::stoi(s);
}

int main()
{
    int number;
    std::cin >> number;
    std::cout << reverse(number) << std::endl;
    return 0;
}

原文由 Chiel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题