问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 02:55

我来回答

5个回答

热心网友 时间:2023-10-12 12:16

#include<stdio.h>

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

很简单的,你先看看,不懂了再问。望采纳!追问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控制循环几次。也就是取余几次。懂了没?

热心网友 时间:2023-10-12 12:16

#include <stdio.h>
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;
}

热心网友 时间:2023-10-12 12:16

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

热心网友 时间:2023-10-12 12:17

没有分析k>n怎么办啊

热心网友 时间:2023-10-12 12:18

明白了,好的。追问如digit(76543)=6,digit(12,4)=0,结果为0

追答#include
#include
void main()
{
void digit(char n[],int k);
int a=156963565;
char s[81];
sprintf(s,"%d",a);
digit(s,4);
}
void digit(char n[],int k)
{
int len=strlen(n);
if(k>len)
printf("0\n");
else
printf("%c\n",n[len-k]);
}

我是将数存在一个字符串中,也可以不用a,直接将一个数字串存在字符串中,这样可以进行很大数的表示

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是个成本会计题,马上要考这道原题了,求大虾帮忙 财务管理类问题,求大虾帮忙,小弟感激不尽。具体问题看问题补充。_百度... 光影魔术手怎么换底色 光影魔术手换底色教程 ...米的绳子围绕一棵树干饶了6圈,还余下1.16米,这棵树干上的直径大约是... ...还余下1.16米,这棵树的树干的直径大约是多少米?求算式! ibm x3500 M5 服务器 运行时风扇声音好大,吵死了,可以下掉一个吗... IBMX3500 M5,最近老是出现自动关机的情况,需要把服务器电源拔掉半分钟... 治疗萎缩性胃炎的方法 怎么治萎缩胃炎 JYF-40FS06电饭煲190块买的是假的吗 朋友圈晒大单的句子 精度±(0.25%F.S.+1digit)什么意思? 成交订单发朋友圈说说有哪些? 朋友圈晒保险收入好么 关于签单的发朋友圈的精美句子有哪些? 给自己买养老保险的说说 中班计算教案正确认识7像什么板书设计 幼儿园小班教案6的实际意义 幼儿潜能开发课程 认识数字6 小班教案 保险合同到了怎样发朋友圈? 中班边学边练&lt;六&gt;的教案 100元的保险卡单怎样发朋友圈句子? 发挥自身首创精神,立足岗位创新创造。这个题目的教案怎么写 车险发朋友圈句子? 晒保单怎么发朋友圈 有保单怎么发朋友圈 苹果12设置通用里面怎么没有辅助功能苹果12微信视频有美颜功能吗 苹果手机微信里面没有辅助功能 我想知道我的微信辅助功能里为什么没有视频聊天这一个!?升级了也没用... 微信辅助里没有视频功能啊? 好产品发朋友圈的精美句子有哪些? 求units digit 和 single digit 的区别 初加入朋友圈告诉朋友加入保险行业的说说 AE怎么为指定片段添加效果?? 请问这句话里的one digit是指1位数还是1位小数呢? 发货发朋友圈的精美句子有哪些? 32.简述在After Effects CS6中添加特效滤镜的6种方法? 定义一个函数digit(n,k),要求输入数字n与k,输出数字n上第k位的数。例: digit(15327,4)=5 digit(289,5)=0 After Effects 怎么添加滤镜..? 用C++编写函数digit(int num,int k)返回num从右边开始第k位数字的值 怎么用AE给视频加一些特效? c语言:定义一个函数digit(n,k),它返回整数n的从右边开始数的第k个数字的值 富贵小丫鬟_by花青雪_txt全文阅读,百度网盘免费下载 C++编写函数digit(int num,int k)返回num从右边开始第k位数字的值 为什么我这个程序一直报错 AE滤镜下载后如何使用?急急急!!! 有钱人家的丫环伺候男主人的时候,为啥不反抗还很开心? SAT数学:units digit什么意思 《富贵丫鬟》txt全集下载 ae滤镜怎么安装 男主角是个少爷,女主角是老夫人身边的丫环。女主角好像叫什么欢的。