给定一个整数,要求从个位开始分离出它的每一位数字。
输入一个整数,整数在1到100000000之间。
从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。
12345
5 4 3 2 1
C语言实现:
#include<stdio.h>int main()
{int n,x,y;scanf("%d", &n);x=n;int i;for(i=1;i<=10;i++){if(i==1) //等于1时直接%10得个位数字{y=x%10;printf("%d ",y);}if(x<10) //如果x值只有一位则跳出循环break;y=(x/10)%10; //比如:1234,1234/10=123,123%10=3,依次循环printf("%d ",y);x=x/10; //下一次所要操作的值,剔除已经求出的“个位”}return 0;}
结果:
前面所说的只是倒序输出,现在看一下顺序输出,主要用数组实现。
#include<stdio.h>int main()
{int n,x,y[10];scanf("%d", &n);x=n;int i,sum=0; //sum用于确定所输入个数位数for(i=0;i<10;i++){if(i==0){y[0]=x%10; //如果是第一位,则将个位存在数组sum++;}if(x<10) //如果x<10则跳出循环break;if(i>0){y[i]=(x/10)%10; 与上面相同的算法x=x/10;sum++;}}int k=sum;for(i=0;i<k;i++) //循环所属数字的位数次{printf("%d ",y[sum-1]); //从后向前输出sum--;}return 0;}
结果:
顺序输出一开始用循环i--输出,结果输出不了,用数组输出一定控制好位数,不然会有数据溢出。
本文发布于:2024-02-05 05:24:07,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170725139163418.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |