C语言编程,写一函数digit(n,k),它把数n从右边起的第k位数字的值给出来,其中n为正整数,若n的位数不足k

C语言编程,写一函数digit(n,k),它把数n从右边起的第k位数字的值给出来,其中n为正整数,若n的位数不足k
则为0,,求步骤及讲解。本人刚学了小半年,觉得编的程序还比较简单,可是现在程序越来越不会编了,网上的答案真心看不懂啊,求大神指导!
#include

int digit(int n,int k)
{
int i,temp1,temp2;
for(i = 0;i < k; i++)
{
temp1 = n%10;
n = n/10;
}
return temp1;
}

void main()
{
int n,k,result;
printf("请输入数字n和k:\n");
scanf("%d %d",&n,&k);
result = digit(n,k);
printf("%d从右边数第%d位为%d",n,k,result);
}

很简者册桐姿吵单的,你先看看首坦,不懂了再问。望采纳!
#include
int digit( int n , int k )
{
int i=1;
while(n) //当n不为0时循环
{
if ( i==k ) //州租如族差果当册穗兆前位置i与k相同,则返回当前数字
return n%10 ;
n/=10 ; //n缩小10倍,为的是下次n%10为要取的数字
i++; //位置数+1
}
return 0 ; //找不到匹配位置时,返回0
}
int main()
{
int ret=0;
ret=digit(76543,4) ;
printf("digit(76543,4)=%d\n" , ret );
ret=digit(12,4) ;
printf("digit(12,4)=%d\n" , ret );
return 0;
}
程序给你宴虚了,晌锋燃你试下,不懂的可以追问:
#include
int digit(int n,int k)
{
int t=k-1;
while(t>基返0)
{
n/=10;
t--;
}
if(n==0)
return 0;
else
return n%10;
}
void main()
{
int n,k;
scanf("%d%d",&n,&k);
printf("%d\n",digit(n,k));
}
没有分析k>n怎么办啊
明白了,好的。
← 上一篇: 下一篇: →