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

2024-11-17 05:56:53
推荐回答(5个)
回答1:

#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);
}

很简单的,你先看看,不懂了再问。望采纳!

回答2:

#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;
}

回答3:

程序给你了,你试下,不懂的可以追问:
#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));
}

回答4:

没有分析k>n怎么办啊

回答5:

明白了,好的。