判断小数的整数位

来源:互联网 发布:2017年最新网络词汇 编辑:程序博客网 时间:2024/05/17 03:58
题目:从键盘中输入一个数字(可以包含小数点,其位数在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;}}