不对
问题出在未初始化数组a,导致输出不正确。在C语言中,未初始化的数组元素的值是未定义的,因此需要初始化数组a。以下是修改后的代码:#include <stdio.h>
int main()
{
int n, i, count = 0, j;
int a = {0}; // 初始化数组a为0
scanf("%d", &n);
int k = n;
while (n != 0)
{
n = n / 10;
count++;
}
n = k;
for (i = count - 1; i >= 0; i--)
{
j = n % 10;
a[ i] = j;
n = n / 10;
}
printf("%d\n", count);
for (i = 0; i < count; i++)
{
printf("%d ", a[ i]);
}
printf("\n");
for (i = count - 1; i >= 0; i--)
{
printf("%d ", a[ i]);
}
printf("\n");
return 0;
}
这样就可以正确输出输入正整数的位数、每一位数字以及按逆序输出各位数字了。
#include <stdio.h>
int main() {
int n, i, count = 0, j;
int a;
scanf("%d", &n);
int k = n;
while (n != 0) {
n = n / 10;
count++;
}
n = k;
for (i = count - 1; i >= 0; i--) {
j = n % 10;
a = j;
n = n / 10;
}
printf("%d\n", count);
for (i = 0; i < count; i++) {
printf("%d ", a);
}
printf("\n");
for (i = count - 1; i >= 0; i--) {
printf("%d ", a);
}
printf("\n");
return 0;
}
页:
[1]