// countnum.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream "
#include "math.h"
using namespace std;
int main()
{
int totalNumber,digitalCount[10]={0},destinationNum,countNum,switchNum;
int midNum,bit,countNum1,midVariable ; //bit 表示位数
do
{
cout<<"请输入一个数字,该数大于0且小于1000"<<endl;
cin>>totalNumber; //最大数
if(totalNumber<0 || totalNumber>=1000)
{
cout<<"你输入的数据有误,请重新输入:"<<endl;
}//if
} while (totalNumber<0 || totalNumber>=1000);
for(destinationNum=1;destinationNum<=totalNumber;destinationNum++)
{
if(destinationNum>0 && destinationNum<10 )
{
bit = 0;
}//if
else
{
if(destinationNum>=10 && destinationNum<100 )
{
bit = 1;
}//if
else
{
if(destinationNum>=100 && destinationNum<1000 )
{
bit = 2;
}//if
}//else
}//else
midVariable = destinationNum;
while(bit>=0)
{
countNum = midVariable/ pow(10,bit) ;
switchNum = int(pow(10,bit));
midNum = destinationNum % switchNum;
midVariable = midNum;
bit--;
switch(countNum)
{
case 0 : digitalCount[0]++; break;
case 1 : digitalCount[1]++; break;
case 2 : digitalCount[2]++; break;
case 3 : digitalCount[3]++; break;
case 4 : digitalCount[4]++; break;
case 5 : digitalCount[5]++; break;
case 6 : digitalCount[6]++; break;
case 7 : digitalCount[7]++; break;
case 8 : digitalCount[8]++; break;
case 9 : digitalCount[9]++; break;
default : cout<<"error"; break;
}//switch
}//while
}//for
//输出结果
for(countNum1 = 0; countNum1<10;countNum1++)
{
cout<< countNum1 <<"的个数为:"<<digitalCount[countNum1]<<endl;
}//for
return 0;
}
运行结果