Problema con un programma in c

di il
4 risposte

Problema con un programma in c

Salve a tutti ho un problema con questo programmino, in pratica dovrei verificare se in una stringa ci siano 3 caratteri uguali consecutivi.
Se inserisco una parola o una frase con 3 caratteri uguali consecutivi me li trova e mi stampa anche il carattere presente 3 volte consecutivamente, mentre se non lo inserisco mi dice lo stesso che sono stati trovati pero non mi stampa il carattere.
Questo e il codice:
int main(int argc, char** argv) {
    char parola[100];
    gets(parola);
    int i;
    int dim;
    dim=strlen(parola);
    printf ("La parola inserita e \n%s",parola);
    char inizio;
    int uguali=0;
    for(i=0;i<dim-2;i++){
        int j,k;
        j=i+1;
        k=i+2;
        
        
        if((parola[i]==parola[j]) && (parola[i]==parola[k])){
            inizio=parola[i];
            printf ("\n\ncarattere\n%c",inizio);
            uguali++;
        }
    }
    if(uguali=1){
        printf ("\nLa parola ha piu di 3 caratteri uguali e il carattere uguale e %c",inizio);
    }
    else{
        printf("\nLa parola inserita non ha 3 caratteri consecutivi uguali.");
    }
    
    

    return (EXIT_SUCCESS);
}

4 Risposte

  • Re: Problema con un programma in c

    If(uguali==1)
  • Re: Problema con un programma in c

    If(uguali=1)

    Che c'è di sbagliato?
  • Re: Problema con un programma in c

    È vero devo mettere il doppio uguale.
    Grazie mille come sempre gentilissimo.
  • Re: Problema con un programma in c

    Io avrei pensato così
    
    /*
     * stringadoppie.c
     *
     * 08-09-2020 Nelson "Standardoil"
     * Sentitevi liberi di trarre ispirazione
     * L'ammiraglio non si offende
     *
     *
     */
    
    
    #include <stdio.h>
    
    
    
    char doppi(char * s, int n)
    {
       int c = 0;
    
       while(*s)
       {
          if(*s == *(s + 1))
          {
             c++;
    
             if(c == n - 1)
             {
                return *s;
             }
          }
    
          else
          {
             c = 0;
          }
    
          s++;
       }
    
       return 0;
    }
    
    int main(int argc, char **argv)
    {
       char * s = "ricerca doppioni in una   stringaaaa";
    
       for(int n = 2; n < 6; n++)
       {
          char c = doppi(s, n);
    
          if(c)
          {
             printf("\nNella stringa -%s- il primo carattere ripetuto almeno %d volte è: -%c-\n", s, n, c);
          }
    
          else
          {
             printf("\nNella stringa -%s- non ci sono caratteri ripetuti almeno %d volte.\n", s, n);
          }
       }
    
       printf("\nprogramma finito\n");
       return 0;
    }
    
    

    Scritto un po' al volo...
Devi accedere o registrarti per scrivere nel forum
4 risposte