lore11
30-06-2015, 15:48
buongiorno a tutti
premetto che ho iniziato oggi a programmare in c (in vista di un esame universitario). stavo facendo un'esercitazione e mi sono accorto che il programma fatto da me non da i risultati con i decimali (anche se uso float o double).
il programma che ho scritto č:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define dim 2
int main ()
{float media=0.0, dist=0.0, B[dim], A[dim], somma=0.0;
int count=0, i=0.0;
for (i=0; i<dim; i++) {
scanf ("%f \n", &A[i]);
somma=somma+A[i];
}
media=abs(somma/dim)*1.0;
for (i=0; i<dim; i++) {
if (A[i]>=20 && A[i]<=25) {
count++;
}
}
printf ("i numeri compresi tra 20 e 25 sono: %d \n", count);
for (i=0; i<dim; i++) {
dist=A[i]-media*1.0;
B[i]=abs(dist*1.0);
}
printf ("vettore B: \n");
for (i=0; i<dim; i++) {
printf ("B[%d]: %lf \n", i, B[i]);
}
system ("PAUSE");
return 0;
}
il programma in se funziona, ma il risultato dovrebbe venire, nel 99% dei casi con numeri decimali. invece a me il risultato viene arrotondato al numero intero pių grande.
dove sbaglio?
sto utilizzando dev c++
grazie a tutti!
premetto che ho iniziato oggi a programmare in c (in vista di un esame universitario). stavo facendo un'esercitazione e mi sono accorto che il programma fatto da me non da i risultati con i decimali (anche se uso float o double).
il programma che ho scritto č:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define dim 2
int main ()
{float media=0.0, dist=0.0, B[dim], A[dim], somma=0.0;
int count=0, i=0.0;
for (i=0; i<dim; i++) {
scanf ("%f \n", &A[i]);
somma=somma+A[i];
}
media=abs(somma/dim)*1.0;
for (i=0; i<dim; i++) {
if (A[i]>=20 && A[i]<=25) {
count++;
}
}
printf ("i numeri compresi tra 20 e 25 sono: %d \n", count);
for (i=0; i<dim; i++) {
dist=A[i]-media*1.0;
B[i]=abs(dist*1.0);
}
printf ("vettore B: \n");
for (i=0; i<dim; i++) {
printf ("B[%d]: %lf \n", i, B[i]);
}
system ("PAUSE");
return 0;
}
il programma in se funziona, ma il risultato dovrebbe venire, nel 99% dei casi con numeri decimali. invece a me il risultato viene arrotondato al numero intero pių grande.
dove sbaglio?
sto utilizzando dev c++
grazie a tutti!