不说废话,直接上代码。
#include<bits/stdc++.h>
using namespace std;
bool digit(string& c)
{
bool retur=true;
for(int j=0;j<c.length();j++)
{
retur=retur&&((c[j]<='9'&&c[j]>='1')||c[j]=='.');
}
return retur;
}
int main()
{
string a;
char kl='n';
int b[10]={0},sum=0;
while(cin>>a&&digit(a))
{
b[static_cast<int>(a[0])-static_cast<int>('0')]++;
sum++;
}
long double yu,shi;
for(int i=1;i<10;i++)
{
yu=log10(1+(1.00/i));
shi=1.0*b[i]/sum;
cout<<"数字"<<i<<"的预测概率为:"<<yu<<"实际概率为:"<<shi<<"误差:"<<abs(yu-shi)<<"\n";
}
}