Fehlersuche
-
Hallo,
ich hoffe mir kann jemand helfen.
Ich soll als Hausarbeit ein Programm schreiben, welches arabische Zahlen in Zahlzeichen ähnlich dem roemischen System umwandelt.
Zahlen 1-4096
Basis 8
Mindestens 3 Funktionen
Keine strings
Zahlzeichen A=1,B=4,C=8,D=32, E=64,F=256,G=512,H=2048,I=4096Soweit bin ich gekommen und eigentlich bin ich fertig:
#include <iostream>
using namespace std;int umwandlerEins (int zahl);
int umwandlerZwei (int zahl);
int umwandlerDrei (int zahl);
int umwandlerVier (int zahl);int main()
{int zahl;
cout << "Programm zur Umrechnung von Arabischen Zahlen in Zahlzeichen\naehnlich dem roemischen System\n\n";
do
{
cout << "Bitte geben Sie eine Zahl zwischen 1 und 4096 ein, oder 0 zum Beenden!\n";
cout << "Dezimalzahl: ";
cin >> zahl;for (;zahl>4096||zahl<0||!cin;cin>>zahl)
{
if (!cin)
{
cin.clear();
cin.ignore(1000,'\n');
cerr << "\nBitte nur Ziffern eingeben!!\n\n\n\n\n\n\n\n\n\n\n\n" <<endl;
}
else
{
cout << "\nDiese Eingabe liegt ausserhalb des gueltigen Bereichs!!\n\n\n\n\n\n\n\n\n\n\n\n" <<endl;
}
cout << "Bitte geben Sie eine Zahl zwischen 1 und 4096 ein, oder 0 zum Beenden!!"<<endl;
cout << "Dezimalzahl: ";
}if (zahl==0)
{
cout << "\n\n\n\n\nBis zum naechsten Mal\nAuf Wiedersehen!!\n\n\n\n\n\n\n\n\n";
return 0;
}cout << "\nDas gesuchte Zahlzeichen lautet:\n";
if (zahl==4096)
cout << "I";cout << umwandlerEins(zahl) << umwandlerZwei(zahl) << umwandlerDrei(zahl)<<umwandlerVier(zahl);
cout << endl << endl << endl << endl << endl << endl << endl<< endl << endl << endl<< endl << endl;}
while (zahl<4097&&zahl>0);
return 0;
}int umwandlerEins (int zahl){
zahl=zahl%4096/512;
switch (zahl){
case 1: cout << "G"; break;
case 2: cout << "GG"; break;
case 3: cout << "GH"; break;
case 4: cout << "H"; break;
case 5: cout << "HG"; break;
case 6: cout << "HGG"; break;
case 7: cout << "GI"; break;}return 0;
}int umwandlerZwei (int zahl){
zahl=zahl%512/64;
switch (zahl){
case 1: cout << "E"; break;
case 2: cout << "EE"; break;
case 3: cout << "EF"; break;
case 4: cout << "F"; break;
case 5: cout << "FE"; break;
case 6: cout << "FEE"; break;
case 7: cout << "EG"; break;}return 0;
}int umwandlerDrei (int zahl){
zahl=zahl%64/8;
switch (zahl){
case 1: cout << "C"; break;
case 2: cout << "CC"; break;
case 3: cout << "CD"; break;
case 4: cout << "D"; break;
case 5: cout << "DC"; break;
case 6: cout << "DCC"; break;
case 7: cout << "CE"; break;}return 0;
}int umwandlerVier (int zahl){
zahl=zahl%8/1;
switch (zahl){
case 1: cout << "A"; break;
case 2: cout << "AA"; break;
case 3: cout << "AB"; break;
case 4: cout << "B"; break;
case 5: cout << "BA"; break;
case 6: cout << "BAA"; break;
case 7: cout << "AC"; break;}return 0;
}Mein Problem ist folgendes:
Zusätzlich zu dem gesuchten Zahlzeichen wird nun auch noch eine Zahlenfolge ausgegeben. Z.B.: Eingabe 1 Ausgabe:A00001 oder Eingabe 4 Ausgabe B00010.
Es oll aber lediglich das Zahlzeichen, sprich A bei 1 oder B bei 4 ausgegeben werden.
Wer weiss woran das liegt, und kann helfen?
-
1. Falsches Forum, das hier gehört ins C++-Forum.
2. Bitte den C++-Highlighter benutzen ([cpp][/cpp])
3. Du gibst die Rückgabewerte der Funktionen umwandler(Eins|Zwei|Drei|Vier) ebenfalls aus, das solltest du aber nicht.
-
Sorry, so läuft das nicht: Zum einen ist das das falsche Forum (was bei Neulingen nichts schlimmes ist!), zum anderen ist dein Post schlichtweg nerfig. Wer soll sich denn das durchlesen?! Poste genau welchen Fehler du wo erhältst. Und nicht 100 Zeilen Code und "irgendwo".
Neuer versuch im cppf.