Aiuto risoluzione esercizio

di il
2 risposte

Aiuto risoluzione esercizio

C'è qualcuno cosi gentile che sia in grado di aiutarmi con questo esercizio non so più cosa inventarmi...

Si consideri la matrice di caratteri char stringhe[N][LMAX];
che rappresenta N stringhe ciascuna di lunghezza massima LMAX (N e LMAX sono due costanti definite mediante la direttiva #define).
Si sviluppi un programma per aggiungere ad ogni stringa s nella matrice (corrispondente ad una riga) la prima di quelle seguenti che abbia esattamente le prime tre lettere in comune con le ultime tre lettere della stringa s, senza ripetere le tre lettere in comune. Se nessuna delle stringhe seguenti soddisfa questa condizione allora la stringa s non deve essere modificata.
Ad esempio, se la matrice contiene le seguenti stringhe:
rosa
lapis
osare
pistola
osannante
la matrice dovrà essere modificata in modo da contenere le seguenti stringhe:
rosare
lapistola
osare
pistola
osannante
NB: nel caso in cui una stringa risultante superi LMAX caratteri, si tronchino i caratteri eccedenti.

2 Risposte

  • Re: Aiuto risoluzione esercizio

    Ciao,
    come da regolamento, qui non si fanno i compiti. Posta i tuoi tentativi (cioè il codice che hai scritto) e poi vediamo come sistemare.
  • Re: Aiuto risoluzione esercizio

    Scusa non era quella la mia intenzione è solo che io ho provato a farlo ma sono arrivato a questo punto morto dove non capisco nemmeno perché mi stampa la parola rosa 2 volte non capisco se posso vedere la stringa i 2 dimensioni come una matrice contente lettere al posto che numeri e l' unica idea che mi e venuta in mente ma non so se e possibile come cosa


    #include <iostream>

    /* run this program using the console pauser or add your own getch, system("pause") or input loop */

    #define N 5
    #define LMAX 20

    int main(int argc, char** argv) {
    char stringhe[N][LMAX];
    int i,j;
    for(i=0;i<N;i++)
    for(j=0;j<LMAX;j++){
    printf("Inserisci stringa [%d][%d]\n",i,j);
    scanf("%s",stringhe[j]);
    }
    for(i=0;i<N && stringhe[j]!=0;i++)
    for(j=0;j<LMAX && stringhe[j]!=0;j++){
    if(stringhe[j-3]==stringhe[i+1][1] && stringhe[j-2]==stringhe[i+1][2] && stringhe[j-2]==stringhe[i+1][3])
    printf("%s\n",stringhe);
    }
    return 0;
    }
Devi accedere o registrarti per scrivere nel forum
2 risposte