Verständnissproblem einer Rechnung in C

Star4000

Active member
ID: 54311
L
24 April 2006
35
1
Hallo , es dreht sich um folgenden Quellcode:
PHP:
#include <stdio.h>
#include <math.h>

void main (void)

{
    float a;
      /* float a,b, wert, wurzel, x1, x2;

    printf ( " Programm zum lösen der Gleichung 0=x^2+ax+b \n ");
    printf (" Bitte geben sie eine Zahl für a ein \n" );
    scanf (" %f", &a);
    printf (" Bitte geben sie eine Zahl für b ein \n");
    scanf (" %f", &b); */
    

    a= 5/2; 

    printf (" a : %f\n",a); // Hinzugefügt

    /* wert = (a*a) -b;

    if ( wert <0)
    printf ( " Keine reelle Lösung \n");

    else

{
    wurzel = sqrt (wert);
    x1= (-a)+ wurzel;
    x2= (-a) -wurzel;

    printf (" x1 = %f, x2= %f \n", x1,x2);
} */
}


Wieso kommt als Ergebniss a= 2.0000 raus? Ich kann diesen schritt einfach nicht nachvollziehen.
Befasse mich erst seit kurzem mit C und habe deshalb noch einige Probleme.
Ich würde mich sehr über eine Antwort freuen.

Mit freundlichen Grüßen.
 
Zuletzt bearbeitet von einem Moderator:
weil 5/2 immer zwei ist...

deine Rechnung wird vom Compiler als INT/INT = INT übersetzt und den INT der am Ende rauskommt wird in ner Float Variabel gespeichert. Nimm als Divisor 2.0 (FLOAT) dann macht der Compiler das richtig.

Nächste mal kannst du bitte code Tags verwenden und die X Zeilen auskommentieren Code raus lassen

mfg