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

#include <stdio.h> int main() { int N, K; scanf("%d %d", &N, &K); int digit; int numdigit = 0; int numdigit1 = 0; int numdigit2; while(N>0){ N = N / 10; numdigit ++; numdigit1 ++; if(K == numdigit1){ numdigit2 = numdigit - numdigit1; digit = N % 10; printf("%d", digit); } } return 0; }
1) 这段代码旨在从整数N中提取第K位数字(从最高位开始计数),但存在逻辑错误导致无法正确输出结果。

2) 提示:
- 注意在循环中修改N值后,使用`N % 10`获取的已不是原始数字的对应位
- 考虑先完整计算数字的总位数,再通过数学运算直接定位目标数字位