帮忙看下这个程序的错误!
该程序的目的是求正整数n中第k位数字(从右边算起) 例如:digit(829,1)返回9;digit(829,2)返回2;#include<stdio.h>
int num_digits(int n) /*判断正整数的位数*/
{
int cnt=0;
while(n!=0)
{
n=n/10;
cnt++;
}
return cnt;
}
int digit(int n,int k) /*显示所指第几位的数*/
{
int i,cnt,m;
cnt=num_digits(n);
if(k=1)
m=n%10;
else if(cnt<k)
printf("所指位数有错!");
else
{
for(i=0;i<cnt-k+1;i++)
{
n=n/10;
}
m=n;
}
return m;
}
int main()
{
int n,k;
scanf("%d %d",&n,&k);
printf("%d\n",digit(n,k));
return 0;
}