i have a string from a user and i want to calculate the probability of each letter in this string
i wrote this code in c++ but the probability comes to be zero i don't know why
#include<iostream>#include<fstream>
using namespace std;
#include<conio.h>
int main()
{ string x , y , unix , uniy ;
int nx,ny,nux,nuy,countx,county ;
cout<<"Enter the input message"<<endl;
cin>>x;
cout<<"Enter the output message"<<endl;
cin>>y;
nx = x.length();
ny = y.length();
cout<<nx<<endl;
cout<<ny<<endl;
unix =x;
uniy=y;
sort(unix.begin(),unix.end());
unix.erase(unique(unix.begin(), unix.end()), unix.end());
cout<<unix<<endl;
nux= unix.length();
int p[nux];
for(int i=0;i<nux;i++)
{
countx=0;
for(int j=0;j<nx;j++)
{if(unix[i]==x[j])
countx ++;
p[i]= countx;
}
cout<<p[i]<<"\t";
}
sort(uniy.begin(),uniy.end());
uniy.erase(unique(uniy.begin(), uniy.end()), uniy.end());
cout<<uniy<<endl;
nuy= uniy.length();
int q[nuy];
for(int i=0;i<nuy;i++)
{
county=0;
for(int j=0;j<ny;j++)
{if(uniy[i]==y[j])
county ++;
q[i]= county;
}
cout<<q[i]<<"\t";
}
// probability p(X)
float probx[nux] , proby[nuy];
for(int i=0;i<nux;i++)
{
probx[i]= p[i]/nx;
}
// probability p(y)
for(int i=0;i<nuy;i++)
{
proby[i]=q[i]/ny;
}
for(int i=0;i<nux;i++)
{cout<<probx[i];}
getch();
return 0;
}