Witam, zadanie polega na tym aby posłużyć się tablicą liczbową, charem (do poszczególnych liter) i stringiem, do liczbowej wpisane są same zera i dopiero kiedy jest dana litera zmienia wartość i tak kiedy mamy wyraz "mammalyga" tablica ma wyglądać mniej więcej 12112342.
(Robiłam to w szkole i wygodniej mi było na globalnych)
#include <iostream>
using namespace std;
int main()
{
char znak;
int i[100],l=1;
string wyraz;
cin>>wyraz;
int dl=wyraz.length();
cout<<dl;
cout<<endl;
for (int y=0;y<dl;y++)
{
i[y]=0;
cout<<i[y];
}
cout<<endl;
for ( int y=0;y<dl;y++)
{
znak = wyraz[y] ;
for ( int u = 0 ; u < dl ; u++)
{
if ( wyraz [u] == znak && i[u] == 0 )
i[u]=l;
}
l++;
}
for ( int y = 0 ; y < dl ; y++ )
cout << i[y] << " " ;
return 0;
}
Problem pojawia się miedzy 20 a 29 linijką (cała reszta działa poprawnie). Czasem działa, ale częściej omija powiedzmy że 2 i od razu przechodzi do 3, abo inne cuda na kiju. Wiem, że muszę wpisać tam warunek, a nawet coś mi świta jak ma wyglądać, lecz nie potrafię tego zapisać. Ma ktoś może jakąś radę dla mnie, albo od razu oszczędzi mi męki i powie jak to zrobić, bo próbowałam różnych sposobów, ale jak coś jest głupie, a nie działa to jednak jest głupie.