从键盘输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数

从键盘输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数

c

6个回答

 #include <iostream>
using namespace std;
int main()
{
    cout << "输入一个数:" ;
    int n;
    cin >> n;
    cout << endl;
    int a = 1;
    int m;
    do
    {
        m = n/10;
        if(m>0)
            a++;
    }while(m>0);

    cout << a << endl;
    return 0;
}


VISUAL_STUDIO1
lifuguan 为什么只能判断个数,多位数无法显示结果
4 年多之前 回复

我用java不过逻辑都一样
int n = 987878976;//正是是从键盘接收的数字,处理后的数字。
int count = 0;//保存数字的位数
while(n>=1){
count++;
n = n/10;
}
//输出count就可以了

q4444tita
青春逝如流水 回复开始编程的李先生: 没考虑,因为要考虑的太多了,还可能遇到输入字符不是数字的情况
4 年多之前 回复
qq_33394807
开始编程的李先生 你有没有考虑当n是小于等于0的情况呢,那是不是错了
4 年多之前 回复
 #include <iostream>
#include<stdio.h>
using namespace std;

int main()
{
   int a,num = 0;
   scanf("%d",&a);
   if(a < 0) a = a * (-1);
   if(a == 0) num = 1;
   while(a >= 1){
    num++;
    a = a/10;
   }
   printf("%d",num);
    return 0;
}

int n,m=0;
printf("请输入数据\n");
scanf("%d",&n);
while(n>0)
{
m++;
n=n/10;
}
printf("%d\n",m);

herozhangbz
herozhangbz 不考虑n为负数或者零的情况,考虑的是正数
4 年多之前 回复
herozhangbz
herozhangbz 回复开始编程的李先生: 并没有错啊兄弟
4 年多之前 回复
qq_33394807
开始编程的李先生 n = 0 , m = 0错了
4 年多之前 回复

先判断如果不是数字,报错并提示重新输入(可以根据scanf的返回值判断)
在判断,如果等于0输出1,小于则取反在计算

#include
using namespace std;
int main()
{
int a,num,count=1;
cin>>a;
num=a/10;
while(num>0)
{
count++;
num=num/10;
}
cout<<"位数是:"<<count<<endl;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐