Aiuto sono nuovo nel forum, e mi presento gia rompendo le balle xD.... Venendo al dunque non riesco a trovare dov'è l'inghippo in questo programma che ho creato.
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const int M=100;
char p[M],p2[M];
char c,d;
int i=0,j=0,k=0,t=0,n=0;
cout << "Dai la prima parola: ";
c=cin.get();
while(c!='\n' && i<M && c!=' ')
{
if (c>=65 && c<=90)
{
p[i]=c+32;
i=i+1;
}
c=cin.get();
}
cout << "Dai la seconda parola: ";
d=cin.get();
while(d!='\n' && j<M && d!=' ')
{
if (d>=65 && d<=90)
{
p[j]=d+32;
j=j+1;
}
d=cin.get();
}
if(j>=i)
{
for(k=0;k<i;k++)
{
if(p[k]==p2[k]) n=n+1;
else if(p[k]>p2[k])
{
cout<<"La parola "<<p<<" precede la parola "<<p2;
break;
}
else
{
cout<<"La parola "<<p2<<" precede la parola "<<p;
break;
}
}
if(n==k) cout<<"Le due parole sono uguali.";
else cout<<"La parola "<<p2<<" e' prefisso della parola "<<p;
}
else
{
for(k=0;k<j;k++)
{
if(p[k]==p2[k]) n=n+1;
else if(p[k]>p2[k])
{
cout<<"La parola "<<p<<" precede la parola "<<p2;
break;
}
else
{
cout<<"La parola "<<p2<<" precede la parola "<<p;
break;
}
}
if(n==k) cout<<"Le due parole sono uguali.";
else cout<<"La parola "<<p<<" e' prefisso della parola "<<p2;
}
system("pause");
return 0;
}
Il problema è che qualsiasi parola che inserisco lui mi dice che sono uguali... credo ci sia qualcosa di sbagliato nella condizione che comporta l'istruzione n=n+1.
Grazie in anticipo