Το πρόβλημα είναι στο ότι το ((0.38-0.33)/5)*100 δεν σου δίνει τη τιμή 1, παρόλο που αν το τυπώσεις θα εμφανίσει το 1. Είναι ένα παράδοξο της C, που για να πω την αλήθεια το ήξερα για τους float και όχι για τους double. Κάνε έναν έλεγχο να το δεις.
Μπορείς να γράψεις το double σου σε ένα string με δύο δεκαδικά και μετά να το ξανακάνεις double. Δες αυτό:
#include <iostream>
#include <math.h>
double convert(double point)
{
char s[100]; //Define the size you want
double temp;
sprintf(s, "%.2e\n", point);
temp = atof(s);
return temp;
}
Τάσος Καραγιάννης
Baby debugging steps...