What is wrong in this code
int main()
{
string str;
int arr[256]={0};
int t;
cin>>t;
for(int i=0;i<t;i++)
{
cin>>str;
for(int j=0;j<str.length();j++)
{
arr[str[j]]++;
}
int maxm=-1,pos=0;
char val;
for(int m=0;m<256;m++)
{
if(arr[m]>=maxm&&arr[m]>0)
{
if(arr[m]==maxm)
{
if(m>pos)
maxm=arr[pos];
}
else
{
maxm=arr[m];
pos=m;
}
}
}
for(int j=0;j<256;j++)
{
if(arr[j]==maxm)
{val=j;
break;
}}
for(int i=0;i<str.length();i++)
{
if(str[i]==val)
str[i]='?';
}
cout<<str<<endl;
}
return 0;
}