myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   division bei c mit integer - problem (https://mygully.com/showthread.php?t=2489931)

mofucka 20.11.11 15:17

division bei c mit integer - problem
 
hey habe folgendes prob:
ich soll eine division mit integer durchführen, das ergebnis muss aber mit kommazahlen sein, geht ja mit integer nicht.
habe folgendes bei google gefunden:

Zitat:

z4=(double)z1/z2;
jetzt zeigt er mir zwar komzahlen an, ABER es ist 0.000
... das bringst also nich wirklich :/

Thelvan 20.11.11 16:07

Ich hab zwar keine Ahnung von C, aber muss das (double) nicht vor beide Zahlen?

Auch wäre interessant, was für ein Datentyp z4 ist, und welche Werte z1 und z2 haben.

mofucka 20.11.11 16:24

habe auch schon
Zitat:

z4=(double)z1/(double)z2;
und
Zitat:

z4=((double)z1)/((double)z2);
ausprobiert geht beides nicht :/
alle 3 variablen sind integer, was genau ist mit werte gemeint?

Thelvan 20.11.11 16:51

Ich will wissen, welche Zahlen du da teilst.
z4 muss Double sein, bei Integer werden die Nachkommastellen einfach abgeschnitten

mofucka 20.11.11 17:37

beliebige werte die vorher eingegeben werden müssen, z1 und z2 sind keine konstanten

urga 20.11.11 20:02

PHP-Code:

urga@urga-virtual-machine:~/src/c++$ cat x.
#include <stdio.h>
main() {
        
double z1 10;
        
double z2 3;
        
double z3 z1 z2// mindestens muss z3 vom typ double sein.
        
printf ("%f/%f == %f\n"z1z2z3);
}
urga@urga-virtual-machine:~/src/c++$ cc -o x x.&& ./x
10.000000
/3.000000 == 3.333333 

irgendwas machst du grundlegend falsch...

mofucka 20.11.11 20:24

Zitat:

// mindestens muss z3 vom typ double sein.
gut daran kanns liegen, werde nochmal den prof. fragen ob man noch was anderes außer integer verwenden darf.
wie ich es aus der aufgabe entnehme muss alles integer sein, aber wäre gut möglich, das ich die aufgabe falsch verstanden habe

Thelvan 20.11.11 20:33

Wenn man z.B. 11 durch 5 teilt, sollte aber 2 rauskommen, oder?
Schneidet er bei Integer nicht einfach nur die Nachkommastellen ab?

EDIT: so wie es oben steht (ergebnis mit nachkommastellen aber nur int verwenden) ist nicht möglich

mofucka 20.11.11 20:34

das ist richtig, er gibt nur die ganze zahl an, und rundet nicht.

e: okay, das wusste ich nicht bin noch recht neu was programmieren angeht^^
dann liegst an meiner doofheit, das ich die aufgabe falsch verstanden habe

Melfis 20.11.11 23:22

in java:
Code:

                int z1=10;
                int z2=3;
                int z3=-1;
               
                for(int i=0;i<10;i++){
                        System.out.print(z1/z2);
                        if(i==0&&z1%z2!=0)System.out.print(",");
                        z3=z1%z2;
                        if(z3==0){
                                break;
                        }else{
                        z1=z3*10;       
                        }
                }

Ist aber nur eine Ausgabe mit Kommazahl,
ein richtiges double bekommt man nicht raus.

Your_Conscience 22.11.11 20:17

Warum macht ihr euch das eigentlich alle so kompliziert?
Code:

int main()
{
    int a = 5, b = 6;
    printf("%d / %d = %f\n", a, b, 1.0 * a / b);
    return 0;
}


Melfis 22.11.11 22:36

Code:

printf("%d / %d = %f\n", a, b, 1.0 * a / b);
weil 1.0 ein double ist :P

Your_Conscience 23.11.11 04:36

Ohne eine Typumwandlung in double wird man aber keine Kommazahl rausbekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.