Potete dirmi cosa ho sbagliato in questo programma??

di il
2 risposte

Potete dirmi cosa ho sbagliato in questo programma??

#include <iostream>
#include <string.h>
#include<stdlib.h>
#define N 255
/* cerca una stringa all'interno di un alrtra stringa */
/* esercizio: Sia assegnato un testo organizzato in righi separati. individuare e tabellare le sottosequenze composte composte da almeno due caratteri disposti in ordine strettamente crescente.
Input
ZZZABCDXCCC
Output
ABCDX
*/
typedef char stringa[N];
using namespace std;
void cerca(stringa s){
int l,j=0;
stringa tronc;
l=strlen(s);
int i=1;
while(i<=l){
if(s>s[i-1] ){
cout<<s;
}
i++;
}
}
int main(int argc, char** argv) {
stringa riga;
cout<<"inserisci una frase"<<endl;
cin>>riga;
cerca(riga);
system("pause");
return 0;
}

2 Risposte

  • Re: Potete dirmi cosa ho sbagliato in questo programma??

    Salve

    Ecco il codice corretto:
    
    void cerca(stringa s)
    {
    	int l,j=0;
    	l=strlen(s)-1;
    
    	int i=0;
    	while(i<=l)
    	{
    		if(s[i] < s[i+1])
    		{
    			cout << s[i];
    		}
    		else if(s[i] > s[i+1] && s[i-1] < s[i])
    		{
    			cout << s[i] << "\n";
    		}
    		i++;
    	}	
    }
    
    Per cominciare ho rimosso la variabile tronc perché è inutilizzata, poi ho inizializzato i=0 e non i=1 perché altrimenti inizia a controllare dal secondo carattere e ricordati anche che l deve essere uguale alla lunghezza della stringa -1
    Ho cambiato anche il meccanismo di confronto (quindi osservalo) e ho fatto in modo di dividere le varie sequenze di ripetizioni
  • Re: Potete dirmi cosa ho sbagliato in questo programma??

    Grazie mille sono alle prime armi purtroppo
Devi accedere o registrarti per scrivere nel forum
2 risposte