C C Frage

Blanka

Lt. Junior Grade
Registriert
Dez. 2008
Beiträge
394
ich möchte in C folgendes tun

und zwar soll dieses muster ausgegeben die anzahl der zeilen soll jedoch variabel sein und vom benutzer eingegeben werden.


*
***
****
*****
*******​

dann noch dieses muster


____*
___**
__***
_****
*****


Könnt ihr mir bitte etwas auf die sprünge helfen? danke

muss doch sicher mit einer schleife gemacht werden. aber wie bekomme ich diese formatierung hin?
 
Ist sicher ne Schulaufgabe....hatte ich auchmal :> ist relativ einfach. Probiers aber doch erstmal selbst. Und wenn du Probleme hast kannst du ja wieder Fragen. Aber wenn wir dir gleich ne Lösung geben, hast du dabei 0 gelernt.
 
die eingabe der zeile findet in main statt und die beiden muster in funktionen

das mit den funktionen ist kein problem aber das muster kriege ich einfach nicht hin.

das symbol mit dem das muster erstellt wird muss auch eingelesen werden

ist übrigens eine uni aufgabe :D


wie geht denn die mittige ausgabe?
 
Der berühmte Xmas Tree...
Hatten wir damals vor langer Zeit im ersten Semester als Wettbewerb, wer es in den wenigsten Zeilen in Java hinbekäme...
Der cleverste hat eine andere Sprache benutzt, eine .exe compiliert und diese mit einem Java Kommandozeilenprogramm in 2 Zeilen aufgerufen... Das waren noch Zeiten :)
Ist aber an sich eine recht simple Sache...
 
hier ist mein ansatz

#include <stdio.h>

void funktion1(int zeilen,char zeichen);

int main(void)
{
int zeilen;
char zeichen;

do {
printf("Bitte Anzahl der Zeilen eingeben (maximal 15): ");
scanf("%d", &zeilen);}
while(zeilen>15);
printf("Bitte Zeichen eingeben: ");
scanf("\n%c", &zeichen);
printf("\n");

funktion1(zeilen, zeichen);

return 0;}

void funktion1(int zeilen,char zeichen)
{

printf("%15c", zeichen);
}
 
Blanka schrieb:
hier ist mein ansatz

#include <stdio.h>

void funktion1(int zeilen,char zeichen);

int main(void)
{
int zeilen;
char zeichen;

do {
printf("Bitte Anzahl der Zeilen eingeben (maximal 15): ");
scanf("%d", &zeilen);}
while(zeilen>15);
printf("Bitte Zeichen eingeben: ");
scanf("\n%c", &zeichen);
printf("\n");

funktion1(zeilen, zeichen);

return 0;}

void funktion1(int zeilen,char zeichen)
{

printf("%15c", zeichen);
}


Was zur Hölle ?
 
ich will keinen fertigen code von euch. ich will nur wissen was ich benutzen muss. schleifen?
 
Ja Schleifen.
Ergänzung ()

Oder eine Funktion die du Rekursiv aufrufst ^_^aber machs mit Schleifen...
 
ganz grob:

du brauchst eine schleife. die braucht einen counter, der sich an der anzahl der zeilen orientiert. dann rückst du in der ersten zeile (= erster schleifendurchlau) um den counter ein (also printest von mir aus leerzeichen), dann prontest du den stern. und schließt den schleifendurchlauf damit ab, dass du vom counter einen abziehst. das wird durch die schleife solange wiederholt, bis der counter auf 0 steht (natürlich muss du im zweiten schleifendurchlauf auch zwei sternchen printen). dann bist du in der letzten zeile angekommen und brauchst auch nicht mehr einrücken.

der zweite baum ist noch einfacher.

Ich habs dir hier mal in java aufgeschrieben, dann musst du es wenigstens noch in c übersetzen.

Aufgabe 1:

Code:
public class printTree {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		int counter = 5; // Anzahl Zeilen
		int sternchen = 0; // anzahl von sternchen
		while (counter >= 1){
			printLeerzeichen(counter - 2);
			printSternchen(sternchen);
			sternchen = sternchen + 2;
			counter--;
		}
	}
	
	public static void printLeerzeichen(int x){
		while(x >= 0){
			System.out.print(" ");
			x--;
		}
	}

	public static void printSternchen(int x){
		while(x >= 0){
			System.out.print("*");
			if(x == 0){
				System.out.print("\n");
			}
			x--;
		}
	}
}

Aufgabe 2, braucht wie gesagt nur kleine modifizierung:

Code:
public class printTree {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		int counter = 5; // Anzahl Zeilen
		int sternchen = 0; // anzahl von sternchen
		while (counter >= 1){
			printLeerzeichen(counter - 2);
			printSternchen(sternchen);
			sternchen = sternchen + 1;
			counter--;
		}
	}
	
	public static void printLeerzeichen(int x){
		while(x >= 0){
			System.out.print("_");
			x--;
		}
	}

	public static void printSternchen(int x){
		while(x >= 0){
			System.out.print("*");
			if(x == 0){
				System.out.print("\n");
			}
			x--;
		}
	}
}

Bitte tötet mich nicht wegen schlechten programmierstil :p
 
Zuletzt bearbeitet:

Ähnliche Themen

  • Gelöst
2
Antworten
28
Aufrufe
1.629
  • Gesperrt
2 3
Antworten
51
Aufrufe
3.106
Antworten
10
Aufrufe
946
Antworten
9
Aufrufe
1.431
Zurück
Oben