Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C] Problema con esercizio ciclo while

    Ormai son tre giorni che non riesco a fare questo esercizio, non sono molto pratico del "C" e questo esercizio proprio non riesco a farlo, il seguente è il testo dell'esercizio:

    Esercizio 7 : Scrivere un programma che legge una sequenza di lettere maiuscole che termina con invio e
    segnala se esistono lettere che si presentano CONSECUTIVAMENTE piu’ di una volta visualizzando
    ciascuna lettera e la sua frequenza.Non utilizzare array. ESEMPIO:
    la sequenza in input SAAVBXCCCMRTTTAAAAA invio
    Genera in output:
    A 2 volte
    C 3 volte
    T 3 volte
    A 5 volte

    Se qualcuno può darmi una mano la accetterei volentieri,
    grazie a tutti in anticipo...

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    bè posta ciò che hai già fatto che ti diamo una mano.. niente svolgimenti di esercizi qui..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    35
    perchè senza usare array?

    cmq dovresti leggere una lettera, leggere la successiva e confrontarla. es:

    int lett,lett1;
    lett=getch();
    while(/*Scegli tu fino a quando leggere*/)
    { lett1=getch();
    if(lett==lett1)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    35
    quello che ti ho scritto è ovvio. posta il codice così ti diamo una mano.

  5. #5
    Questo è il poco che sono riuscito a fare, e per esserci tre giorni i risultati non sono per niente soddisfacenti..cmq grazie e scusate il disturbo..

    #include <stdio.h>
    main()
    {
    char c = getchar();
    char x;
    int cont = 1;
    while (c!='\n')
    {
    while ((c>=65)&&(c<=90))
    {
    while ((c>=65)&&(c<=90))
    {
    x=getchar();
    if (c==x) cont++; else
    {
    while (c==x)
    {
    x=getchar();
    cont++;
    }
    printf("\n%c %d VOLTE", x, cont);
    }
    }
    cont=1;
    }
    }
    printf ("\nciao");
    fflush(stdin);
    getchar();
    }

  6. #6
    senza usare array perchè quando mi è stato assegnato la docente non aveva ancora spiegato i vettori, ci ha assicurato che il modo di farlo c'è anche se ci ha avvisato che sarebbe stato difficile per uno che come me è alle prime armi..

  7. #7
    Ho provato a seguire il tuo aiuto, quello che ne viene fuori è questo... i risultati ancora non arrivano, è ke non capisco dove sbaglio..

    #include <stdio.h>
    main()
    {
    int cont = 1;
    int lett;
    int lett1;

    printf("\nInserisci una sequenza di lettere maiuscole: ");
    lett=getchar();
    while ((lett<65)||(lett>90)) {
    printf ("\nDevi inserire una sequenza di lettere maiuscole: ");
    lett= getchar();}

    while(lett!='\n')
    { lett1=getchar();
    if(lett==lett1)
    {cont++; //incremento il contatore se le prime 2 lettere sono uguali
    while (lett==lett1)
    {lett=getchar();}
    cont++;
    printf("\n%c %d volte",lett, cont); //stampo il valore del contatore
    cont=1;} //riporto a 1 il contatore
    }
    fflush(stdin);
    getchar();
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    35
    prova così:

    codice:
     int lett,lett1,conta=1;
    lett='1'/*non al carattere che termina la lettura della sequenza*/;
    lett1=getchar();  //lettura del primo car della sequenza
    
    while(lett!='0'/*carattere che termina la lettura della sequenza*/)
             {
                lett=getchar();
                if(lett!=lett1)
                                 {
                                  if(conta>1)
                                        printf("La lettera %c si ripete %d volte",lett1,conta);
                                  conta=1;
                                  }
                else
                     conta++;
                lett1=lett;
                
                }

  9. #9
    Grazie mille, non c'è la selezione delle sole lettere maiuscole ma quello non è un problema.. il pezzo di codice che mi hai mandato funziona alla perfezione..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.