S
C_NOOB schrieb:
Danke!
hab auch noch "[2]" die Länge des char nicht mit übergeben.
so siehts fertig aus!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int auswahl_eins (int gesamt, char zeichen[2]);
int auswahl_null (int m, int hoehe, char zeichen[2]);
int main (void)
{
int wahl, gesamt=0, hoehe=0, m=0 ;
char zeichen[2];
printf(" *************** Tannenbaum *************** \n\n");
printf("\n Wollen sie den Baum aus Stamm- und Gesamthoehe(0)\n");
printf("\n oder Anzahl der Zeichen(1)\n\n berechnen lassen? Beenden:sonstige Zeichen\n\n");
printf(" Ihre Wahl: ");
scanf("%d", &wahl);
// Übergabe an Unterfunktionen
if (wahl==0)
{
// Auswahl
printf(" Bitte Zeichen eingeben, mit dem der Baum dargestellt werden soll.\n\n");
printf(" Ihre Wahl: ");
fflush(stdin);
gets(zeichen);
// Einlesen
printf("\nBitte geben sie die Stammhoehe ein!\n\n");
printf(" Ihre Wahl: ");
fflush(stdin);
scanf("%d", &m);
printf("\nBitte geben sie die Gesamthoehe ein!\n\n");
printf(" Ihre Wahl: ");
fflush(stdin);
scanf("%d", &hoehe);
auswahl_null(m, hoehe, zeichen);
}
else if (wahl==1)
{
printf("\n Bitte Zeichen eingeben, mit dem der Baum dargestellt werden soll.\n\n");
printf(" Ihre Wahl: ");
fflush(stdin);
gets(zeichen);
printf("\n Bitte geben sie die Anzahl der Zeichen ein.\n\n");
printf(" Ihre Wahl: ");
fflush(stdin);
scanf("%d", &gesamt);
auswahl_eins (gesamt, zeichen);
}
}
//******************** auswahl eins *******************************************
int auswahl_eins ( int gesamt,char zeichen[2])
{
int zweig=0, i=1, j, zaehler=1;
double n, m, leer, ncopy;
// berechnung
n = sqrt (gesamt); // zieht die Wurzel aus Gesamtanzahl der Zeichen
n = floor(n); // rundet n ab, falls ein float entsteht
m = gesamt - n*n; // weist den Rest der Wurzel auf m zu
ncopy=n; // merker für n
//Zweige zeichnen
do
{
printf("\n");
for (leer= n-1; leer >=1; leer--)
{
printf(" ");
}
for (i; i<=zaehler; i++)
{
printf("%s", zeichen);
}
i=1;
n--;
zaehler = zaehler+2;
}while (n>=1);
//Stamm zeichnen
for (m; m>=1; m--)
{
printf("\n");
for (j=1; j<ncopy; j++)
printf (" ");
printf("%s",zeichen);
}
printf("\n\n");
return 0;
}
Sicher? Bei mir kommt immer ne Fehlermeldung!
Aber das ist warhscheinlich deswegen weil "int auswahl_null (int m, int hoehe, char zeichen[2]);" nicht definiert ist!