C++程序设计:输入一个正整数求出它是几位数;输出原数和位数

如题所述

循环取模运算就可以了啊
假设输入数是a
i = a%10
j = a/10
如果j等于0说明已经找到最高位,则结束循环
如果j不等于0,则说明找到当前最后一位i,继续循环 j不等于0的次数就是位数啊
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
#include <stdio.h>
#include <stdlib.h>

int cnt_int(int num)
{
int i,j;
j=0;
while(num>0){
i= num % 10;
num= num / 10;
printf("%d\n",i);
j++;
}
return j;
}
int main()
{
int num,n;
scanf("%d",&num);
n = cnt_int(num);
printf("整数 %d 为 %d 位整数\n",num,n);
return 0;
}

结果为:
1234 <------------- 输入 1234
4
3
2
1
整数 1234 为 4 位整数追问

使用C++语言,谢谢,开头是#include的,正在考试,求大神啊

追答

可以加入这个 头文件, 运行结果一样

追问

老师不让

追答

把 printf("%d\n",i); 修改为
cout>num;

printf("整数 %d 为 %d 位整数\n",num,n);

cout>>"整数 ">>num>>" 为 ">>n>>" 位整数\n";

本回答被网友采纳
第2个回答  2013-01-05
int num=1999; //输入1999
int temp;
int k=1; //位数

temp = num;
while(temp /10 != 0)
{
temp = temp /10 ;
k++;
}

printf("输入%d,位数%d",num,k);

大致可以这样做
第3个回答  2013-01-05
先输入,然后把整数转换成字符串进行处理。
相似回答