在线编译器 C

#include <stdio.h> int main() { int a,k; int sum; scanf("%d %d",&a,&k); int temp; while(a>0){ a=a/10; sum++; } if(sum<k){ printf("error"); return 0; } for(int i=0;a>0;i++){ temp=a%10; if(i==k-1){ printf("%d",temp); } } return 0; }
1) 这段代码试图计算一个数字的位数,然后输出该数字从右往左数第k位上的数字。如果数字位数小于k,则输出"error"。

2) 提示1:注意变量`sum`没有初始化,这会导致未定义行为。
   提示2:在for循环之前,变量`a`的值已经被while循环修改为0,导致for循环无法执行。