Buchstaben im form von Raute ausdrucken
-
Hacker schrieb:
SeppJ schrieb:
@Hacker:
In der A Zeile ist 1 'A', in der B Zeile 3 'B', dann wird's auch symmetrisch.Hab ich doch schon. Oben. Und was findest du am Umweg mit string umständlich (tut mir Leid, schon wieder editiert
)?Musst du das wirklich fragen? Wozu einen String aufbauen (was eine ganz schön teure Aktion ist!), wenn eine einfache, formatierte, zeichenweise Ausgabe gesucht ist? Zwei verschachtelte Schleifen und gut ist. Klar wird Effizienz hier keine Rolle spielen, aber wenn man es an den einfachen Beispielen nicht richtig macht, dann kann man es später nicht, wenn es wichtig wird.
Hacker schrieb:
Das wusste ich jetzt nicht. Pfui, schäm dich!
Du darfst ihm gerne helfen. Wunder dich bloß nicht, dass du der einzige sein wirst.
-
SeppJ schrieb:
Hacker schrieb:
SeppJ schrieb:
@Hacker:
In der A Zeile ist 1 'A', in der B Zeile 3 'B', dann wird's auch symmetrisch.Hab ich doch schon. Oben. Und was findest du am Umweg mit string umständlich (tut mir Leid, schon wieder editiert
)?Musst du das wirklich fragen? Wozu einen String aufbauen (was eine ganz schön teure Aktion ist!), wenn eine einfache, formatierte, zeichenweise Ausgabe gesucht ist? Zwei verschachtelte Schleifen und gut ist. Klar wird Effizienz hier keine Rolle spielen, aber wenn man es an den einfachen Beispielen nicht richtig macht, dann kann man es später nicht, wenn es wichtig wird.
So sieht es aher blöd aus:
#include <iostream> #include <string> #include <iomanip> int main() { using std::cout; cout << "Type in Character: "; char ch(std::cin.get()); for(char A('A');A <= ch;++A) { for(int ct(0);ct < ch - A;++ct) cout << ' '; for(int ct(0);ct < (A - 'A') * 2 + 1;++ct) cout << A; cout << '\n'; } for(char A(ch - 1);A >= 'A';--A) { for(int ct(0);ct < ch - A;++ct) cout << ' '; for(int ct(0);ct < (A - 'A') * 2 + 1;++ct) cout << A; cout << '\n'; } }
-
Hacker schrieb:
So sieht es aher blöd aus:
Dann mach, dass es schöner aussieht
.Da gibt es doch so viele Sachen, wie man das hübscher machen könnte, ohne unnötige temporäre Objekte zu erzeugen. Ich mag's aber nicht vormachen, da es dem Threaderstelelr sämtliche Initiative abnehmen würde, überhaupt noch etwas selber zu tun. Es bleibt daher dir als Knobelaufgabe überlassen, das selber zu verschönern, bis du zufrieden bist.
-
kann es sein, dass beide programme fehler haben?
keiner der beiden progs. klappen
-
Beide Programme sind absolut korrekt.
-
#include <iostream> template <typename T> struct valdef { typedef T value; }; template <char... C> struct string { static char const c_str[]; }; template <char... C> char const string<C...>::c_str[] = { C..., 0 }; template <typename, typename> struct append; template <char... C, char... D> struct append<string<C...>, string<D...>> : valdef<string<C..., D...>> {}; template <char C, unsigned N> struct make_string_n : valdef < typename append < typename make_string_n<C, N - 1>::value, string<C> >::value > {}; template <char C> struct make_string_n<C, 0> : valdef<string<>> {}; template <char C, unsigned Chars, char F, unsigned Fills> struct make_rhombus_line : valdef < typename append < typename append < typename make_string_n<F, Fills>::value, typename make_string_n<C, Chars>::value >::value, string<'\n'> >::value > {}; template <char C, unsigned Chars, char F, unsigned Fills> struct rhombus : valdef < typename append < typename make_rhombus_line<C, Chars, F, Fills>::value, typename append < typename rhombus<C + 1, Chars + 2, F, Fills - 1>::value, typename make_rhombus_line<C, Chars, F, Fills>::value >::value >::value > {}; template <char C, unsigned Chars, char F> struct rhombus<C, Chars, F, 0> : valdef<typename make_rhombus_line<C, Chars, F, 0>::value> {}; template <char C, char F> struct make_rhombus : valdef<typename rhombus<'A', 1, F, C - 'A'>::value> {}; int main() { std::cout << make_rhombus<'D', ' '>::value::c_str; }dumdidum
-
Aber mit Makros wäre es viel besser!
-
Hier stand Müll
-
Hatte vorher weche drin, aber ich hab dadurch Compile-Fehler bekommen, die ich nicht verstanden hab, also wieder raus. Aber ja, mit Makros wäre es zumindest einfacher zu lesen.
P.S.: Etwas schwacher Kommentar, dafür, dass ich mich nun ne Stunde hingesetzt hab.

-
314159265358979 schrieb:
P.S.: Etwas schwacher Kommentar, dafür, dass ich mich nun ne Stunde hingesetzt hab.

Das find ich jetzt aber cool, dass du dich hier so gut engagierst. Bin sicher, wenn der TE das dem Prof zeigt..