Witam!
Próbuję rozwiązać zadanie z nadaktywną literą. Kiedy już wydaje mi się, że jestem coraz bliżej rozwiązania, natrafiam na dziwny błąd. Mianowicie dla
input
Ala ma kota, ale kot nie. - program działa normalnie i zwraca a
Ala ma kota, ale kot nie . - program się wysypuje
(Różnica w spacji na końcu przed kropką)
include
include
include
using namespace std;
char literka(string a)
{ int c, maksj=0, maksd=0;
char b, maxi;
for (int ile=0;ile<a.length();ile++)
{
c=0;
for (int i=0; i<a.length();i++)
{
b=a[ile];
if((b==(char)a[i]) && ((char)a[i]!=' '))
c++;
}
if (c>=maksj)
{maksj=c;
maxi=b;}
else if (c>=maksd)
maksd=c;
}if (maksj>2*maksd)
return maxi;
else return '0';
}int main()
{ int i=0, zdania=0, j=0;
string zdanie,a;getline(cin,zdanie); transform(zdanie.begin(),zdanie.end(),zdanie.begin(),::tolower); for (int ile=0;ile<zdanie.length();ile++) if(zdanie[ile]=='.') zdania++; char dominujace[zdania]; while (zdanie[j]!='\0') {i=0; while (zdanie[i]!='.') i++; a=zdanie.substr(0,i); dominujace[j]=literka(a); zdanie.erase(0,i+2); j++; }
for (i=0;i<zdania;i++)
{if (dominujace[i]!='0')
cout << i+1 << " - " << dominujace[i] << endl;
else cout << i+1 << " - BRAK" << endl;
}
return 0;
}
created
last reply
- 3
replies
- 513
views
- 3
users