Hilfe: Arabische Zahl in römische Zahl umwandeln
-
wie es geht steht doch schon im thread musst du dir nur mal angucken...
also erstes guckst du wieviele M's du schreiben musst...
also zahl/1000 mal ein M ausgeben...
dann rechnest du mit zahl%1000 weiter
danach guckst du ob du ein CM schreiben musst (also wenn die zahl grösser gleich 900 ist) wenn ja 900 abziehen
dann guckst du ob du eine D schreiben musst (wenn die zahl grösser also 500 ist) wenn ja 500 abziehen...
dann das spiel nochmal mit CD
dann zahl/100 mal C schreiben und weiter gehts... das ganze hat 0xdeadbeef mittels eines lookuptables in eine schleife gepackt aber wenn du das nicht willst kann du das auch einzeln durchackern...
-
Windalf schrieb:
wie es geht steht doch schon im thread musst du dir nur mal angucken...
also erstes guckst du wieviele M's du schreiben musst...
also zahl/1000 mal ein M ausgeben...
ja das ist es ja
nur wie macht ich das?wie schreib ich das so das so und so viel mal das M kommt ?
-
windalf noch da ?:)
kann mir sonst noch vielleicht jemand meine frage über dem post hier beantworten ?
-
wie schreib ich das so das so und so viel mal das M kommt ?
int i; for(i=0;i<zahl/1000;++i)putchar("M");
-
Windalf schrieb:
wie schreib ich das so das so und so viel mal das M kommt ?
int i; for(i=0;i<zahl/1000;++i)putchar("M");
danke windalf noch ne kleine frage und zwar kann ich das auch so machen :
for(i=0;i<zahl/1000;++i)
cout<<"M";
denn putchar... haben wir nicht durchgenommen die prof wird wieder rumheulen wenn ich was benutze was wir nicht durchgenommen haben das hat sie
nämlich auch getan als ich versucht habe arrays zu benutzen
-
Teste doch mal beides... was merkst du? Es macht keinen Unterschied, oder? putchar('M'); ist "C-Style". Soweit ich weiß heißt die C++-Funktion cout.put('M'); cout.put('M'); ist jedoch aquivalent zu cout << 'M'; wenn keine Manipulatoren verwendet wurden.
D.h wenn dann cout.put('M'); oder cout << 'M';Caipi
-
Caipi schrieb:
Teste doch mal beides... was merkst du?
Caipi
genau das ist ja das problem :D:(
ich hab zu hause kein c++ und kann nicht probieren...
danke für eure hilfe ist echt sehr nett von euch!
-
blsiek schrieb:
10te Klasse und dann so ne Aufgabe, kann ich einfach nicht glauben!
Warum nicht?
-
ich hab zu hause kein c++ und kann nicht probieren...
danke für eure hilfe ist echt sehr nett von euch!
*kopfklatsch* oh man warum lädst du dir nicht einfach nen compiler runter... abgesehen von traffic hast du keine weiteren kosten
-
hmmm http://www.bloodshed.net/dev/devcpp.html sowas zum beispiel ?
-
irgendwie funktioniert der nicht naja...
kann irgendwer mal für mich nachsehn ob der code geht ? wär nett.
//2HEE, PESIC Mario,26.2.05 //PGM-Nr.: 12 #include <iostream.h> void main() {int Zahl,n,i; char Antwort; do {cout<<"Zahl eingeben:"; cin>>Zahl; n=Zahl/1000; for(i=1;1<=n;i++) cout<<"M"; n=(Zahl%1000)/100; if(n==9) cout<<"CM"; if(n==5); cout<<"D"; if(n==4) cout<<"CD"; if(n<4) { for(i=1;i<=n;i++) cout<<"C"; } if(n>5&&n<9) {cout<<"D"; n=n-5; for(i=1;i<=n;i++) cout<<"C"; } n=((Zahl%1000)%100)/10; if(n==9) cout<<"XC"; if(n==5); cout<<"L"; if(n==4) cout<<"XL"; if(n<4) { for(i=1;i<=n;i++) cout<<"X"; } if(n>5&&n<9) {cout<<"L"; n=n-5; for(i=1;i<=n;i++) cout<<"X"; } n=((Zahl%1000)%100)%10; if(n==9) cout<<"IX"; if(n==5); cout<<"V"; if(n==4) cout<<"IV"; if(n<4) { for(i=1;i<=n;i++) cout<<"I"; } if(n>5&&n<9) {cout<<"V"; n=n-5; for(i=1;i<=n;i++) cout<<"I"; } cout<<"Wollen Sie das Programm beenden? (J/N)"; cin>>Antwort; }while(Antwort=='J'); }
-
Z.B. ansonsten schau auch mal unter der Compiler-Sektion auf dieser Seite vorbei.
//Edit: Wieso geht der nicht, hast du den folgenden Link ausprobiert?
http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe//Edit2: Oder hast du den Compiler falsch konfiguriert?
1. Du benutzt (nach aktuellem C++Standard) veraltete Header
2. Kein void main() => int main()
3. Ansonsten, warum sollen bitte andere deinen Code testen? Ein bisschen mehr Selbstinitiative halte ich für angebracht. D.h. erstmal (wenigstens 5 Minuten) es selbst probieren, danach kannst du gerne Fragen stellen (Compiler-spezifisch am besten in dem Compiler-Forum ;))Caipi
-
ne irgendwie kann das programm nicht kompilieren und starten ....
-
Was soll ich (oder jemand anderes) darunter verstehen?
1. Hast du die IDE richtig konfiguriert? Oder hakt's bei ihr?
2. Du versuchst dein Programm zu compilieren und das funktioniert nicht?//Edit: Zu 2. kann ich dir sagen kompilieren lässt es sich. (Die Logischen Fehler will ich jetzt lieber nicht erwähnen...)
Caipi
-
-Mario- schrieb:
ne irgendwie kann das programm nicht kompilieren und starten ....
Dann solltest du ein paar Fehlermeldungen kriegen.
Die zu Posten wäre ganz sinnvoll.
-
Caipi schrieb:
Was soll ich (oder jemand anderes) darunter verstehen?
1. Hast du die IDE richtig konfiguriert? Oder hakt's bei ihr?
2. Du versuchst dein Programm zu compilieren und das funktioniert nicht?//Edit: Zu 2. kann ich dir sagen kompilieren lässt es sich. (Die Logischen Fehler will ich jetzt lieber nicht erwähnen...)
Caipi
was ist denn so schwer daran wenn es schon bei dir geht zu sagen ob das programm funktioniert oder was falsch ist ?
-
Die Frage ist ja noch garnicht bestätigt, dass es geht. Es ist nur so, dass der Compiler nicht meckert. Dennoch sind in deinem Programm ein paar logische Fehler, z.B. dass die while-Schleife solange ausgeführt wird, wie 'J' getippt wird, dabei steht in der Frage, "Programm beenden? (J/N)" und man erwartet, dass wenn man 'J' tippt, dass Programm auch beendet wird.
Oder dass, wenn ich z.B. die Arabische Ziffer 10 eingebe, nicht X ausgegeben bekomme sondern DLXV...
Aber bevor ich noch mehr sage, lade dir einen Compiler runter und teste es selbst.
Caipi
-
ey ich hab den compiler ja schon!!:(
nur es geht einfach nicht es kommen irgendwelche fehler bei include ich verstehs nicht...
sei doch nich so und hilf mir einfach bittemacht es mir nicht komplizierter als es schon ist
-
Während dem kompilieren? Vielleicht ist der Compiler nicht richtig eingerichtet bzw. er findet den Pfad zu dem Include-Verzeichnis nicht?
Ansonsten: Wenn du mit dem g++.exe compilierst, schreibe statt:
#include <iostream.h> // Veraltet KEIN aktueller C++-Standard
#include <iostream> // Nach aktuellem Standard using namespace std;
Und nimm das void main() raus. Der g++ müsste sich darüber nämlich auch beschweren.
also statt
... void main() // War noch nie Standard { ... }
... int main() { return 0; }
Btw. Und Sorry für meine etwas schlechtere Laune, bin nur gerade auf Bug-Suche...
Caipi
-
edit:// kein problem, danke das du mir trotzdem hilfst...
okay hab mal etwas nicht beachtet ... wie schauts jetzt aus ?
edit2: hmmm danke habs mal ausprobiert mit iostream und so, aber da steht jetzt cin und cout undeclared wieso ? steht ja iostream oben hhmmm
#include <iostream.h> void main() {int Zahl,n,i; char Antwort; do {cout<<"Zahl eingeben:"; cin>>Zahl; n=Zahl/1000; for(i=1;1<=n;i++) cout<<"M"; n=(Zahl%1000)/100; if(n==9) cout<<"CM"; if(n==5); cout<<"D"; if(n==4) cout<<"CD"; if(n<4) { for(i=1;i<=n;i++) cout<<"C"; } if(n>5&&n<9) {cout<<"D"; n=n-5; for(i=1;i<=n;i++) cout<<"C"; } n=((Zahl%1000)%100)/10; for(i=1;1<=n;i++) cout<<"C"; if(n==9) cout<<"XC"; if(n==5); cout<<"L"; if(n==4) cout<<"XL"; if(n<4) { for(i=1;i<=n;i++) cout<<"X"; } if(n>5&&n<9) {cout<<"L"; n=n-5; for(i=1;i<=n;i++) cout<<"X"; } n=((Zahl%1000)%100)%10; for(i=1;1<=n;i++) cout<<"X"; if(n==9) cout<<"IX"; if(n==5); cout<<"V"; if(n==4) cout<<"IV"; if(n<4) { for(i=1;i<=n;i++) cout<<"I"; } if(n>5&&n<9) {cout<<"V"; n=n-5; for(i=1;i<=n;i++) cout<<"I"; } cout<<"Wollen Sie das Programm beenden? (J/N)"; cin>>Antwort; }while(Antwort=='J'); }