Schilling in Euro rechnen

Marimi

Mitglied
Hallo C++ Freunde!

Ich bin blutiger Anfänger in C++ und soll ein Programm schreiben für folgende Aufgaben stellung: Aufgabe 2.7
Schreiben Sie ein Programm zur Umrechnung von Schilling in Euro. Geben Sie das Ergebnis formatiert in Euro und Cent aus. (Betragsteile kleiner als ein Cent können Sie ignorieren.)

Ich hab auch schon ein Programm geschrieben allerdings wird es nicht vollständig ausgeführt, hier mein Code:
#include <iostream>
using namespace std;

int main() {
cout << "Geben Sie einen Betrag ein: ";
double a;
cin >> a;
double b=13.7603;
cin >> b;
cout << "Schilling zu Euro: " << (a/b)/100;
cout << "Euro in Schilling: " << a*b << endl;

return 0;
}

Wenn ich das Programm nun ausführe kann ich lediglich einen Wert eingeben er rechnet mir aber rein garnichts aus. Könnt ihr mir bitte helfen, ich kann seit gestern nacht nur mehr an die blöde Hausaufgabe denken :(.

Lieben Gruß und danke an alle
Marimi
 
Hallo,

ich würde das Ganze mit scanf() einlesen und mit printf() dann formatiert ausgeben.
Das ist zwar normales C, funktioniert mit C++ aber genau so.

Wenn du willst, kann ich dir das auch schnell an einem Beispiel zeigen.

Gruß
BK
 
Moin,

C++:
    double b=13.7603;
    cin >> b;
    cout << "Schilling zu Euro: " << (a/b)/100;
    cout << "Euro in Schilling: " << a*b << endl;

IMHO ist die Zeile "cin >> b" hier überflüssig !
Schließlich hast Du ja "b" zuvor schon als konstanten Faktor für die Berechnungen deklariert !!

Gruß
Klaus
 
Zuletzt bearbeitet von einem Moderator:
@BK könntest du mir die Variante mit dem scarf und printf zeug mal zeigen wie das mit meinem programm aussehen würde. :) wär voll lieb von dir
@fl_freak: würde es ohne dem denn funktionieren? XD
 
Ich hab auch schon ein Programm geschrieben allerdings wird es nicht vollständig ausgeführt, hier mein Code:
#include <iostream>
using namespace std;

int main() {
cout << "Geben Sie einen Betrag ein: ";
double a;
cin >> a;
double b=13.7603;
cin >> b;
cout << "Schilling zu Euro: " << (a/b)/100;
cout << "Euro in Schilling: " << a*b << endl;

return 0;
}

Wenn ich das Programm nun ausführe kann ich lediglich einen Wert eingeben er rechnet mir aber rein garnichts aus.
Wie kommst du denn darauf?

Dir ist bewußt, dass du da 2 Werte einliest und dementsprechend auch 2 Werte eingeben mußt?

Du solltest die Variablen besser benennen. b soll doch bestimmt der Wechselkurs Schilling in EUR sein, oder? Diesen Wert kannst du außerdem am besten als Konstante definieren (const) und brauchst ihn nicht einlesen.

Wenn ich "55 13.7603" eingebe, erhalte ich mit deinem Programm:
Code:
Schilling zu Euro: 0.0399701Euro in Schilling: 756.817

Gruß
 
Hi,

in deinem Fall würde das Ganze in etwa so aussehen:
C:
#include <stdio.h>

#define KURS 13.7603f

int main(void) {
  float eingabe = 0;
  printf("Geben Sie einen Betrag ein: ");
  int tmp = scanf("%f", &eingabe);

  if(tmp == 1) {    /* Element wurde erfolgreich gelesen */
    printf("Schilling -> Euro: %.2f\n", eingabe / KURS);
    printf("Euro -> Schilling: %.2f\n", eingabe * KURS);
  }
  else    /* Fehler beim Lesen der Eingabe (z.B wenn Eingabe keine Zahl) */
    printf("Keine gültige Eingabe, nochmal versuchen!\n");

  return 0;
}

Als Ergebnis erhalte ich:
Code:
Geben Sie einen Betrag ein: 55
Schilling -> Euro: 4.00
Euro -> Schilling: 756.82

Geben Sie einen Betrag ein: 13.7555555555
Schilling -> Euro: 1.00
Euro -> Schilling: 189.28

Geben Sie einen Betrag ein: a
Keine gültige Eingabe, nochmal versuchen!

Auch wenn das die Lösung (in C) ist, versuchs weiter komplett in C++ zu machen ;)

Gruß
BK
 
Zuletzt bearbeitet:
Ich versteh ned ma c++ XD. was isn der unterschied zwischen dem printf und dem cout? das es so if anweisungen in c++ gibt weiß ich auch schon also dürfte das ja zulässig sein XD
 
Wie kommst du denn darauf?

Dir ist bewußt, dass du da 2 Werte einliest und dementsprechend auch 2 Werte eingeben mußt?

Du solltest die Variablen besser benennen. b soll doch bestimmt der Wechselkurs Schilling in EUR sein, oder? Diesen Wert kannst du außerdem am besten als Konstante definieren (const) und brauchst ihn nicht einlesen.

Wenn ich "55 13.7603" eingebe, erhalte ich mit deinem Programm:
Code:
Schilling zu Euro: 0.0399701Euro in Schilling: 756.817

Gruß

Ich erhalte beim ausführen gar nix o.O. Ja b soll der wechselkurs sein. achherje des is ne horror aufgabe fürn blutigen anfänger. Ich kann grad ma ein programm schreiben was umfang und fläche vom rechteck ausrechnet xD.
 
@Bratkartoffel: Jetzt hast du ihn/sie verwirrt. :-(
Ich versteh ned ma c++ XD. was isn der unterschied zwischen dem printf und dem cout? das es so if anweisungen in c++ gibt weiß ich auch schon also dürfte das ja zulässig sein XD
Kümmere dich nicht um das printf/scanf. Das ist etwas komplizierter in C. Verwende einfach die >> und << Operatoren in C++, die machen automatisch das Richtige und du mußt nicht mit Zeigern hantieren (was du vermutlich noch nicht kannst...).

Gruß
 
Ich erhalte beim ausführen gar nix o.O. Ja b soll der wechselkurs sein. achherje des is ne horror aufgabe fürn blutigen anfänger. Ich kann grad ma ein programm schreiben was umfang und fläche vom rechteck ausrechnet xD.
Wie führst du das Programm denn aus? Was gibst du denn ein?

Das Programm beendet sich natürlich sofort nach der Ausgabe der Ergebnisse. Meinst du evtl. das damit, das es nichts berechnet? :confused:

Füge mal vor dem return 0; noch ein:
C++:
cin.sync(); cin.get();

Gruß
 
Zurück