Онлайн компилятор C

#include <stdio.h> int main(){ int c=0; int a; scanf("%d",&a); int const N=100; int A[N]; while(a>0){ A[c]=a%10; c++; a=a/10; } for(c;c>0;c--){ printf("%d",A[c]); } return 0; }
这段代码试图将一个整数按位拆分并反向输出。它读取一个整数,将每一位数字存入数组,然后从数组末尾开始打印。

- 在循环 `for(c;c>0;c--)` 中,当 `c` 等于数组最后一个有效元素的下标时,`A[c]` 访问的是未初始化的位置,因为数组下标从0开始,最后一个有效元素的下标是 `c-1`。你需要调整循环的起始条件或下标访问方式。
- 另外,`for(c;c>0;c--)` 中的第一个表达式 `c` 没有实际作用,可以省略,但这不是主要问题。