发布网友 发布时间:2022-04-23 02:55
共5个回答
热心网友 时间:2023-10-12 12:16
#include<stdio.h>追答你想一下简单的嘛!假设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>热心网友 时间:2023-10-12 12:16
程序给你了,你试下,不懂的可以追问:热心网友 时间: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,直接将一个数字串存在字符串中,这样可以进行很大数的表示