PDA

View Full Version : [C] media di n numeri


*=Jak=*
17-03-2008, 15:41
rieccoci, dopo aver corretto un paio di errori di sintassi (che all'inizio scappano a tutti penso :D) la compilazione è andata a buon fine... ma il programma crasha dopo la richiesta di input (e appare la solita finestrella di xp che chiede se inviare o meno il rapporto dell'errore alla microsoft)...

ecco il codice:

(quello che fa il programma è appunto calcolare la media di n numeri, vengono presi in considerazione nuovi numeri finche l'utente inserisce zero, e strutturato cosi, se l'utente inserisce zero come primo numero viene mostrato un avviso invece di eseguire una divisione per zero, matematicamente inesistente)

#include <stdio.h>
#include <conio.h>

int main()
{
int contatore=0;
float numero=0,media,numero_temp;
while(1){
printf("inserisci il numero da aggiungere alla media (0 per il risultato): ");
scanf("%f",numero_temp);
if(numero_temp==0){
if(contatore==0){
printf("non hai inserito nemmeno un numero!\n");
break;
}
else{
media=numero/contatore;
printf("la media equivale a %.2f\n",media);
break;
}
}
else{
contatore++;
numero = numero+numero_temp;
}
}
system("PAUSE");
return 0;
}

non mi sembra ci siano errori... anche le variabili, mi pare di averle gestite il meglio possibile!

*=Jak=*
17-03-2008, 15:47
trovato l'errore, bastava cambiare

scanf("%f",numero_temp);

in

scanf("%f",&numero_temp);

ho dimenticato la & per l'assegnazione... mi scusa per il topic inutile!!! :muro:

cionci
18-03-2008, 09:14
Mi raccomando l'indentazione, un modo corretto per indentare il codice è questo:

#include <conio.h>

int main()
{
int contatore=0;
float numero=0,media,numero_temp;
while (1)
{
printf("inserisci il numero da aggiungere alla media (0 per il risultato): ");
scanf("%f",numero_temp);
if (numero_temp==0)
{
if (contatore==0)
{
printf("non hai inserito nemmeno un numero!\n");
break;
}
else
{
media=numero/contatore;
printf("la media equivale a %.2f\n",media);
break;
}
}
else
{
contatore++;
numero = numero+numero_temp;
}
}
system("PAUSE");
return 0;
}
Stai usando Turbo/Borland C ? Se lo stai usando perché viene usato anche al corso che segui ben venga, se stai imparando da solo ricordati che tutte le funzioni che si trovano in conio.h sono funzioni non standard (gotoxy, kbhit, getch, clrscr e compagnia bella) e quindi è molto probabile che tu non riesca a trovarle in altri compilatori C.