C++判断一个整形数的位数的几种写法
这里给出三种比较有代表性的写法:整除法(除10);判断法(if);数组法
//整除法
#include <iostream>
using namespace std;
int main()
{
float num=0;
float temp1=0;
int flag=0;
cout<<"please input a number from 0 to 9999:"<<endl;
cin>>num;
cout<<"the number you input is:"<<num<<endl;
temp1=num;
while(temp1>10)
{
temp1=temp1/10;
flag++;
}
cout<<"the length of your number is:"<<flag+1<<endl;
}
//判断法(if法)
#include <iostream>
using namespace std;
int main()
{
int num=0;
int flag=0;
cout<<"please input a number from 0 to 9999"<<endl;
cin>>num;
cout<<"the number that you have inputed is:"<<num<<endl;
if(num>999&&num<=9999)
{flag=4;}
else if(num>99&&num<=999)
{flag=3;}
else if(num>9&&num<=99)
{flag=2;}
else
{flag=1;}
cout<<"the length of the number is:"<<flag<<endl;
return 0;
}
//数组法
#include <iostream>
using namespace std;
int main()
{
int flag=0;
char num[5]={0};
cout<<"please input a number from 0 to 9999:"<<endl;
cin>>num;
cout<<"the number that you have inputed is:"<<num<<endl;
for(int i=0;i<5;i++)
{
if(num[i]!=0)
{
flag++;
}
}
cout<<"the length of this number is:"<<flag<<endl;
}