我一直在编写一个程序来打印基数为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;
}
非常感谢任何和所有帮助。我完全不知道我做错了什么,因为这个程序确实编译了。
答案 0 :(得分:0)
您永远不会初始化x
,k
或y
。这意味着它们可能包含任何值。要解决此问题,您应该为这些变量赋值:
int x = 0;
int k = 0;
int y = 0;
但从它的外观来看,x
是算法的输入,所以你需要从某个地方读取输入
<强>吹毛求疵强>
使用x = x / 10
运算符代替/=
,而不是使用x /= 10;
运算符:
app.controller('MainCtrl', function($scope) {
$scope.nav = {
keyword: ''
}
});