在线编译器 C

#include <stdio.h> int main() { int a,k; int sum=0; scanf("%d %d",&a,&k); int temp;int A=a; while(A>0){ A=A/10; sum++; } if(k==1&&a==0){ printf("0"); return 0; } if(sum<k){ printf("error"); return 0; } if(k<1){ printf("error"); return 0; } for(int i=0;a>0;i++){ temp=a%10; if(i==sum-k){ printf("%d",temp); return 0; } a=a/10; } }
1) 这段代码用于读取一个整数a和位置k,然后输出a的第k位数字(从最高位开始计数)。如果k超出数字位数或k值无效,会输出错误信息。

2) 提示:
- 注意数字位数的计算方式,特别是当输入数字为0时的特殊情况处理
- 思考如何通过取模和除法运算从低位到高位遍历数字,并找到对应的第k位