Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Programmazione C.

  1. #1

    Programmazione C.

    Salve a tutti, è da un paio di giorni che ho un problemino con un esercizio sui vettori.
    La traccia dell'esercizio è: Letti 10 numeri interi, visualizzali senza stampare due volte lo stesso numero.
    Per esempio:
    Inserimento: 10-5-5-10-3-4-3-4-6-6
    Stampa: 10-5-3-4-6
    Chi sarebbe cosi gentile da aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Quote Originariamente inviata da Lollersing Visualizza il messaggio
    Salve a tutti, è da un paio di giorni che ho un problemino con un esercizio sui vettori.
    La traccia dell'esercizio è: Letti 10 numeri interi, visualizzali senza stampare due volte lo stesso numero.
    Per esempio:
    Inserimento: 10-5-5-10-3-4-3-4-6-6
    Stampa: 10-5-3-4-6
    Chi sarebbe cosi gentile da aiutarmi?
    Posta quello che hai pensato di fare tu ... e si vede ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Posta quello che hai pensato di fare tu ... e si vede ...
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    void carica(int vt[],int d);
    void mostra(int vt[],int d);
    int n=10;
    
    
    int main()
    {
        int v[n];
        carica(v,n);
        mostra(v,n);
        return 0;
    }
    void carica(int vt[],int d)
    {
        int x,c,r;
        for (c=0;c<d;c++)
        {
            printf("inserisci il %d numero: ",c+1);
            scanf("%d",&x);
            vt[c]=x;
        }
    }
    void mostra(int vt[],int d)
    {
        int c,i,r=0;
        printf("i numeri del vettore sono:\n");
        for (c=0;c<d;c++)
        {
            for (i=0;i<d;i++)
            {
                if ((vt[c]==vt[i])&&(c!=i))
                {
                    r=1;
                    break;
                }
            }
            if (r==0)
            {
                printf("%d",vt[c]);
            }
        }
    }


    Ecco a te.
    Ultima modifica di MItaly; 09-03-2016 a 23:57 Motivo: Tag CODE

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Ok ma devi spiegare cosa non va, eventuali errori di compilazione o di esecuzione ... il forum funziona così ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ok ma devi spiegare cosa non va, eventuali errori di compilazione o di esecuzione ... il forum funziona così ...
    Scusami ma sono nuovo, provvedo subito.
    Allora la compilazione viene effettuata per bene, ma nell'esecuzione ho qualche problema, ad esempio: Nella fase di visualizzazione non visualizza nessun numero, è come se la condizione finale nella funzione "mostra" non si avverasse mai.

  6. #6
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao, se trovi un duplicato allora viene posto r=1 ma non viene mai rimesso a 0, quindi r rimane sempre 1 e la condizione r==0 non si avvera mai.
    Tra l'altro, anche in presenza di duplicati, ogni valore va stampato una volta. Invece tu se trovi duplicati non stampi nulla. Potresti fare così:

    - trovo un valore: l'ho già stampato?
    - se sì allora lo salto e passo a quello successivo
    - se no allora lo stampo

    P.S. Verificare se hai già stampato un valore corrisponde a verificare se il valore è presente nella parte di vettore precedente al valore che stai analizzando.
    Ultima modifica di minomic; 09-03-2016 a 12:59

  7. #7
    Quote Originariamente inviata da minomic Visualizza il messaggio
    Ciao, se trovi un duplicato allora viene posto r=1 ma non viene mai rimesso a 0, quindi r rimane sempre 1 e la condizione r==0 non si avvera mai.
    Tra l'altro, anche in presenza di duplicati, ogni valore va stampato una volta. Invece tu se trovi duplicati non stampi nulla. Potresti fare così:

    - trovo un valore: l'ho già stampato?
    - se sì allora lo salto e passo a quello successivo
    - se no allora lo stampo

    P.S. Verificare se hai già stampato un valore corrisponde a verificare se il valore è presente nella parte di vettore precedente al valore che stai analizzando.
    Risolto già, grazie mille a tutti^^

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.