Funktion
-
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ß
-
Lass mich raten, du benutzt den neuen Visual Studio 9.0 Compiler? Wenn ja, dann ist das ein Bug im Compiler. Installier mal die ältere Version oder Mingw.
-
Ja so sieht aus.
Im Dev-c++ funktionierts einwandfrei.
Mit Visual Studio programmier ich lieber... Kann man dieses Bug irgendwie deaktivieren ?
-
hasso schrieb:
Kann man dieses Bug irgendwie deaktieren ?
Sicher nicht!
(
)
-
Lass mich mal raten:
unter case 1: willst du die Daten einlesen.
Also müßte die Zeile 58 doch:eingabe(umsatz_unternehmen, monate);
und die Zeile 67:
ausgabe(umsatz_unternehmen, monate);
lauten.
Das hattest du aber schon mal besser.
Übrigens: fflush(stdin); darf so nicht verwendet werden.
Dies ist ein Fehler. Verwende dafür besser folgende Funktion:void ClearBuf() { setvbuf( stdin, NULL, _IONBF, 0 ); setvbuf( stdin, NULL, _IOFBF, BUFSIZ ); }
Gruß mcr
-
hasso schrieb:
.... "Ferbruar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; ...
muahuahua !
ichhabs gewusst
-
Eyeroller roundandround schrieb:
hasso schrieb:
.... "Ferbruar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; ...
muahuahua !
ichhabs gewusstlol
-
Eyeroller roundandround schrieb:
hasso schrieb:
.... "Ferbruar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; ...
muahuahua !
ichhabs gewusstaber das 'void' vor main hat er wenigstens beseitigt.
-
hasso schrieb:
Ich hab es doch mit ein Semikolon ( ; ) beendet !?
Warum dann die Fehlemeldung?Das hast du fein gemacht Hasso.
hasso schrieb:
Warum dann die Fehlemeldung?
Kann man dieses Bug irgendwie deaktivieren ?Der Bug heisst Hasso und deklariert Funktionen im Funktionskörper.
Das ist in C verboten Bruder !
-
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.
int main(void) und int main(int argc, char *argv[]) sind gültig.
-
LordJaxom schrieb:
int main(void) und int main(int argc, char *argv[]) sind gültig.
...in einer sogenannten 'hosted' implementation von C. in anderen fällen kann die startfunktion völlig anders aussehen. sie muss noch nicht mal 'main' heissen. beispiel: WinMain und _tmain, die den meisten windows-codern bekannt sein sollten.
-
Jo thanks
Es ist ein runtime Fehler aufgetaucht:
Die Variable i wird benutzt die nicht definiert wurde..Im Visual 2005.. außerdem schliest das Programm sofort obwohl ich getchar(); drin stehen hab.#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 void mw( float umsatz_unternehmen[12][2]); 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", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" }; float umsatz_unternehmen[12][2]; // zweidimensionales Umsatz pruefung(); eingabe(umsatz_unternehmen, monate); ausgabe(umsatz_unternehmen, monate); mw(umsatz_unternehmen); return 0; while( 1 ) { switch( pruefung() ) { case 1: void eingabe(float umsatz_unternehmen[12][2], char monate[12][12]); //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: void ausgabe(float umsatz_unternehmen[12][2], char monate[12][12]); printf("[Ausgabe Umsaetze]\n"); break; case 3: printf("[Mittelwert]\n"); void mw(float umsatz_unternehmen[12][2]); 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; } void mw(float umsatz_unternehmen[12][2]) { int i; int n = 12; float summe; float mittelwert; float summe_2; float mittelwert2; summe +=umsatz_unternehmen[i][0]; mittelwert = summe/=n; summe_2 +=umsatz_unternehmen[i][1]; mittelwert = summe_2/=n; printf("Mittelwert Filiale |A|:%f",mittelwert); printf("Mittelwert Filiale |B|:%f",mittelwert2); }
ps. real_rofler: Schau mal nach Februar nach
-
hasso schrieb:
außerdem schliest das Programm sofort obwohl ich getchar(); drin stehen hab.
woher willst du das denn wissen? es compiled ja noch nicht mal.
-
Echt .. das ist ja verwunderlich!
Bei mir klappts... aber auch nur der DEV-C++ compiler..