Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Conta dei caratteri

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    residenza
    Firenze
    Messaggi
    18

    Conta dei caratteri

    Buonasera a tutti, chi mi saprebbe aiutare in questa programmino?!

    //Programma che legge N caratteri da tastiera e comunica quante a,b,c,d,e sono state inserite. //

    Purtroppo il problema è che, quando mi stampa il numero di caratteri, risultano numeri tutti sballati... eppure penso di aver fatto tutto bene :/

    Ecco il codice:


    codice:
    #include<iostream>
    #include <conio.h>
    
    
    using namespace std;
    
    
    int main()
    {
        int i, n, somma=0, v1[4];
     char    v[n];
        
    cout<<"Quanti sono i caratteri che vuoi inserire? " ;
    cin>> n;
    for(i=0; i<n;i++) 
     {
         v1[i]=0;
    
    
     }
     
     
    for(i=0; i<n;i++)
    {
        cout<<"Inserisci il "<<i+1<<" carattere ";
        cin>> v[i];
        
    }
    
    
    for(i=0; i<n; i++)
    {
            switch(v[i])
        {
            case 'a':
                v1[0]= v1[0] +1;
            break;
            
            case 'b':
                v1[1]= v1[1] +1;
            break;
            
            case 'c':
                v1[2]= v1[2] +1;
            break;
            
            case 'd':
                v1[3]= v1[3] +1;
            break;
            
            case 'e':
                v1[4]= v1[4] +1;
            break;
        }
    }
    
    
    
    
    cout<<"Sono state inserite " << v1[0] << " a \n";
    cout<<"Sono state inserite " << v1[1] << " b \n";
    cout<<"Sono state inserite " << v1[2] << " c \n";
    cout<<"Sono state inserite " << v1[3] << " d \n";
    cout<<"Sono state inserite " << v1[4] << " e \n";
    
    
    system("pause");
    return 0; 
    }

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    char v[n]; non è possibile farlo: la lunghezza dovrebbe essere un'espressione valutabile a tempo di compilazione. Per lo più n non è inizializzata e contiene perciò un valore casuale e impredicibile.
    v1[i] = 0; 0 <= i < n ma v1 ha solo 4 elementi quindi dovrebbe essere 0 <= i < 4
    v1[4] non vi puoi accedere per lo stesso motivo di cui sopra
    Ultima modifica di Scara95; 03-03-2015 a 23:39
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2015
    residenza
    Firenze
    Messaggi
    18
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    char v[n]; non è possibile farlo: la lunghezza dovrebbe essere un'espressione valutabile a tempo di compilazione. Per lo più n non è inizializzata e contiene perciò un valore casuale e impredicibile.
    v1[i] = 0; 0 <= i < n ma v1 ha solo 4 elementi quindi dovrebbe essere 0 <= i < 4
    v1[4] non vi puoi accedere per lo stesso motivo di cui sopra
    EDIT: Risolto... ti ringrazio
    Ultima modifica di light95; 04-03-2015 a 00:15

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Controlla questo

    for(i<=0; i<n;i++)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2015
    residenza
    Firenze
    Messaggi
    18
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Controlla questo

    for(i<=0; i<n;i++)
    Ho risolto... in pratica non riusciva a inizializzare a 0 il vettore v1...

    ho risolto facendo :

    for(i=0; i<=4;i++)

    Ma mi spieghi il perchè si mette i<=4 e non i<4?!
    Cioè, gli elementi del vettore sono 5... da 0 a 4 sono 5 numeri... perchè bisogna mettere anche il " = " ?!

    Non so se mi son spiegato bene :P

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No, questo

    for(i=0; i<4;i++)

    è sbagliato (e già ti era stato detto). Se gli elementi sono 5 deve essere

    for(i=0; i<5;i++)

    Quello che ti avevo detto io è che è sbagliata quest'altra for

    for(i<=0; i<n;i++)

    prima che tu modificassi il post (cosa che, tra l'altro, non si fa, altrimenti non si capisce nulla del discorso ...)
    Ultima modifica di oregon; 04-03-2015 a 00:32
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2015
    residenza
    Firenze
    Messaggi
    18
    Si scusami,hai ragione... non lo farò più, promesso :P

    Ritornando a noi... mi rispondi alla mia domanda del post 5? Vorrei capire a livello logico...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se gli elementi sono 5 devi scrivere <5 oppure <=4 perché in questo modo l'ultimo elemento trattato sarà il numero 4

    Ma se gli elementi sono 4 allora <=4 è sbagliato
    Ultima modifica di oregon; 04-03-2015 a 00:36
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2015
    residenza
    Firenze
    Messaggi
    18
    Capito... ti ringrazio

  10. #10
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    @light attento che funziona è diverso da corretto. Funziona in ogni circostanza va già meglio.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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 © 2025 vBulletin Solutions, Inc. All rights reserved.