übergabe an Unterfunktion scheitert
-
Moin!
Nicht lachen! 1. Semester!
ich will die Werte zeichen und gesamt an eine Unterfunktion übergeben.
der Kopf sieht so aus:
int auswahl_eins (int gesamt, char 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 (int gesamt, char zeichen); // Übergabe
}Kopf der Unterfkt.:
int auswahl_eins ( int gesamt, char zeichen)
Jetzt bekomme ich folgenden Fehler:
1.) Syntaxfehler : Fehlendes ')' vor 'type' // mit zeiger auf die Übergabe
2.) 'auswahl_eins' : Nicht genügend Parameter uebergeben // ist ja klarDanke, danke im Voraus!
-
Bei der Übergabe brauchst du den Typ nicht mit anzugeben, sonst verwirrst du nur deinen Compiler:
else if (wahl==1) { //... auswahl_eins (gesamt,zeichen); // Übergabe }
-
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; }
-
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!