RISOLTO Algoritmo in c

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Lucio001

Nuovo Utente
Messaggi
16
Reazioni
3
Punteggio
22
Qualcuno riesce a svolgermi il seguente algoritmo in c:
Dati come in input n numeri, restituisce in output il valore medio.
Dopo la lettura di ogni valore, devi chiedere all'utente del programma se vuole inserirne un altro.
Se la risposta è no, l'algoritmo deve terminare mostrando il valore medio dei dati fino a quel momento.
 
Che in questo forum ci sia qualcuno in grado di farlo è fuor di dubbio.

Che nessuno lo farà prima che tu proponi la tua soluzione è altrettanto fuor di dubbio.

In questa sezione l'obiettivo è di aiutare chi è in difficoltà al fine di fargli comprendere eventuali errori, non di fargli i compiti per casa.

Tu hai già provato a svolgere l'esercizio?
Dove ti blocchi?
Hai scritto qualcosa anche in pseudo-codice?
 
Che ci sia qualcuno in questo forum in grado di farlo è fuor di dubbio.

Che nessuno lo farà senza che tu proponi la tua soluzione è altrettanto fuor di dubbio.

In questa sezione l'obiettivo è di aiutare chi è in difficoltà al fine di fargli comprendere eventuali errori, non di fargli i compiti per casa.

Tu hai già provato a svolgere l'esercizio?
Dove ti blocchi?
Hai scritto qualcosa anche in pseudo-codice?
Si scusami ma vado di fretta e non mi è venuto in mente di allegare il mio programma e chiedere come fare a risolvere il mio problema
 
C:
#include <stdio.h>
#include <stdlib.h>
int main(void)
 {
int numero ;
int conta ;
float somma ;
float media ;

somma = 0 ;
conta = 0 ;

printf("Inserire una serie di numeri. La condizione di terminazione "
 "e’ il numero zero.\n") ;
printf("Inserisci numero: ") ;
scanf ("%d", &numero) ;

 while ( numero != 0 )
{

somma = somma + numero ;

conta = conta + 1 ;

printf("Inserisci numero: ") ;
 scanf ("%d", &numero);
}

media = somma/conta ;


printf("\n") ;
printf("Numeri inseriti %d, Somma %f, Media %f \n", conta, somma, media);
exit(0) ;
 }
il programma se io dico che voglio inserire 5 valori me ne fa inserire solo 1 e poi si chiude secondo voi dov'è il problema?
 
Uhm, ad essere sincero problemi macroscopici non ne vedo ed anche testandolo al volo su un compiler online (https://www.onlinegdb.com/online_c_compiler) il programma viene eseguito correttamente.

Nel mio caso gli ho dato 3 numeri ed ha calcolato correttamente quanti numeri ho dato, la somma dei tre e la relativa media.

Sei sicuro di aver compilato la versione postata?
 
un piccolo problema lo vedo ma non dovrebe avere a che fare col fatto che non ti fa inserire 5 numeri: leggi numeri interi ma li sommi in un float, non va bene (non è logico...), la somma deve essere int è la media che deve essere float;
errori di logica di programmazione non ne vedo
 
un piccolo problema lo vedo ma non dovrebe avere a che fare col fatto che non ti fa inserire 5 numeri: leggi numeri interi ma li sommi in un float, non va bene (non è logico...), la somma deve essere int è la media che deve essere float;
errori di logica di programmazione non ne vedo
invece e' perfettamente logico, in quanto a seconda dei valori degli interi e di quanti sono la somma può andare in overflow aritmetico, quindi sempre meglio calcolare somme usando float o double a seconda della precisione che si vuole (io personalmente uso sempre e solo double)
 
invece e' perfettamente logico
stiamo parlando di un esercizio scolastico fatto per vedere se sono stati compresi i cicli... io invece per la somma avrei usato un long long int, pensa un po' ? che da specifica è lungo almeno 64 bit e per avere un overflow su n numeri int imessi da tastiera stai fresco
 
stiamo parlando di un esercizio scolastico fatto per vedere se sono stati compresi i cicli... io invece per la somma avrei usato un long long int, pensa un po' ? che da specifica è lungo almeno 64 bit e per avere un overflow su n numeri int imessi da tastiera stai fresco
Proprio perché è un esercizio scolastico occorre prestare attenzione a questi particolari. Questo poi non si limita a un ciclo, ma come sommare e dividere numeri, io vedo gente che usa int ovunque, anche in casi come questo, e sono intervenuto solo perché tu hai detto che non sia logico. È logico, eccome, anzi è come debba essere fatto, quando non si sa a priori l’intervallo dei numeri in questione.
Usare long int è indubbiamente una valida alternativa.
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top