Funktion



  • schonmal was con copy / paste gehört?? oder warte das heisst auf Deutsch kopieren/ Einfügen ne 😉 ?

    So dann öffnest du dein Compiler und fügst den Quelltext ein.
    Dann siehst du die Fehler .... 😃

    take ist easy



  • Hallo hasso/hassun (warum zwei verschiedene, meld dich doch einfach mal an!)

    ich kann mich meinen Vorpostern nur anschließen. Es ist eine Frechheit
    den Code zu posten, zu sagen es sind 4 Fehler drin und dann nach dem Motto:

    Hey, macht mal!
    

    Du solltest mindestens zu den Fehlern ein paar mehr Informationen geben.

    Aber ja, du hast Recht, es sind vier Fehler drinnen. Mit Hilfe meines
    Compilers konnte ich die auch leicht finden und beseitigen.

    Damit du dabei was lernst, poste ich dir hier nicht den verbesserten Code.

    Schick mal deine Compiler-Meldungen und dann schauen wir weiter.

    Gruß mcr



  • ich will auch mal nicht so sein. hier ist der erste:

    void main(void)
    

    main sollte nicht 'void' als returnwert haben.
    🙂



  • Okk CHEF!

    Kann sein das es Falsch rüber gekommen ist aber so mein ich das nicht.. Ich hab mir schon gedanken gemacht bevor ich es geposted habe. Ich will ja auch was dabei lernen. Und möcht nicht von anderen abhängig sein jedes mal was zu fragen .

    Aber anscheinend sind hier so viele Spaßvögel die Spaß dran haben andere zu ärgern weil die es schon können. MEINE MEINUNG! und ich Glaub die vertreten so einige!

    Aber na guut

    Zum wichtigen: Also ich konnt 2 Fehler noch beseitigen.

    Also 4-2 = 2 Fehler sind noch drin 🙂

    #include <stdio.h>
    
    void eingabe(float umsatz_unternehmen[12][2], char monate[12][12); //übergabeparameter
    void ausgabe(float umsatz_unternehmen[12][2], char monate[12][12); //übergabeparameter
    
    void main(void)
    {
    char monate[12][12] = {"Januar", "Ferbruar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; 
    float umsatz_unternehmen[12][2]; // zweidimensionales Umsatz 
    
        eingabe(umsatz_unternehmen, monate);
        ausgabe(umsatz_unternehmen, monate);
    	return 0;
    }
    
    void eingabe(float umsatz_unternehmen[12][2], char monate[12][12])
    { 
    
    int i;
    int j;
    int n = 11;
    printf("\n\nHandelsfirma A & B GmbH\n\n"); 
    
      for(j=0;j<=1;j++)
        {
    printf( "\nBitte geben Sie die Daten fuer das 1. Unternehmen ein:\n" );
    
            for(i=0;i<=n;i++)
    		{
    
                printf("Bitte %i -ten Umsatz fuer %s 2007\n",i+1,monate[i]);  // Eingabe 
                printf("Eingabe:");
    			scanf("%f",&umsatz_unternehmen[i]); 
            }
    
    printf( "\nBitte geben Sie die Daten fuer das 2. Unternehmen ein:\n" );
    
            for(i=0;i<=n;i++)
    		{
    
                printf("Bitte %i -ten Umsatz fuer %s %s 2007\n",i+1,monate[i]);  // Eingabe 
                printf("Eingabe:");
    			scanf("%f",&umsatz_unternehmen[i][j]);
    		}
    
    }
    
    }
    
    void ausgabe(float umsatz_unternehmen[12][2], char monate[12][12])
    {
    int i;
    float umsatz[12][2];
    char monat[12][12];
    printf("\n--------------------------------------------------------------------------------\n"); 
    printf("\n+++++++++++++++++++:::Filiale 1:::++++++++++++:::Filiale 2:::+++++++++++++++++++\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
            printf("%5i. %10s 2007 %10.2f",i+1 ,monate[i],umsatz[i][1]);  //Ausgabe Umsatz, Monat 
            printf("\n"); 
        }
    printf("\n--------------------------------------------------------------------------------\n");
    
    }
    

    Fehler:
    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(3) : error C2143: Syntaxfehler: Es fehlt ']' vor ')'
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(4) : error C2143: Syntaxfehler: Es fehlt ']' vor ')'
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(13) : warning C4098: 'main': 'void'-Funktion gibt einen Wert zurück
    1>Das Buildprotokoll wurde unter "file://c:\Users\hasso\Documents\Visual Studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\Debug\BuildLog.htm" gespeichert.
    1>aufgabe2.c - 2 Fehler, 1 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

    Gruß



  • du willst uns wohl auf den arm nehmen, du armleuchter. 👎



  • hasso schrieb:

    Fehler:
    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(3) : error C2143: Syntaxfehler: Es fehlt ']' vor ')'
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(4) : error C2143: Syntaxfehler: Es fehlt ']' vor ')'
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(13) : warning C4098: 'main': 'void'-Funktion gibt einen Wert zurück

    Gruß

    Hallo Hasso,
    hast du die Fehlermeldungen gelesen? Auf der Zeilen 3, 4 am Ende hast du [12) ohne
    geschlossene eckige Klammern, also [12])
    und wenn du void main(void) machst, musst du noch den return 0 ; loeschen.

    Gruss,



  • lass es jbach. solchen leuten hilft man nicht, sonst lernen sie es nie.



  • oh man wie konnt ich das übershenen 😮



  • Tjo, zu blöd, um sich Compilefehlermeldungen mal genauer anzuschauen und dann noch rotzfrech werden, wenn man fordert, Eigeninitiative zu zeigen. Du wirst mal ein ganz Großer 👍



  • Ein weiterer Fehler ist in der Zeile 34:

    scanf("%f",&umsatz_unternehmen[i]);
    

    Dazu kommt noch, dass die for-Schleife in Zeile 24:

    for(j=0;j<=1;j++)
    

    überflüssig ist.

    Gruß mcr

    EDIT: void main ... schreibt man nicht mehr.
    int main(void) wäre hier richtiger.



  • hasso schrieb:

    Aber anscheinend sind hier so viele Spaßvögel die Spaß dran haben andere zu ärgern weil die es schon können. MEINE MEINUNG! und ich Glaub die vertreten so einige!

    eigentlich nicht. das liegt nur an lernresistenten spassvögeln wie dir.
    🙂



  • hassun schrieb:

    schonmal was con copy / paste gehört?? oder warte das heisst auf Deutsch kopieren/ Einfügen ne 😉 ?
    So dann öffnest du dein Compiler und fügst den Quelltext ein.
    Dann siehst du die Fehler .... 😃
    take ist easy

    du wohl wichtigeres zu tun, als deine eigenen fehler zu verbessern.



  • jsbach schrieb:

    Hallo Hasso,
    hast du die Fehlermeldungen gelesen? ...

    Nein, warum sollte er, das sollst du doch machen.



  • könnte wetten, bei dir im quellcode steht immer noch Ferbruar 🙄



  • Sorry Doppelpost...
    BITTE LÖSCHEN!



  • EDIT: void main ... schreibt man nicht mehr.
    int main(void) wäre hier richtiger.

    Schreibt man nicht int main()? Ist das void zwingend erforderlich?



  • hasso schrieb:

    Aber anscheinend sind hier so viele Spaßvögel die Spaß dran haben andere zu ärgern...

    Och Menno!

    Jetzt kam' ich ja gar nicht zum Zug weil ihr so schnell seid... 😞



  • Wirt.-Inf.07 schrieb:

    EDIT: void main ... schreibt man nicht mehr.
    int main(void) wäre hier richtiger.

    Schreibt man nicht int main()? Ist das void zwingend erforderlich?

    Soweit ich weiß, ist unter C beides gültig.

    Gruß mcr



  • mcr schrieb:

    Wirt.-Inf.07 schrieb:

    EDIT: void main ... schreibt man nicht mehr.
    int main(void) wäre hier richtiger.

    Schreibt man nicht int main()? Ist das void zwingend erforderlich?

    Soweit ich weiß, ist unter C beides gültig.

    Gruß mcr

    Ok, thx. Dann hab ich heute wieder etwas dazugelernt! 😉



  • Hallo, es es gibt eine Fehlermeldung die sieht so aus:

    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(23) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306): Siehe Deklaration von 'scanf'
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(58) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
    1>c:\users\hasso\documents\visual studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\aufgabezwei.c(66) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ'
    1>Das Buildprotokoll wurde unter "file://c:\Users\hasso\Documents\Visual Studio 2008\c++\helloworld\zeichenkette\zeichenkette\zeichenkette\seminaraufgabe\aufgabe2.c\aufgabe2.c\Debug\BuildLog.htm" gespeichert.
    1>aufgabe2.c - 2 Fehler, 1 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    
    void eingabe(float umsatz_unternehmen[12][2], char monate[12][12]); //übergabeparameter
    void ausgabe(float umsatz_unternehmen[12][2], char monate[12][12]); //übergabeparameter
    
    char first_use = 1;
    
    int pruefung() {
    
       int m;
    
       while(1)
          {
          	printf("Menue 1: Umsaetze\nMenue 2: Ausgabe Umsaetze\nMenue 3: Mittelwert\nMenue 4: Standardarabweichung\nMenue 5: Min/Max\nMenue 0: Beenden\nAuswahl: ");
    
          	fflush(stdin);
          	scanf("%i", &m);
    
                if( m<0 || m>5 ) // nicht innerhalb des auswahlbaren bereich
                   {
                      printf("\nUngueltige Eingabe!\n\n");
                   }
    			else if( m != 0 && m != 1 && first_use  )
                   {
                      printf("\nBitte geben sie erstmal die Umsaetze ein!\n\n");
                   }
                else
                   {
                      printf("\n");
                      return m;
                   }
    
          }
    }
    
    int main(void) {
    
    char monate[12][12] = {"Januar", "Ferbruar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; 
    float umsatz_unternehmen[12][2]; // zweidimensionales Umsatz 
    
        eingabe(umsatz_unternehmen, monate);
        ausgabe(umsatz_unternehmen, monate);
    
       return 0;
    
       while( 1 ) 
          {
             switch( pruefung() )
                {
                   case 1:
    				  void eingabe(float umsatz_unternehmen[12][2], char monate[12][12]); //Es fehlt ';' vor 'Typ'
    
                      fflush(stdin); getc(stdin);
                      printf("Danke fuer den Input!\n\n");
                      first_use = 0; //ok, funktion wurde genutzt, umsaetze sind drin, 2,3,4,5 können benutzt werden!
                      break;
    
                   case 2: 
                      printf("[Ausgabe Umsaetze]\n");
                      void ausgabe(float umsatz_unternehmen[12][2], char monate[12][12]);
                      break;
    
                   case 3: 
                      printf("[Mittelwert]\n");
                      printf("Funktionsaufruf fuer diesen Fall Programm verlassen?\n\n");
                      // <Funktionsaufruf für diesen Fall!>
                      break;
    
                   case 4:
                      printf("[Standardabweichung]\n");
                      printf("Funktionsaufruf fuer diesen Fall\n\n");
                      // <Funktionsaufruf für diesen Fall!>
                      break;
    
                   case 5:
                      printf("[Min/Max]\n");
                      printf("Funktionsaufruf fuer diesen Fall\n\n");
                      // <Funktionsaufruf für diesen Fall!>
                      break;
    
                   case 0:
                      // <Funktionsaufruf zum saubermachen des Programms dann beenden!>
                      printf("[Programm Ende!]");
                      return 0;
    
                   default:
                      // <Funktionsaufruf zum saubermachen des Programms dann beenden!>
                      printf("\n\nFehler im Switch\n\n");
                      return 0;
                }
          }
    
       getchar(); // dient dazu das programm anzuhalten
       return 0;
    
    }
    
    void eingabe(float umsatz_unternehmen[12][2], char monate[12][12])
    { 
    
    int i;
    int j;
    int n = 11;
    printf("\n\nHandelsfirma A & B GmbH\n\n"); 
    
      for(j=1;j<=1;j++)
        {
    printf( "\nBitte geben Sie die Daten fuer das 1. Unternehmen ein:\n" );
    
            for(i=0;i<=n;i++)
          {
    
                printf("Bitte %i -ten Umsatz fuer %s 2007\n",i+1,monate[i]);  // Eingabe 
                printf("Eingabe:"); scanf("%f",&umsatz_unternehmen[i][0]);
    
            }
    
    printf( "\nBitte geben Sie die Daten fuer das 2. Unternehmen ein:\n" );
    
            for(i=0;i<=n;i++)
          {
    
                printf("Bitte %i -ten Umsatz fuer %s 2007\n",i+1,monate[i]);  // Eingabe 
                printf("Eingabe:");scanf("%f",&umsatz_unternehmen[i][1]);
    
          }
    
    }
    
    return;
    
    }
    
    void ausgabe(float umsatz_unternehmen[12][2], char monate[12][12])
    {
    int i;
    
    printf("\n--------------------------------------------------------------------------------"); 
    printf("\n:::::::::::::::::::::Filiale 1:::::::::::::::::::Filiale 2::::::::::::::::::::::");
    printf("\n--------------------------------------------------------------------------------"); 
        for (i=0;i<=11;i++) 
        { 
    
            printf("%5i. %10s 2007 %10.2f",i+1 ,monate[i],umsatz_unternehmen[i][0]);  //Ausgabe Umsatz, Monat
            printf("%5i. %10s 2007 %10.2f",i+1 ,monate[i],umsatz_unternehmen[i][1]);  //Ausgabe Umsatz, Monat 
            printf("\n"); 
        }
    printf("\n---------------------------------------------------------------------------------");
    printf("\n:::::::::::::::::::::-BUSINESS-:::::::::::::::::::-BUSINESS-:::::::::::::::::::::");
    printf("\n---------------------------------------------------------------------------------");
    
    return;
    
    }
    

    Ich hab es doch mit ein Semikolon ( ; ) beendet !?

    Warum dann die Fehlemeldung?

    gruß


Anmelden zum Antworten