Brauche Hilfe bei 2 kleinen Programmen
-
PwN0GrPhy schrieb:
aha? oO
Du brauchst eindeutig mehr Grundlagen, weil du sie nicht vernünftig gelernt hast. Dies sind gute Übungen auf deinem Niveau, die du auch mal schnell auf einer Zugfahrt programmieren können solltest.
-
PwN0GrPhy schrieb:
SeppJ schrieb:
Super. Und jetzt machst du ein Programm das 10x "Hallo Welt" ausgibt, aber nur einmal den Text "Hallo Welt" und weniger als 10 Semikolons enthält.
Dann ein Programm, welches eine Zahl N einliest und alle Zahlen bis zu dieser Zahl ausgibt.
Und dann ein Programm, welches eine Zahl N einliest und dann alle Quadratzahlen bis(!) zu dieser Zahl ausgibt (also bei Eingabe 13 Ausgabe 1 4 9).
Und dann ein Programm, welches die Summe der ersten N Zahlen ausrechnet. Bonuspunkt mit drei goldenen Sternchen, wenn das Programm keinerlei Schleife enthält, dabei aber nur 3 Semikolons.aha? oO
SeppJ versucht dir mittelschwere Aufgaben zu stellen, damit du üben kannst. Mach mal diese einfachen Übungs-Programme. Am Anfang grübelst du vielleicht, aber früher oder später hast du den Einfall. Und genau das musst du als Anfänger lernen:
- Problem analysieren
- Lösung überlegen
- Diese dann als Algorhitmus implementieren
- Testen: Falls richtig: Glückwunsch, falls falsch: wieder zu Schritt 2
-
SeppJ schrieb:
Und dann ein Programm, welches die Summe der ersten N Zahlen ausrechnet. Bonuspunkt mit drei goldenen Sternchen, wenn das Programm keinerlei Schleife enthält, dabei aber nur 3 Semikolons.
Mit 2 Semikolons:
int sum(int n) { return( ( n <= 0 ) ? 0 : (n + sum( n - 1 )) ); } int main( int argc, char *argv[] ) { return( sum( argc - 1 ) ); }
errorlevel = summer 1
errorlevel = summer 1 1
errorlevel = summer 1 1 1
...
-
Das ist auch eine schöne Lösung, aber das zähle ich als verkappte Schleife
. Ich dachte eher an die clevere Lösung, auf die man durch richtiges Nachdenken kommt (bitte nicht verraten!). Gewisse Genies würden sagen, das wäre kinderleicht *hint*.
-
Ist das nicht in etwa dasselbe Problem wie:
1. Fig: X 2. Fig: XX X 3. Fig: XXX XX X 4. Fig: XXXX XXX XX X usw. Wieviele X hat die 20. Fig
Wenn ja: Ich kenn die Lösung, die ist:
Nö, so gemein bin ich mal nicht
-
Oder #2 (klappt aber nur bedingt):
int sum(int n) { return( ( n <= 0 ) ? 0 : (n + sum( n - 1 )) ); } int main( int argc, char *argv[] ) { printf( "%d\n", sum( argc > 1 ? (*argv[1] - 0x30) : 0 ) ); }
summer 1
summer 2
summer 3
...
-
@EOP: Nix Schleife und auch nix Rekursion. Gibt ne viel einfachere Lösung.
-
#3: Gauß :p
SeppJ hat doch gesagt - nix verraten.
Die Beiden waren nur Spielereien...
-
@EOP
Was soll denn das 0x30 ?
Meinst du damit '0' ?Dann schreib das doch auch!
-
DirkB schrieb:
@EOP
Was soll denn das 0x30 ?
Meinst du damit '0' ?Dann schreib das doch auch!
Ich benutze hex für ascii gewohnheitsmäßig seit zig Jahren. Tschuldigung.
Aber sum will ja auch ein int und nix mit Hochkommas.
-
ASCII. Pah, wie eingeschränkt.
Und '0' ist doch ein int. Genau so wie 'A'.
-
DirkB schrieb:
ASCII. Pah, wie eingeschränkt.
Und '0' ist doch ein int. Genau so wie 'A'.
Hätte eigentlich erwartet, daß du dich beschwerst weil ich Hochkammas und nicht Hochkommata geschrieben hab.
-
EOP schrieb:
Hätte eigentlich erwartet, daß du dich beschwerst weil ich Hochkammas und nicht Hochkommata geschrieben hab.
Warum sollte ich mich beschweren? Im Post hast du es ja noch richtig geschrieben (Rechtschreibung): Hochkommas
Im Duden steht:
"das Komma; Genitiv: des Kommas, Plural: die Kommas und Kommata"
-
DirkB schrieb:
EOP schrieb:
Hätte eigentlich erwartet, daß du dich beschwerst weil ich Hochkammas und nicht Hochkommata geschrieben hab.
Warum sollte ich mich beschweren? Im Post hast du es ja noch richtig geschrieben (Rechtschreibung): Hochkommas
Im Duden steht:
"das Komma; Genitiv: des Kommas, Plural: die Kommas und Kommata"Hab's gesehen war aber zu faul für'n edit.
Und nächstes Mal schreib' ich 060 statt 0x30...
-
EOP schrieb:
Und nächstes Mal schreib' ich 060 statt 0x30...
Wird Zeit, dass der Standard endlich binäre Zahlen erlaubt.
-
Habs jetzt seit paar Tagen fertig. Wenns wer wissen will, hier sind die Codes:
#include <stdio.h> int main(void) { double zahl = 0; int h = 0; printf("Geldschein/Muenzen-Berechnungs-Programm \n"); //Titel es Programms printf("======================================== \n \n"); //Trennzeile printf("Betrag in Euro --> "); //Eingabeaufforderung des Betrags(in Euro) scanf("%lf", &zahl); //Hier wird das vom User eingegebene eingelesen zahl *= 100; //Hier wird der Betrag in Cent umgerechnet printf("\n"); //Zeielumbruch(damits besser aussieht) h = zahl / 50000; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 500 Euro-Schein(e)\n", h); //500 Euro Scheine benoetigt werden zahl -= (h * 50000); h = zahl / 20000; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 200 Euro-Schein(e)\n", h); // 200Euro Scheine benoetigt werden zahl -= (h * 20000); h = zahl / 10000; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 100 Euro-Schein(e)\n", h); // 100Euro Scheine benoetigt werden zahl -= (h * 10000); h = zahl / 5000; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 50 Euro-Schein(e)\n", h); // 50Euro Scheine benoetigt werden zahl -= (h * 5000); h = zahl / 2000; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 20 Euro-Schein(e)\n", h); // 20Euro Scheine benoetigt werden zahl -= (h * 2000); h = zahl / 1000; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 10 Euro-Schein(e)\n", h); // 10Euro Scheine benoetigt werden zahl -= (h * 1000); h = zahl / 500; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 5 Euro-Schein(e)\n", h); //5Euro Scheine benoetigt werden zahl -= (h * 500); h = zahl / 200; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 2 Euro-Muenze(n)\n", h); // 2Euro Muenzen benoetigt werden zahl -= (h * 200); h = zahl / 100; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 1 Euro-Muenze(n)\n", h); // 1 Euro Muenzen benoetigt werden zahl -= (h * 100); h = zahl / 50; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 50 Cent-Muenze(n)\n", h); // 50Cent Muenzen benoetigt werden zahl -= (h * 50); h = zahl / 20; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 20 Cent-Muenze(n)\n", h); // 20Cent Muenzen benoetigt werden zahl -= (h * 20); h = zahl / 10; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 10 Cent-Muenze(n)\n", h); // 10Cent Muenzen benoetigt werden zahl -= (h * 10); h = zahl / 5; //In diesen 3 Zeilen wird berechnet & ausgegeben wie viele printf("%d 5 Cent-Muenze(n)\n", h); // 5Cent Muenzen benoetigt werden zahl -= (h * 5); h = zahl / 2; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 2 Cent-Muenze(n)\n", h); //2Cent Muenzen benoetigt werden zahl -= (h * 2); h = zahl / 1; //In diesen 3Zeilen wird berechnet & ausgegeben wie viele printf("%d 1 Cent-Muenze(n)\n", h); // 1Cent Muenzen benoetigt werden zahl -= (h * 1); return 0; }
#include <stdio.h> int main (void) { double kapital, zinssatz, zinsen; int j, m, d; printf("Kapital (in Euro) --> "); //Eingabeaufforderung fuer den Betrag in Euro scanf("%lf", &kapital); //Das Kapital wird eingelesen (in Euro) printf("Zinssatz (in %%) --> "); //Eingabeaufforderung des Zinssatzes in Prozent scanf("%lf", &zinssatz); //Der zinssatz wird eingelesen(in %) printf("Verzinsungsdauer (im Format j-m-d) --> "); //Eingabeaufforderung der Verzinsungsdauer scanf("%d-%d-%d", &j, &m, &d); //Verzinsungsdauer wird eingelesen printf("---------------------------------------------------\n"); //Trennzeile zinsen = (kapital * zinssatz * (j * 360 + m * 30 + d)) / (100 * 360); //Hier wird alles ausgerechnet printf("Es ergeben sich Zinsen von %.2f Euro.\n", zinsen); //Hier wird ausgegeben wv Zinsen es sind(in Euro) printf("Wert des einfach verzinsten Gesamtkapitals: %.2f Euro.\n", kapital + zinsen); //Hier wird der Wert des einfach verzinsten Gesamtkapitals ausgegeben return 0; }
MfG
Btw.: kann geclosed werden
-
Ja super.
Und wenn du auch noch den Rückgabewert von scanf auswertest und den Tastaturpuffer löscht, können auch irgendwelche DAU mit ihren Eingaben dein Programm nicht mehr aushebeln.