Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    11

    [C]programma conta lettere di una parola

    ciao a tutti...ho un piccolo problema che però mi sta tenendo sveglio...in pratica ho scritto un programmino che prende in input una frase e in output da i numeri delle lettere contenute in ciascuna parola. in fin dei conti ho finito, ma c'è una cosa che mi infastidisce

    codice:
    #include <stdio.h>
    main()
    {
         char l;
         int abc=0;
    
         printf("Inserite la parola o la frase:");
         
         while(l!='\n'){
         scanf("%c",&l);
         
                       
                        if((65<=l<=90) && (97<=l<=122) && (l!=32))
                        abc++;    
                                           
                        if(l==32){
                        printf("%d\n",abc);      
                        abc=0;
                        }
          }
                           
          return 0; 
    }
    quando mi deve stampare i risultati se non metto uno spazio alla fine della frase non mi calcola l ultima parola...so che fa così perchè con "if(l==32)" stampo e azzero con lo spazio,ma se sapete dirmi un modo per far si che con il semplice invio,senza lo spazio finale,riesco a far calcolare anche l ultima parola ve ne sarei grato. spero di essere stato chiaro...grazie in anticipo per la risposta.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: [C]programma conta lettere di una parola

    Le correzioni in rosso ..

    codice:
    #include <stdio.h>
    
    int main()
    {
         char l=0;
         int abc=0;
    
         printf("Inserite la parola o la frase:");
         
         while(l!='\n')
         {
            scanf("%c",&l);
         
            if((l>=65 && l<=90) || (l>=97 && l<=122) && (l!=32))
               abc++;    
                                           
            if(l==32 || l==10)
            {
               if(abc)
                    printf("%d\n",abc);      
               abc=0;
            }
        }
                           
        return 0; 
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    11
    ti ringrazio...sei stato gentilissimo...se avessi ancora un po di tempo da dedicarmi potresti spiegarmi una tua correzione?! per esempio: perchè cambiare la " L" compresa tra e mettere tutte le uguaglianze separatamente? e poi scusami per l ignoranza ma nn conoscevo proprio il significato del 10 sulla tabella dei caratteri. int main e char l=0 errori imperdonabili! ..
    aggiungo una domanda...con o senza l'-_"if(abc)" funziona lo stesso...sai dirmi il perchè?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da snatch84
    ti ringrazio...sei stato gentilissimo...se avessi ancora un po di tempo da dedicarmi potresti spiegarmi una tua correzione?! per esempio: perchè cambiare la " L" compresa tra e mettere tutte le uguaglianze separatamente?
    Perche' tu hai scritto in stile "matematico", ma per il C/C++ il significato di quello che hai scritto e' molto diverso.

    Rivedi la parte di teoria che riguarda le espressioni booleane ...

    e poi scusami per l ignoranza ma nn conoscevo proprio il significato del 10 sulla tabella dei caratteri.
    Stiamo parlando del Line Feed (10) che ottieni quando pressi il tasto Invio ... stiamo parlando di tabella ASCII e di Informatica di Base ...

    Mi meraviglio che (penso all'università) si inizi a programmare senza studiare le "basi" dell'informatica ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    11
    dopo che tu che l hai scritto sono andato a guardare e ho letto il significato...ho cmq iniziato da un mesetto e sapere tutte "le basi" tanto da arrivarci al volo senza doverci riflettere 1000 volte + di te nn credo sia possibile almeno per la mia situazione di studente lavoratore...è il quinto programmino che scrivo e grazie a gente come voi imparerò a conoscere meglio le basi! ....grazie mille ancora per la disponibilità...buona giornata

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da snatch84
    dopo che tu che l hai scritto sono andato a guardare e ho letto il significato...ho cmq iniziato da un mesetto e sapere tutte "le basi" tanto da arrivarci al volo senza doverci riflettere 1000 volte + di te nn credo sia possibile almeno per la mia situazione di studente lavoratore...è il quinto programmino che scrivo e grazie a gente come voi imparerò a conoscere meglio le basi! ....grazie mille ancora per la disponibilità...buona giornata
    In bocca al lupo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    11
    crepi...spero che nn fosse ironico! :P

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da snatch84
    crepi...spero che nn fosse ironico! :P
    No ... assolutamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    15
    Domandina, il codice ascii non prevede caratteri accentati, è un limite accettabile o tocca trovare rimedio?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Janbure
    Domandina, il codice ascii non prevede caratteri accentati, è un limite accettabile o tocca trovare rimedio?
    Se e' accettabile lo deve dire il testo dell'esercizio.

    Se il testo indica che le lettere accentate debbano essere conteggiate, allora si dovranno controllare anche i codici relativi, altrimenti no.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.