如何在C中将数字从基数10转换为10?

时间:2016-02-18 01:18:38

标签: c

我一直在编写一个程序来打印基数为10的输入整数。我必须使用' putchar(int c)'显示数字和负号。

基本上,我必须使用输入整数,使用modulo从中提取数字,并反转这些数字并重新打印它们。我必须声明一个字符数组来存储数字,然后向后遍历数组以打印最终输出。

这个程序应该读取一个整数,使用putchar(int c)来显示数字,然后退出。

我有以下代码,但我无法弄清楚我做错了什么。

#include <stdio.h>

int main () {
    int x;
    int k;
    int y;
    char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
    char A[k];

    while (x != 0) {
        y = x % 10;

        A[k++] = digits[y];

        putchar(digits[y]);

        x = x / 10;
    }

    printf("%i\n", y);

    for (; k >= 0; --k) {
        putchar(A[k]);
    }

    return 0;
}

非常感谢任何和所有帮助。我完全不知道我做错了什么,因为这个程序确实编译了。

1 个答案:

答案 0 :(得分:0)

您永远不会初始化xky。这意味着它们可能包含任何值。要解决此问题,您应该为这些变量赋值:

int x = 0;
int k = 0;
int y = 0;

但从它的外观来看,x是算法的输入,所以你需要从某个地方读取输入

<强>吹毛求疵

使用x = x / 10运算符代替/=,而不是使用x /= 10; 运算符:

app.controller('MainCtrl', function($scope) {
  $scope.nav = {
    keyword: ''
  }
});