parametet



  • Ok, hast Recht, da habe ich einen Flüchtigkeitsfehler gemacht. int oder long wäre ein richtiger Rückgabewert. Trotzdem ging das Beispiel in die richtige Richtung. Glaub mir, du willst nicht wirklich ein Programm ohne main-Funktion schreiben!

    hasso schrieb:

    Dann kommt wiedermal die typische Ausgabe Bitte drücken Sie eine taste !

    Warum wundert dich das? In dem Beispiel wird ja auch keine Ausgabe gemacht. Es soll lediglich das Prinzip verdeutlicht werden. Ausgaben werden z.B. mit printf() gemacht.

    hasso schrieb:

    übrigens ich hab ein Buch. Aber indem Buch wird zu wenig drauf eingegangen.

    Du hast ein C-Buch, in dem nicht darauf eingegangen wird, wie man Funktionen aufruft?? Na dann herzlichen Glückwunsch! Sieh mal genau hin. Wenn's nicht gerade ein Kochbuch ist, wird es voll von Funktionsaufrufen sein. 😉



  • Hallo, zuedem programm habe ich eine frage..

    die frage bezieht sich auf zeile 30

    Dort steht eine 1 in eingabe(1)

    Was bezweckt die 1. in den Klammern von eingabe?

    #include <stdio.h>
    
    int max(int a, int b)
    {
    if (a>b)
    
    return a;
    
    else
    
    return b;
    }
    
    int eingabe(int nr)
    {
    
    int eingabe;
    printf("Bitte geben Sie %i. Zahl ein!",nr);
    scanf("%i",&eingabe);
    return eingabe;
    
    }
    
    void main(void)
    {
    
    int i, anzahl, maximum;
    printf("Wieviele Zahle eingeben!?");
    scanf("%i",&anzahl);
    maximum=eingabe(1); // *************
    
    for(i=1; i <= anzahl; i++)
    maximum = max(eingabe(i),maximum); 
    printf("\n Die groesste Zahl war %i.",maximum);
    }
    

    gruß



  • Und über das "Bitte geben Sie %i. Zahl ein!" in Zeile 18 bist du nicht gestolpert?



  • //Funktionsprototyp:
    
    //1    //2    //3
    int eingabe(int nr)
    
    //1=Rückgabewert der Funktion
    //2=Name der Funktion
    //3=Argument, dass an die Funktion übergeben werden muss
    
    //Aufruf:
    
      //1     //2  //3
    maximum=eingabe(1);
    
    //1=der Variable maximum wird der Rückgabewert der Funktion eingabe zugewiesen (return-Anweisung in der Funktion)
    
    //2=die Funktion eingabe wird aufgerufen
    
    //3=der Funktion eingabe bzw. ihrem Argument/Parameter "int nr" wird der Wert 1 zugewiesen
    

    Sowas kannst du in JEDEM C-Anfängerbuch und in JEDEN C-Anfänger-Tutorial nachlesen, und zwar direkt am Anfang. Das sind absolute Grundlagen des Programmierens. Bitte erzähl mir nicht, dass auf sowas in deinem ominösen Buch nicht genügend eingegangen wird. Wie heißt denn das Buch? "C - Die Funktionsreferenz"?!



  • fassungslos-flamer schrieb:

    Und über das "Bitte geben Sie %i. Zahl ein!" in Zeile 18 bist du nicht gestolpert?

    ich glaube, danach wird er fragen, wenn sein zähler über 300 ist.
    🙂



  • Hey das programm zeigt 3 Fehler an. Die Fehler sind unten angezeigt.. jemand ein Plan ?

    include <stdio.h>
    gt
    void eingabe( float umsatz[12][2], char monate[12][12] );
    void ausgabe( float umsatz[12][2], char monate[12][12] );
            void mw(float umsatz[12][2], float summe, float mittelwert);
    void mw_ausgabe(float umsatz[12][2], float summe, float mittelwert);
    
    int main(void)
    {
        float umsatz[12][2];
        char monate[12][12] = {"Januar", "Ferbruar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; 
    	float summe =0;
    	float mittelwert;
    		eingabe(umsatz, monate);						// Aufruf der 1.-ten Funktion!
    		ausgabe(umsatz, monate);						// Aufruf der 2.-ten Funktion!
    		mw(umsatz[12][2], summe, mittelwert);			// Aufruf der 3.-ten Funktion!
    		mw_ausgabe(umsatz[12][2], summe, mittelwert);	//Aufruf  der 4.-ten Funktion!
        return 0;
    }
    
    void eingabe( float umsatz[12][2], char monate[12][12] )
    { 
        int i;
        int j;
        printf("\n\nHandelsfirma A & B GmbH\n\n"); 
    
        for(j=0;j<=1;j++)
        {
            printf( "\nBitte geben Sie die Daten fuer das %d. Unternehmen ein:\n", j+1 );
            for(i=0;i<=11;i++)
            {
                printf("Bitte %i -ten Umsatz fuer %s 2007 \n",i+1,monate[i]);  // Eingabe 
                printf("Eingabe:");scanf("%f",&umsatz[i][j]); 
            }
        }
    }
    
    void ausgabe( float umsatz[12][2], char monate[12][12] )
    {
        int i;
        printf("\n--------------------------------------------------------------------------------\n"); 
        printf("\n                 :::Filiale 1:::                      :::Filiale 2:::\n\n");
        printf("\n--------------------------------------------------------------------------------\n"); 
        for (i=0;i<=11;i++) 
        { 
            printf("%5i. %10s 2007 %10.2f",i+1 ,monate[i],umsatz[i][0]);  //Ausgabe Umsatz, Monat, Jahr 
            printf("%5i. %10s 2007 %10.2f",i+1 ,monate[i],umsatz[i][1]);  //Ausgabe Umsatz, Monat, Jahr 
            printf("\n"); 
        }
        printf("\n--------------------------------------------------------------------------------\n");
    }
    
    void mw(float umsatz[12][2], float summe, float mittelwert)
    {
    
    int i;
    for(i=0; i < 11; i++)
    {
    printf("%f",umsatz[12][2]);
    }
    
    summe += umsatz[12][1];
    
    mittelwert = summe / 12;
    
    } 
    
    mw_ausgabe(float umsatz[12][2],float summe, float mittelwert)
    {
    
    printf("%12.2f",mittelwert);
    
    }
    

    1>------ Neues Erstellen gestartet: Projekt: aufgabe2.c, Konfiguration: Debug Win32 ------
    1>Die Zwischen- und Ausgabedateien für das Projekt "aufgabe2.c" mit der Konfiguration "Debug|Win32" werden gelöscht.
    1>Kompilieren...
    1>aufgabezwei.c
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(16) : error C2440: 'Funktion': 'float' kann nicht in 'float ()[2]' konvertiert werden
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(16) : warning C4024: 'mw': Unterschiedliche Typen für formalen und übergebenen Parameter 1
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(17) : error C2440: 'Funktion': 'float' kann nicht in 'float (
    )[2]' konvertiert werden
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(17) : warning C4024: 'mw_ausgabe': Unterschiedliche Typen für formalen und übergebenen Parameter 1
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(70) : error C2371: 'mw_ausgabe': Neudefinition; unterschiedliche Basistypen
    1> c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(6): Siehe Deklaration von 'mw_ausgabe'

    gruß Hassssoooo



  • hasso schrieb:

    Hey das programm zeigt 3 Fehler an. Die Fehler sind unten angezeigt.. jemand ein Plan ?

    woran haperts? solche fehlermeldungen sind meistens ziemlich eindeutig. oder kannste nicht so gut englisch?
    🙂



  • junger mann du sollst nicht meine englisch kenntnisse testen sondern mir bei dem Problem helfen.

    kein zeit für son gelaber



  • hasso schrieb:

    junger mann du sollst nicht meine englisch kenntnisse testen sondern mir bei dem Problem helfen.

    ok, also:

    error C2440: 'Funktion': 'float' kann nicht in 'float (*)[2]' konvertiert werden

    die fehlermeldung sagt, dass du versuchst, eine funktion mit einem einzelnen 'float' aufzurufen, die aber an dieser stelle ein argument vom typ 'float(*)[2]' erwartet. ein scharfer blick auf den code und du siehst es selber. streng dich doch mal ein bisschen an.
    🙂



  • hab ne viertelstunde drauf geguckt und ich find den fehler nicht.

    Ich bin nicht ALLWISSEND. Und mir ist solch ein fehler noch nicht aufgetreten.

    Kein Plan .

    Erklär mal ?? welches float?

    grußμ



  • hasso schrieb:

    hab ne viertelstunde drauf geguckt und ich find den fehler nicht.

    Ich bin nicht ALLWISSEND. Und mir ist solch ein fehler noch nicht aufgetreten.

    Kein Plan .

    Erklär mal ?? welches float?

    grußμ

    Welches float?! Da steht doch 'ne Zeilenangabe...

    float umsatz[12][2];  //du erzeugst ein 2D-Array
    
    mw(umsatz[12][2], summe, mittelwert);  //du versuchst, das Element [12][2] des Arrays zu übergeben (dass es nebenbei gar nicht gibt: letztes Element ist [11][1])
    
    //versuch es so:
    mw(umsatz, summe, mittelwert);
    

Anmelden zum Antworten