PDA

Visualizza la versione completa : [C] vettore con opzione stop


fenics
01-03-2014, 15:58
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

MItaly
01-03-2014, 18:43
Posta il codice che hai scritto finora che ci si ragiona insieme.

fenics
01-03-2014, 18:48
#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

oregon
01-03-2014, 19:41
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] ...)

fenics
01-03-2014, 21:00
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

oregon
01-03-2014, 21:37
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;

fenics
01-03-2014, 21:53
scua ma mi da un errore con break, difatti bisognerebbe usare switch con break

fenics
01-03-2014, 22:15
ci sono quasi, ma il brek non funziona


#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);

}

oregon
01-03-2014, 22:22
Mi sembra che tu abbia cambiato la scanf ... che fai?

Alex'87
01-03-2014, 23:06
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];

Loading