取出8392每一位上的数

1steven 2019-02-06 11:19:15

#include <stdio.h>
void main()
{
int num = 8392 ;
int i ;

for(i=1000 ; i >= 1 ; i /= 10)
{

printf("%d\n" , num/i) ;
num = num % i ;
}
}

求教最后一句什么意思 ? 打印的结果是8 83 839 8392 , 我下断点对num % i 得到的应该是 392 92 2 0 , 为什么最后结果却是 8 3 9 2 , 怎么得的 ?
...全文
405 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
OldHello 2019-02-15
  • 打赏
  • 举报
回复
因为你输出的是 num/i,还有一次计算
sflt2 2019-02-14
  • 打赏
  • 举报
回复
#include <stdio.h>
int main(int argc, char *argv[])
{
int m,n,a[99],i;
scanf("%d",&m);
int s,b=m;
if(b==0){
s=1;
}
for(s=0;b!=0;s++){
b=b/10;
}
for(i=0;i<s;i++){
a[i]=m%10;
m=m/10;
}
for(i=0;i<s;i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
晗生缘 2019-02-12
  • 打赏
  • 举报
回复
楼主,可以直接使用数组存放每一个数字,代码思路如下: 1.先将8392对10求余,即buf[0]=8392%10=2;然后将8392对10整除,得到num=8392/10=839; 2.将新得到的num=839对10求余,即buf[1]=839%10=9,然后将839对10整除,得到num=839/10=83; 3.将新得到的num=83对10求余,即buf[2]=83%10=3,然后将83对10整除,得到buf[3]=num=83/10=8; 4.如果你想显示的8 3 9 2这样的正序,可以将首尾参数对换得到,这个函数很多书籍都有,也很简单 思路我写出来了,剩下的楼主可以自己参考着写,这样有助于你进步
自信男孩 2019-02-11
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{
int num = 8392;

while (num) {
printf("%c\t", num % 10 + '0');
num /= 10;
}

putchar(10);

return 0;
}


供参考!

这个程序有一定局限性,比如负数,越界等情况没有考虑,如果需要可以在这个基础完善。
自信男孩 2019-02-11
  • 打赏
  • 举报
回复
引用 4 楼 zjq9931 的回复:
给你一个适应很多位数的

#include <stdio.h>
void main()
{
int num = 8392 ;
int i ;
char buffer[100];

sprintf(buffer, "%d", num);

for(i=0; buffer[i]!=0 ; i++)
{
printf("%c\n", buffer[i]) ;
}
}

int表示不了100,最多用16的buffer即可。
  • 打赏
  • 举报
回复
给你一个适应很多位数的

#include <stdio.h>
void main()
{
	int num = 8392 ;
	int i ;
	char buffer[100];

	sprintf(buffer, "%d", num);

	for(i=0; buffer[i]!=0 ; i++)
	{
		printf("%c\n", buffer[i]) ;
	}
}
  • 打赏
  • 举报
回复
百分号是求余数;分号是做除法,结果只取整数,不进行四舍五入
threenewbee 2019-02-08
  • 打赏
  • 举报
回复
printf("%d\n" , num/i) ; -> printf("%d\n" , (num/i) % 10) ; num = num % i ; 去掉
Leo Bliss 2019-02-07
  • 打赏
  • 举报
回复
num 8392 i 1000 num/i 8 num = num%i=8392%1000=392 i =1000/10=100 num/i = 392/100=3 num = 392%100=92 i = 10 num/i = 92/10=9 num = 92%10=2 i = 1 num/i = 2 num=2%1=0 i=1/10=0结束for循环

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧