题目:从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入0123.456,返回值为整数有效位数为3)
// SumInte.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream"
#include "string"
using namespace std;
int main()
{
char numStr[60];
cin>>numStr;
int length=strlen(numStr);
//coutInt为输入串中所有整数,coutComma为点数,count为有1个小数点时整数个数
int coutInt=0,coutComma=0,count=0;
//判断是否第一个为“.”
if(numStr[0]=='.')
{
cout<<"整数部分为0";
};
for(int i=0;i<length;i++){
/*if (!isdigit(numStr[i])||numStr[i]!='.')
{
cout<<"It is a illegal number";
return 0;
}*/
if (isdigit(numStr[i]))
{
if(coutInt==0&&numStr[i]=='0'){
coutInt=0;
}
else
{
coutInt++;
}
}
else if(numStr[i]=='.'){
coutComma++;
if(coutComma==1)
count=coutInt;
}
else{
cout<<"It is a illegal number\n";
return 0;
}
}
switch (coutComma)
{
case 0:
cout<<"整数部分为"<<coutInt<<"\n"; break;
case 1:
cout<<"整数部分为"<<count<<"\n";break;
default:cout<<"It is a illegal number\n";
break;
}
}