在线编译器 C

#include <stdio.h> int main() { int a,k; int sum=0; 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==sum-k+1){ printf("%d",temp); } } return 0; }
1) 这段代码旨在读取一个整数a和位置k,然后输出a的第k位数字(从最高位开始计数)。但代码存在逻辑错误,无法正确实现功能。

2) 提示1:注意在第一个while循环中,变量a的值已经被除到0,导致后续for循环无法执行。
提示2:考虑在第一个循环前保存a的原始值,或在第二个循环中使用其他变量来操作。