Προς το περιεχόμενο

Πρόβλημα στην πρόσθεση


giolefpatceid

Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν guys, έφτιαξα το παρακάτω απλό πρόγραμμα:

 

 

#include <stdio.h>

int main(void) {

float f1, f2, sum;

printf("Enter the first number:");

scanf("%f", &f1);

printf("Enter the second number:");

scanf("%f", &f2);

sum = f1 + f2;

printf("The two numbers sum is %f", sum);

scanf("%f", &f1);

return 0;

}

 

 

και όταν το εκτέλεσα,είχα το εξής αποτέλεσμα:

 

my.php?image=addjf1.jpg

 

Μήπως ξέρει κανείς γιατί έγινε αυτό?Ευχαριστώ εκ των προτέρων.

Δημοσ.

nai bre palikari me dedomena tipou float alla metablita, etsi? edoses px 15+15 na doume an tha emfanisi ton asso sto telos? auto rotisa

Δημοσ.

Είναι θέμα ακρίβειας, δοκίμασε να περιορίσεις την ακρίβεια των ψηφίων της κινητής υποδιαστολής (πχ. στα 3 ψηφία) με την βοήθεια της printf("The two numbers sum is %.3f", sum); οπότε έχουμε 28,686 κτλ.

 

Επίσης διάβασε εδώ http://www.physics.ohio-state.edu/~dws/grouplinks/floating_point_math.pdf το κλασσικό What Every Computer Scientist Should Know About Floating-Point Arithmetic

 

Καλή τύχη!

:)

Δημοσ.

Το δοκίμασα και όντως δουλεύει..Το εγχειρίδιο πριν από λίγο το κατέβασα...Ευχαριστώ

 

@system: Χρησιμοποιώ περιβάλλον ανάπτυξης Dev-C,το οποίο εκτελεί το πρόγραμμα και ύστερα κλείνει το παράθυρο των Dos...Γι αυτό συνήθως βάζω μια scanf πριν απο τη return 0 ώστε να παραμένει ανοιχτό το παράθυρο..

Δημοσ.

πάντα να αρχικοποιείς τις τιμές.

 

στην συγκεκριμένη περίπτωση δώσε σε όλες τις μεταβλητές την τιμή 0.

 

;)

Δημοσ.

δεν έχει σχέση η αρχικοποίηση στην συγκεκριμένη περίπτωση, έτσι κ αλλιώς γίνεται απόδοση τιμής (αρχικοποίηση δηλαδή)

Δημοσ.

επισης το προτυπο ANSI C οριζει οτι οι μεταβλητες της main αυτοματα τιθενται στο 0.για τις μεταβλητες των αλλων συναρτησεων ειναι στην διακριτικη ευχερεια του compiler...

Δημοσ.
[...]@system: Χρησιμοποιώ περιβάλλον ανάπτυξης Dev-C,το οποίο εκτελεί το πρόγραμμα και ύστερα κλείνει το παράθυρο των Dos...Γι αυτό συνήθως βάζω μια scanf πριν απο τη return 0 ώστε να παραμένει ανοιχτό το παράθυρο..

 

Για το σκοπό αυτό (για να μην κλείνει το παράθυρο αφού εκτελεστεί το πρόγραμμα) αντί της scanf βάλε:

 

>system ([color=Red]"PAUSE"[/color]);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...