Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 49

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di fenics
    Registrato dal
    Aug 2004
    Messaggi
    446

    [C] vettore con opzione stop

    Salve a tutti. devo realizzare un vettore di N numeri che mi calcoli la somma e la media, se digito zero il programma deve terminare. La somma e la media ok, ma non riesco a farlo fermare.

    Grazie anticipatamente

    ah il programma deve essere realizzato in C

  2. #2
    Posta il codice che hai scritto finora che ci si ragiona insieme.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di fenics
    Registrato dal
    Aug 2004
    Messaggi
    446
    codice:
    #include<stdio.h>
    
    #define MAX 10
    
    int main(){
        int i, vettore[MAX];
        float somma, media;
    
        printf("Inserisci %d valori, con zero interrompi:\n", MAX);
    
        for(i=0; i<=MAX-1; i++)
        {
            printf("%d)", i);
            scanf("%d", &vettore[i]);
            somma=somma+vettore[i];
            media=somma/MAX;
        }
        i=0;
    
        while(i<=0)
        {
            printf("somma:%f, media:%f", somma, media);
            i=i+1;
        }
        getchar();
    }
    in realtà manca proprio lopzione che fa fermare il programma
    Ultima modifica di MItaly; 01-03-2014 a 19:56

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dopo la scanf fai un confronto (con una if) e se il valore è 0 esegui un break; oppure usi una while con il controllo del valore di vettore[i]

    La media deve essere eseguita fuori dal ciclo e non devi dividere per MAX dato che non sai se i valori inseriti sono MAX. Il numeri di valori inseriti sarà determinato dal valore del contatore del ciclo.

    Infine, quella while non ha completamente senso ... (forse volevi usarla nella prima parte per controllare l'uscita dal ciclo? Ovviamente non dovrai controllare il valore di i ma di vettore[i] ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di fenics
    Registrato dal
    Aug 2004
    Messaggi
    446
    cioè?? scusa ma non riesco a seguire il prcediento. dopo lo scanf dovrei inserire while(vettore[i]==0?? e non capisco come inserire il break
    Ultima modifica di fenics; 01-03-2014 a 21:03

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da fenics Visualizza il messaggio
    cioè?? scusa ma non riesco a seguire il prcediento. dopo lo scanf dovrei inserire while(vettore[i]==0?? e non capisco come inserire il break
    Mi pare di averti scritto che devi usare una if ...

    if(vettore[i]==0) break;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di fenics
    Registrato dal
    Aug 2004
    Messaggi
    446
    scua ma mi da un errore con break, difatti bisognerebbe usare switch con break

  8. #8
    Utente di HTML.it L'avatar di fenics
    Registrato dal
    Aug 2004
    Messaggi
    446
    ci sono quasi, ma il brek non funziona
    codice:
    #include<stdio.h>
    
    #define MAX 10
    
    int main(){
        int i, vettore[MAX], n;
        float somma, media;
    
        printf("Inserisci %d valori, con zero interrompi:\n", MAX);
    
        for(i=0; i<=MAX-1; i++)
        {
            printf("%2d)", i);
            scanf("%d", &n);
    
    
        if(vettore[i]==0)
        break;
    
    else
    
        somma=somma+n;
        }
    
    media=somma/MAX;
    
    printf("\n%f %f", somma, media);
    
    }
    Ultima modifica di MItaly; 02-03-2014 a 02:18

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Mi sembra che tu abbia cambiato la scanf ... che fai?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Inoltre somma la devi inizializzare a zero, altrimenti quando accumuli dati ottieni porcherie...

    ah, somma=somma+vettore[i] lo puoi riscrivere come somma += vettore[i];
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.