Online Compiler C

#include <stdio.h> int main() { int n,k; scanf("%d %d",&n,&k); int b=n; int p=0; while(b>0){ b=b/10; p++; } int arr[10]; for(int i=0;i<n;i++){ arr[i]=n%10; n=n/10; //Дано целое, неотрицатльное число N и натуральное число K. Необходимо вывести на печать K-ую цифру числа N. Гарантируется, что число K не превосходит количества цифр в числе N. } printf("%d",arr[p-k]); }
1) 这段代码旨在从整数N中提取第K位数字(从最高位开始计数),但存在逻辑错误会导致错误输出。

2) 提示:
- 注意循环条件 `for(int i=0;i<n;i++)` 中的终止条件有问题,应该使用数字位数作为循环次数
- 在提取数字时,数组存储的顺序与实际数字位序是相反的,需要调整索引访问方式