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

问题描述:

C语言编程,写一函数digit(n,k),它把数n从右边起的第k位数字的值给出来,其中n为正整数,若n的位数不足k
则为0,本人刚学了小半年,觉得编的程序还比较简单,可是现在程序越来越不会编了,网上的答案真心看不懂啊,
1个回答 分类:综合 2014-11-15

问题解答:

我来补答
#include
int digit(int n,int k)
{
\x09int i,temp1,temp2;
\x09for(i = 0;i < k; i++)
\x09{
\x09\x09temp1 = n%10;
\x09\x09n = n/10;
\x09}
\x09return temp1;
}
void main()
{
\x09int n,k,result;
\x09printf("请输入数字n和k:\n");
\x09scanf("%d %d",&n,&k);
\x09result = digit(n,k);
\x09printf("%d从右边数第%d位为%d",n,k,result);
}
很简单的,你先看看,不懂了再问.望采纳!
再问: temp1求得了n的余数,又返回去了,那i是表示这个数的位数吗,咋还是不明白这个程序是怎么运行的呢
再答: 你想一下简单的嘛!假设k为1,那么for循环只执行一次,temp1不就是直接就是最后一位吗?这时候n就储存了n原来位数-1位。 举个简单的例子好懂一些。 比如你n = 12345;k = 4; 此时for循环会被执行4次 执行第一次循环结束时:temp1 = n%10 = 5;n = n/10 = 1234; i = 0 执行第二次循环结束时:temp1 = n%10 = 4;n = n/10 = 123; i= 1 执行第三次循环结束时:temp1 = n%10 = 3;n = n/10 = 12; i= 2 执行第四次循环结束时:temp1 = n%10 = 2;n = n/10 = 1; i= 3 i只是一个计数器,用来控制循环的,k控制循环几次。也就是取余几次。懂了没?
 
 
展开全文阅读
剩余:2000
上一页:关于ATP```````
也许感兴趣的知识