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

Discussione: [C]Problema di input

  1. #1

    [C]Problema di input

    Ciao,
    devo fare un programma che permetta ricevuto un array di numeri interi positivi terminata da zero di restituire il numero di elementi che contengono un numero pari di cifre.
    Il problema è nell'input infatti:
    1) L'inserimento mi è consentito solo per 4 numeri e non di più;
    2) Non termina l'inserimento di numeri quando premo zero

    codice:
    #include<stdio.h>
    int main()
    {
        int n[100], i=0;
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%d", &n[i]);
           i++;
        }
        while(n[i]!=0);
        printf("\nIl numero di elementi che contengono cifre pari e\': %d", npar(n));
    }
    //Implementazione della funzione che conta il numero di elementi a cifre pari
    int npar(int n1[])
    {
                int tot=0, n2[100], z=0, con=0;
                do
                {
                    n2[z]=n1[z];
                    while(n2[z]!=0)
                    {
                        n2[z]/10;
                        con++;
                    }
                    if(con%2==0)
                       tot++;
                    con=0;
                    z++;
                }
                while(n1[z]!=0);
                return tot;
    }
    Ciao e grazie

    P.S. Auguri a tutti di buon anno anche se molto in ritardo
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  2. #2

    Re: [C]Problema di input

    Originariamente inviato da 21Edoardo96
    Ciao, devo fare un programma che permetta ricevuto un array di numeri interi positivi terminata da zero di restituire il numero di elementi che contengono un numero pari di cifre.
    Ad una prima lettura non è molto chiaro, sarebbe stato più comprensibile così:
    Ciao, devo fare un programma che permetta - ricevuto un array di numeri interi positivi terminata da zero - di restituire il numero di elementi che contengono un numero pari di cifre.
    Con 2 piccole linee è molto più chiaro, non credi?


    Ignorando il fatto che questi piccoli problemi di C si risolvano mediante la lettura e lo studio di qualsiasi libro, dai un'occhiata qui: è una dispensa di un corso di Ingegneria dell'Università di Benevento, che spiega come accettare gli input e gestire gli array.

    Ciao
    "Memento audere semper"

    IBM Europe - Italy Group

  3. #3
    Ciao,
    ho riletto più volte il codice e la pagina che mi hai consigliato ma, non ho capito dove si trovi l'errore.
    Potresti dirmi quale parte dovrei modificare al fine di far funzionare il codice.
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  4. #4
    Ciao,
    ho modificato il codice ed adesso l'unico problema che trovo è che non termina l'inserimento dei numeri quando premo il tasto zero
    codice:
    #include<stdio.h>
    int main()
    {
        int n[1000], i=0;
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%d", &n[i]);
           i++;
        }
        while(n[i-1]!=0); 
        printf("\nIl numero di elementi che contengono cifre pari e\': %d", npar(n));
    }
    //Implementazione della funzione che conta il numero di elementi a cifre pari
    int npar(int n1[])
    {
                int tot=0, n2[100], z=0, con=0;
                do
                {
                    n2[z]=n1[z];
                    while(n2[z]=0)
                    {
                        n2[z]/10;
                        con++;
                    }
                    if(con%2==0)
                       tot++;
                    con=0;
                    z++;
                }
                while(n1[z]!=0);
                return tot;
    }
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

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

    Re: [C]Problema di input

    Originariamente inviato da 21Edoardo96
    1) L'inserimento mi è consentito solo per 4 numeri e non di più;
    Non mi pare

    2) Non termina l'inserimento di numeri quando premo zero
    Nota che inserisci il valore in n[i], incrementi i con i++ e poi confronti n[i] con 0 ...


    P.S. Controlla anche

    n2[z]/10;

    perché non ha molto senso
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Ciao,
    ho modificato un po' il codice è solo che permane il problema di uscire dall'inserimento quando ho premuto zero.
    codice:
    #include<stdio.h>
    int main()
    {
        int n[1000], i=0;
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%d", &n[i]);
           i++;
        }
        while(n[i-1]!=0);
        printf("\nIl numero di elementi che contengono cifre pari e\': %d", npar(n));
    }
    //Implementazione della funzione che conta il numero di elementi a cifre pari
    int npar(int n1[])
    {
                int tot=0, n2[100], z=0, con=0;
                do
                {
                    n2[z]=n1[z];
                    while(n2[z]=0)
                    {
                        ne[z]=n2[z]/10;
                        con++;
                    }
                    if(con%2==0)
                       tot++;
                    con=0;
                    z++;
                }
                while(n1[z]!=0);
                return tot;
    }
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Veramente funziona ... ovviamente inserisci 0 e return ...

    Probabilmente non hai compilato correttamente (fra l'altro DOVRESTI avere degli errori in compilazione ... li hai? )


    P.S. ne[z] è sbagliato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Ciao,
    per sistemare l'input ho dovuto solo aggiungere il return 0.
    Ora devo guardare la funzione che mi crea ancora dei problemi.
    codice:
    #include<stdio.h>
    int main()
    {
        int n[1000], i=0;
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%d", &n[i]);
           i++;
        }
        while(n[i-1]!=0);
        printf("\nIl numero di elementi che contengono cifre pari e\': %d\n", npar(n));
        system ("pause");
        return 0;
    }
    //Implementazione della funzione che conta il numero di elementi a cifre pari
    int npar(int n1[])
    {
                int tot=0, n2[100], z=0, con=0;
                do
                {
                    n2[z]=n1[z];
                    while(n2[z]=0)
                    {
                        n2[z]=n2[z]/10;
                        con++;
                    }
                    if(con%2==0)
                       tot++;
                    con=0;
                    z++;
                }
                while(n1[z-1]!=0);
                return tot;
    }
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da 21Edoardo96
    Ciao,
    per sistemare l'input ho dovuto solo aggiungere il return 0.
    Il return 0 non c'entra nulla con l'input.

    Il tuo problema era che *non riuscivi a compilare* a causa dell'errore e (come pensavo) ed eseguivi sempre il vecchio programma.

    Devi fare *molta attenzione* agli errore di compilazione.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Ok,
    grazie per la precisazione.
    IL problema che continuo a riscontrare è che la funzione conta qualsiasi numero inserito come numero con cifre poari come mai?
    codice:
    #include<stdio.h>
    int main()
    {
        int n[1000], i=0;
        printf("Inserisci un numero (per terminare premi zero)");
        do
        {
           printf("\nInserisci il %d%c numero:", i+1, 167);
           scanf("%d", &n[i]);
           i++;
        }
        while(n[i-1]!=0);
        printf("\nIl numero di elementi che contengono cifre pari e\': %d\n", npar(n));
        system ("pause");
        return 0;
    }
    //Implementazione della funzione che conta il numero di elementi a cifre pari
    int npar(int n1[])
    {
                int tot=0, n2[100], z=0, con=0;
                do
                {
                    n2[z]=n1[z];
                    while(n2[z]=0)
                    {
                        n2[z]=n2[z]/10;
                        con++;
                    }
                    if(con%2==0)
                       tot++;
                    con=0;
                    z++;
                }
                while(n1[z-1]!=0);
                return tot;
    }
    Ciao e grazie
    Your time is limited, so don't waste it living someone else's life. Stay hungry, stay foolish. (Steve Jobs)

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.