怎么将一个整数的每位数取出来?

jinlin1989 2010-12-21 09:25:03
比如:
有一个变量里的值是 7786 怎么把7 7 8 6 分别取出来??
前提是你不知道这个数有几位数,有可能是两位数 有可能是三位数 。。。。。
...全文
2645 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinlin1989 2010-12-21
  • 打赏
  • 举报
回复
感谢各位前辈。结贴咯。
plusplus2010 2010-12-21
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int count_digits(int n) {

if ( n < 0) {
n *= (-1);
}

int i = 0;
while (n > 0) {
i++;
n = n/10;
}
return i;

}

void get_digits(int n, int digits_length, int digits[]) {

for (int i = 0; i < digits_length; i++ ) {
digits[i] = n % 10;
n = n/10;
}

}

int main() {
cout << count_digits(47) << endl;
cout << count_digits(-11) << endl;
cout << count_digits(0) << endl;

int n = 4711;
int digits_length = count_digits(n);
int * digits = new int[digits_length];
get_digits(n, digits_length, digits);
for (int i = digits_length - 1; i >= 0 ; i-- ) {
cout << digits[i] << " ";
}
cout << endl;
delete [] digits;
}

输出:
2
2
0
4 7 1 1
hdjbeyond 2010-12-21
  • 打赏
  • 举报
回复
取模运算
rasracter 2010-12-21
  • 打赏
  • 举报
回复
同6楼。
设一个长度足够长的字符串,用for循环全身为空或其它特殊符号。
然后用itoa把整数转换成字符串存入。
直接读取字符串非特殊符号的前几位就行了。
如果想转换回来就直接atoi各个位数。
prohibit 2010-12-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuintermilan 的回复:]
循环
%10 先模十,取出一位
/10 再除以10,缩小十倍
[/Quote]在不知道这个数有几位数的前提下,这应该是逆序输出,即6 8 7 7,觉得2楼合题意
Athenacle_ 2010-12-21
  • 打赏
  • 举报
回复
atoi
itoa
东大坡居士 2010-12-21
  • 打赏
  • 举报
回复 1

while(num)
{
printf("%d ",num%10);
num = num/10;
}

jinlin1989 2010-12-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuintermilan 的回复:]

循环
%10 先模十,取出一位
/10 再除以10,缩小十倍
[/Quote]

谢谢,,我试试去。
就想叫yoko 2010-12-21
  • 打赏
  • 举报
回复
+1[Quote=引用 2 楼 mstlq 的回复:]
C/C++ code
#include<stdio.h>

void gn(unsigned int data)
{
if (data != 0) {
gn(data / 10);
printf("%d\n", data % 10);
}
}

int main()
{
unsigned int i = 7786;
……
[/Quote]
mstlq 2010-12-21
  • 打赏
  • 举报
回复
#include<stdio.h>

void gn(unsigned int data)
{
if (data != 0) {
gn(data / 10);
printf("%d\n", data % 10);
}
}

int main()
{
unsigned int i = 7786;
gn(i);
puts("");
gn(12345);
return 0;
}

liuintermilan 2010-12-21
  • 打赏
  • 举报
回复
循环
%10 先模十,取出一位
/10 再除以10,缩小十倍

69,336

社区成员

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

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