Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Komma Problem ;)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.05.2005, 22:28 Uhr
ryu



Hallo und Servus !!!

Dies ist mein erster Foren-Beitrag, also bitte nicht gleich köpfen oder vierteilen, falls ich in diesem Post irgendwelche Regeln missachtet haben sollte.

Aufgabenstellung:
Schreiben Sie ein Porgramm, das die Division 2er ganzer Zahlen nach der Methode vornimmt, die Sie in der Grundschule gelernt haben. Gleitkommavariablen und -operationen dürfen nicht verwendet werden.

Mein Programm:


#include<stdio.h>


C++:
void main()

{
    int z;      //zu teilende Zahl
    int n;      //Der Teiler
    int nk;     //Anzahl der Nachkommastellen
    int res;    //Divisionsergebnis
    
    printf("\r\n Divisionsalgorithmus\r\n\n\n");
    printf("Bitte geben Sie den Zaehler ein:");
    scanf("%i",&z);
    printf("Bitte geben Sie jetzt den Nenner ein:");
    scanf("%i",&n);
    printf("\r\n Wieviele Nachkommastellen sollen berechnet werden?");
    scanf("%i",&nk);
    
    printf("Ergebnis: ");

    if(nk==0){
         res = z / n;
         printf("%i",res);
     }
     else{
        
         while(nk+1>0){

             nk = nk - 1;
             res = z / n;
                      z = (z - (res * n)) * 10;

             printf("%i",res);
     }
     }
     printf("\n");


}




Mein Problem (Vorsicht C++ Noob):
Wenn ich z.B. 63/8 rechne mit 3 Nachkommastellen, spuckt das Programm nur 7875 aus und nicht 7.875
Ich hab leider keine Ahnung wie ich die Ausgabe des Kommas(bzw. des Punktes) nach der Vorkommastelle und vor den Nachkommastellen erhalte.

Vielen Dank für eure Hilfe schon mal im Vorraus.
mfg

ryu

Dieser Post wurde am 23.05.2005 um 22:35 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.05.2005, 23:17 Uhr
~nakra
Gast


ich glaube das liegt daran dass du res als int definiert hast, und int ist eine zahlenkette ohne kommastellen.
probier es mal mit
double res;
vllt funzts ;-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.05.2005, 00:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
int main(){
    int z,n,nk;

    printf("\n Divisionsalgorithmus\n\n\n");
    printf("Bitte geben Sie den Zaehler ein:");
    scanf("%i",&z);
    printf("Bitte geben Sie jetzt den Nenner ein:");
    scanf("%i",&n);
    printf("\nWieviele Nachkommastellen sollen berechnet werden?");
    scanf("%i",&nk);
    
    printf("Ergebnis: ");
    printf("%d",z/n);
    if(nk){
        putchar('.');
        for(++nk;--nk;printf("%d",(z=10*(z%n))/n));
    }
    putchar('\n');

}


als Feature kannst du ja noch einbauen immer noch die nächste Stelle zu berechnen um ggf. aufzurunden...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: