在线编译器 C

#include <stdio.h> int main() { int N,K,b,c,length; scanf("%d %d",&N,&K); if(N>=0&&(K>=1&&K<=10)){; for(int i=0;i<K;i++){ c=N/10; while(c!=0){ c=N/10; b=N%10; N=c; } } printf("%d",b); }; return 0; }
1) 这段代码试图获取一个整数N的倒数第K位数字,但存在逻辑错误。它通过循环除法和取模运算来操作数字,但最终输出结果不正确。

2) 提示1:注意内层while循环的条件和变量更新,当前逻辑会导致每次外层循环都直接将N除到只剩最高位。
提示2:考虑使用数学方法直接定位倒数第K位,或者重新设计循环逻辑来逐位处理数字。