Compilierfehler brauche hilfe Schnell montag abgabetermin
-
Hallo an alle habe wwieder ein paar compilierfehler kan sie einer korigieren und das programm hier poster. aber schnell montag ist abgbetermin und ist nicht mal halbferich. VIELEN DANK IM VORAUS:
Fehler:
error C2059: syntax error : 'type'
int SetDate(int *pState)
error C2065: 'Local' : undeclared identifier
int Local; Local=0;
error C2065: 'pState' : undeclared identifier
switch(*pState)
error C2100: illegal indirection
switch(*pState)
error C2100: illegal indirection
(*pState)++;
warning C4098: 'MainOfDate' : 'void' function returning a value
return (Local);
error C2100: illegal indirection
(*pState)++;
warning C4098: 'MainOfDate' : 'void' function returning a value
return (Local);
error C2100: illegal indirection
(*pState)++;
warning C4098: 'MainOfDate' : 'void' function returning a value
return (Local);
'MainOfDate' : 'void' function returning a value
return 0;
error C2059: syntax error : '}'
}
error C2065: 'Space' : undeclared identifier
int Space;
//
Space=0;
error C2065: 'CopyDay' : undeclared identifier
while((CopyDay>-6)&&(CopyDay<6))
error C2065: 'NameDay' : undeclared identifier
if(CopyDay>0)
{
Space=CopyDay-NameDay;//Fehler
}
else
{
Space=CopyDay+NameDay;//Funkt abere
}
return Space;#include<stdio.h> #include<math.h> //Dhlosh sinartisewn void MainOfDate(int *pYear, int *pMonth, int *pDay); int Correctness(int Low,int High,int Default); int SetDate(int *pState); int HighDayCalculate(int *pMonth); int SetNameOfDay(void); int SpaceCalculate(int CopyDay, int NameDay); void PrintOutMatrix(int Input); int main(void) { //Dhlosh metablhton int Day; int Month; int Year; int NameOfDay; int Blank; // Day=0; Month=0; Year=0; NameOfDay=0; Blank=0; //kurio programma //Eisagh thn Hmerominia sto programm MainOfDate(&Year, &Month, &Day); //Eisagh th mera einai h mera p.x Deuter, Trith,...,Khriakh NameOfDay=SetNameOfDay(); //Ypologizei to kena tou hmerologiou Blank=SpaceCalculate(Day,NameOfDay); //Ektiponh to hmerologio PrintOutMatrix(Blank); return 0; } ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////Sunarthshs\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ///////////////////////////////////////////////////////////////////////////////////////////////// /************************************************************************************************ Kuria sunarthsh(main) h opoia kaloi thn sunarthsh SetDate() polles fores me diafora dedomena. Kai elenxh thn or8othta tou programmatos ************************************************************************************************/ void MainOfDate(int *pYear, int *pMonth, int *pDay) { //Dhlosh Metablhton int State; // int Low; int High; int Default; int Trueness; // State=0; Low=0; High=0; Trueness=0; //Kurio Programma //O broxos aftos mas enghte thn sinexomenh epanalhpsh tou programmatos aspou na do8oune sota //dedomena do{ //Eisagh me thn boh8ia ths sinartis ton Xrono prosoxh edo tha prepi na proseksoume ths //metablhtes Low kai High afou din kanoume redifine(thn ksanaxrisimopoume) //Baso times sto low kai High Low=-32768; //ligotero den paei oi int High=32767; //parapano den paei oi int *pYear=SetDate(&State); Default=*pYear; Trueness=Correctness(Low, High, Default);//Elexh thn or8othta //Thn arxikopoioume mporoume na parablepsoume to bhma an theloume //omos sugouro eine sugouro Low=0; High=0; Default=0; //Eisagh me thn boh8ia ths sinartis thn mhna prosoxh edo tha prepi na proseksoume thn //metablhth Low kai High afou din kanoume redine(thn ksanaxrisimopoume) Low=1; //ligoterous mines den exei o mhnas High=12; //parapano mines den exei o mhnas *pMonth=SetDate(&State); Default=*pMonth; Trueness=Correctness(Low, High, Default);//Elexh thn or8othta //Thn arxikopoioume mporoume na parablepsoume to bhma an theloume //omos sugouro eine sugouro Low=0; High=0; Default=0; //Eisagh me thn boh8ia ths sinartis thn hmera prosoxh edo tha prepi na proseksoume thn //metablhth Low kai high afou din kanoume redine(thn ksanaxrisimopoume) Low=1; //Mikrotero den paei High=HighDayCalculate(pMonth);//Ypologizei thn megisth hmerominia tou mina *pDay=SetDate(&State); Default=*pDay; Trueness=Correctness(Low, High, Default);//Elexh thn or8othta //Ektiponh proidopithko munima an do8ike kapia lathos dedomeno while(!(Trueness)); //Gia True=1, False=0, //Telous broxou kai sosta apotelesmata } //////////////////////////////////////////////////////////////////////////////////////////////// //Skopos Eisagwgh dedomenon me eksipno technazma // //////////////////////////////////////////////////////////////////////////////////////////////// int SetDate(int *pState) { //Dhlosh Metablhton int Local; // Local=0; //Kuria sunarthsh printf("\nPlhktrologise ton "); switch(*pState) { case 0: { printf(" Xrono(An p.X.bale - kai an m.X tupota)\n"); scanf("%d",&Local); (*pState)++;//to auksanh kata ena oste na paei sthn epomenh case thn allei ektelesh return (Local); //Den xraizete afou meta thn return samataei oi ektelh ths sunarthshs //thn ebala logo plhrothtas ths switch break; } case 1: { printf(" Mhna\n"); scanf("%d",&Local); (*pState)++; return (Local); //Den xraizete afou meta thn return samataei oi ektelh ths sunarthshs //thn ebala logo plhrothtas ths switch break; } case 3: { printf(" Mhna\n"); scanf("%d",&Local); (*pState)++; return (Local); //Den xraizete afou meta thn return samataei oi ektelh ths sunarthshs //thn ebala logo plhrothtas ths switch break; } default: { printf("\n\b!!!Fatal Error!!! epikinonise me ton programatisth sou.\n\b"); } } return 0; } ///////////////////////////////////////////////////////////////////////////////////////////////// //Elnxh an ta dedomena eisodou einai swsta me thn me8odo an to sthxia a anhkh se ena sunolo A // //ws ekseis x1<x<x2. // ///////////////////////////////////////////////////////////////////////////////////////////////// int Correctness(int Low,int High,int Default) { //Elekths if((High<Default)&&(Low>Default)) { return 1;//Epistrefi 1 wste to bgei apo thn while } //an den sumbenh oi sun8hkh ths if na paramenh sthn while return 0; } ////////////////////////////////////////////////////////////////////////////////////////////////// //Ypologizei me mathimatiko tropo mexri pia mera peginh o mhnas // ////////////////////////////////////////////////////////////////////////////////////////////////// int HighDayCalculate(int *pMonth) { //an disektos if((!(*pMonth%4 && *pMonth%100)||(!(*pMonth%400)))) { return 28;//An disektos exei 28 meres } if(*pMonth%2) //afto sunepagete eksetase an to apotelesma einai iso me 1 { return 30;//an peritos mhnas tote mono 31 meres } else { return 31;//an artios mhnas tote mono 30 mere } //an den sumbh kapio lathos dinoume to apotelesma -1 gia na broume to la8os eukola return -1; } /* ************************************************************************************************* *Eisagh sto progrmma se pia hmera ths ebdomadas antisthxh mia mera * *************************************************************************************************/ int SetNameOfDay(void) { //Dhlosh Metablhton int LocalVariable; // LocalVariable=0; //Kurio programma printf("\nPlhktrologise se pia mera ths ebdomadas antistixh h hmera pou edose. "); printf("Prosoxh omos me ton ekseis tropo:\n 1 Kur 2 Deu 3 Tri 4 Tet 5 Pem 6 Pap 7 Sab\n"); scanf("%d",&LocalVariable); do{ switch(LocalVariable) { case 1: { printf("\nKuriakh."); return 7; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 2: { printf("\nDeutera."); return 1; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 3: { printf("\nTrith."); return 2; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 4: { printf("\nTetarth."); return 3; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 5: { printf("\nPempth."); return 4; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 6: { printf("Paraskeuh."); return 5; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 7: { printf("Sabato."); return 6; //den xriazete omos gia sosth efarmogh ths case to bazo break; } default: { printf("\nDen plhktologises sosta!!!"); } }while((LocalVariable<7)&&(LocalVariable>1)); } } /* ************************************************************************************************* *Ypologizei posa kina prepi na ektipo8oune * ************************************************************************************************* */ int SpaceCalculate(int CopyDay, int NameDay) { //Dhlosh Metablhton int Space; // Space=0; //Kurio Programma while((CopyDay>-6)&&(CopyDay<6)) { CopyDay=CopyDay-7; } CopyDay=abs(CopyDay); if(CopyDay>0) { Space=CopyDay-NameDay; } else { Space=CopyDay-NameDay; } return Space; } /* ************************************************************************************************** *Ektiponh ton pinaka kata gregorianou * ************************************************************************************************** */ void PrintOutMatrix(int Input) { //dhlosh Metablhton int Counter; // Counter=0; //Kurio programma printf("Deu Tri Tet Pem Par Sab Kir Deu"); for(Counter=6;Counter<4;Counter++) { for(Counter=7;Counter<7; Counter++) { } } }
-
Bei mir mit Dev CPP nach 3 kleinen Korrekturen compilable gewesen!
1.) In der Funktion "void MainOfDate(int *pYear, int *pMonth, int *pDay)" fehlt im "do{ ... **}**while( ... );" Die markierte geschwungene Klammer
2.) In der Funktion "int SetNameOfDay(void)" steht das while(...); eine geschwungene Klammer zufrüh (es steht als Abschluss zum switch, nicht zum do)
3.) Die Funktion "int abs(int)" ist bei mir bestandteil der stdlib.h und nicht in der math.h, obwohl es laut MSDN in beiden enthalten sein sollte, scheinbar ein Bug in den Headerfiles vom Dev-Cpp!?
*edit*
Bei den Punkten 1 und 2 handelt es sich übrigens um Fehler die bei einer vernünftigen Klammerung SOFORT auffallen sollten. ZB hast Du die öffnende Klammer teilweise in einer neuen Zeile stehen, manchmal aber auch in der alten (Das ist bei Punkt 2 der Fall). Bei Punkt 1 war es wohl einfach nur Flüchtigkeitsfehler.PS: Bitte etwas freundlicher
Nicht nur "Schnell, schnell". Gerade wenn man solch einen Schwall an Fehlermeldungen erhält handelt es sich in den meisten Fällen um falsche Klammern oder fehlende Semikolons, und das findet man eigentlich immer alleine (hat 3 Minuten gedauert...)
-
Danke leute wie immer für die hilfe und danke für den guten rat nun ich habe alle fehler corigiert und noch eins das mit den bug mit abs glaube ich nicht da das ein fehler ist da doch alle heder datein mit #ifndef und so gesichert sind ich glaube mehr ich habe den fehler gemacht irgentwie.
nun ich bekomme noch ein fehler und zwarwarning C4715: 'SetNameOfDay' : not all control paths return a value
}while((LocalVariable<7)&&(LocalVariable>1));
}so ein fehler hane ich zum ertsen mal in mein leben gesen was bedeutet er??
hier der ganze uberarbeitete code noch mal aber ich we
Wi unserer lehrer immer sagt wenn der code nicht funktioniert must du immer sagen "hey der code funktioniert aber er funktioniert nicht in deiner maschine
"
#include<stdio.h> #include<math.h> //Dhlosh sinartisewn void MainOfDate(int *pYear, int *pMonth, int *pDay, int *MaxDay); int Correctness(int Low,int High,int Default); int SetDate(int *pState); int HighDayCalculate(int *pMonth); int SetNameOfDay(void); int SpaceCalculate(int CopyDay, int NameDay); void PrintOutMatrix(int Input, int CopyDay, int MaxDay); int main(void) { //Dhlosh metablhton int Day; int Month; int Year; int NameOfDay; int Blank; int MaxDay; // Day=0; Month=0; Year=0; NameOfDay=0; Blank=0; //kurio programma //Eisagh thn Hmerominia sto programm MainOfDate(&Year, &Month, &Day, &MaxDay); //Eisagh th mera einai h mera p.x Deuter, Trith,...,Khriakh NameOfDay=SetNameOfDay(); //Ypologizei to kena tou hmerologiou Blank=SpaceCalculate(Day,NameOfDay); printf("%d sthn main piso",Blank); //Ektiponh to hmerologio PrintOutMatrix(Blank,Day,MaxDay); return 0; } ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////Sunarthshs\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ///////////////////////////////////////////////////////////////////////////////////////////////// /************************************************************************************************ Kuria sunarthsh(main) h opoia kaloi thn sunarthsh SetDate() polles fores me diafora dedomena. Kai elenxh thn or8othta tou programmatos ************************************************************************************************/ void MainOfDate(int *pYear, int *pMonth, int *pDay, int *MaxDay) { //Dhlosh Metablhton int State; // int Low; int High; int Default; int Trueness; // State=0; Low=0; High=0; Trueness=0; //Kurio Programma //O broxos aftos mas enghte thn sinexomenh epanalhpsh tou programmatos aspou na do8oune sota //dedomena do{ //Eisagh me thn boh8ia ths sinartis ton Xrono prosoxh edo tha prepi na proseksoume ths //metablhtes Low kai High afou din kanoume redifine(thn ksanaxrisimopoume) //Baso times sto low kai High Low=-32768; //ligotero den paei oi int High=32767; //parapano den paei oi int *pYear=SetDate(&State); Default=*pYear; Trueness=Correctness(Low, High, Default);//Elexh thn or8othta //Thn arxikopoioume mporoume na parablepsoume to bhma an theloume //omos sugouro eine sugouro Low=0; High=0; Default=0; //Eisagh me thn boh8ia ths sinartis thn mhna prosoxh edo tha prepi na proseksoume thn //metablhth Low kai High afou din kanoume redine(thn ksanaxrisimopoume) Low=1; //ligoterous mines den exei o mhnas High=12; //parapano mines den exei o mhnas *pMonth=SetDate(&State); Default=*pMonth; Trueness=Correctness(Low, High, Default);//Elexh thn or8othta //Thn arxikopoioume mporoume na parablepsoume to bhma an theloume //omos sugouro eine sugouro Low=0; High=0; Default=0; //Eisagh me thn boh8ia ths sinartis thn hmera prosoxh edo tha prepi na proseksoume thn //metablhth Low kai high afou din kanoume redine(thn ksanaxrisimopoume) Low=1; //Mikrotero den paei High=HighDayCalculate(pMonth);//Ypologizei thn megisth hmerominia tou mina *MaxDay=High; *pDay=SetDate(&State); Default=*pDay; Trueness=Correctness(Low, High, Default);//Elexh thn or8othta //Ektiponh proidopithko munima an do8ike kapia lathos dedomeno }while(Trueness!=0); //Gia True=1, False=0, //Telous broxou kai sosta apotelesmata } //////////////////////////////////////////////////////////////////////////////////////////////// //Skopos Eisagwgh dedomenon me eksipno technazma // //////////////////////////////////////////////////////////////////////////////////////////////// int SetDate(int *pState) { //Dhlosh Metablhton int Local; // Local=0; //Kuria sunarthsh printf("\nPlhktrologise ton "); switch(*pState) { case 0: { printf(" Xrono(An p.X.bale - kai an m.X tupota)\n"); scanf("%d",&Local); (*pState)++;//to auksanh kata ena oste na paei sthn epomenh case thn allei ektelesh return (Local); //Den xraizete afou meta thn return samataei oi ektelh ths sunarthshs //thn ebala logo plhrothtas ths switch break; } case 1: { printf(" Mhna\n"); scanf("%d",&Local); (*pState)++; return (Local); //Den xraizete afou meta thn return samataei oi ektelh ths sunarthshs //thn ebala logo plhrothtas ths switch break; } case 2: { printf(" Hmeraa\n"); scanf("%d",&Local); (*pState)++; return (Local); //Den xraizete afou meta thn return samataei oi ektelh ths sunarthshs //thn ebala logo plhrothtas ths switch break; } default: { printf("%d %d",Local,*pState); printf("\n\b!!!Fatal Error!!! epikinonise me ton programatisth sou.\n\b"); } } return 0; } ///////////////////////////////////////////////////////////////////////////////////////////////// //Elnxh an ta dedomena eisodou einai swsta me thn me8odo an to sthxia a anhkh se ena sunolo A // //ws ekseis x1<x<x2. // ///////////////////////////////////////////////////////////////////////////////////////////////// int Correctness(int Low,int High,int Default) { //Elekths if((High<Default)&&(Low>Default)) { printf("%d %d %d",Low,High,Default); return 1;//Epistrefi 1 wste to bgei apo thn while } //an den sumbenh oi sun8hkh ths if na paramenh sthn while return 0; } ////////////////////////////////////////////////////////////////////////////////////////////////// //Ypologizei me mathimatiko tropo mexri pia mera peginh o mhnas // ////////////////////////////////////////////////////////////////////////////////////////////////// int HighDayCalculate(int *pMonth) { //an disektos if((!(*pMonth%4 && *pMonth%100)||(!(*pMonth%400)))) { return 28;//An disektos exei 28 meres } if(*pMonth%2) //afto sunepagete eksetase an to apotelesma einai iso me 1 { return 30;//an peritos mhnas tote mono 31 meres } else { return 31;//an artios mhnas tote mono 30 mere } //an den sumbh kapio lathos dinoume to apotelesma -1 gia na broume to la8os eukola return -1; } /* ************************************************************************************************* *Eisagh sto progrmma se pia hmera ths ebdomadas antisthxh mia mera * *************************************************************************************************/ int SetNameOfDay(void) { //Dhlosh Metablhton int LocalVariable; // LocalVariable=0; //Kurio programma printf("\nPlhktrologise se pia mera ths ebdomadas antistixh h hmera pou edose. "); printf("Prosoxh omos me ton ekseis tropo:\n 1 Kur 2 Deu 3 Tri 4 Tet 5 Pem 6 Pap 7 Sab\n"); scanf("%d",&LocalVariable); do{ switch(LocalVariable) { case 1: { printf("\nKuriakh."); return 7; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 2: { printf("\nDeutera."); return 1; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 3: { printf("\nTrith."); return 2; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 4: { printf("\nTetarth."); return 3; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 5: { printf("\nPempth."); return 4; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 6: { printf("Paraskeuh."); return 5; //den xriazete omos gia sosth efarmogh ths case to bazo break; } case 7: { printf("Sabato."); return 6; //den xriazete omos gia sosth efarmogh ths case to bazo break; } default: { printf("\nDen plhktologises sosta!!!"); } } }while((LocalVariable<7)&&(LocalVariable>1)); } /* ************************************************************************************************* *Ypologizei posa kina prepi na ektipo8oune * ************************************************************************************************* */ int SpaceCalculate(int CopyDay, int NameDay) { //Dhlosh Metablhton int Space; // Space=0; //Kurio Programma //Epanalambanh diadoxikes afereshs os pou na einai to apotelesma mikrotero tou 6. while(!(CopyDay<6)) //oso den einai mikrotero tou 6 ektelese diadoxikes afereseis { printf("mesa\n"); CopyDay=CopyDay-7; } printf("%d while\n",CopyDay); //Ypologizei ta kena sumfona me tous sulogismous pou ekana(blepe sto Documentation tou //programmatos) if(CopyDay>0) { CopyDay=abs(CopyDay); printf("%d >0\n",CopyDay); Space=(CopyDay-NameDay); printf("%d -\n",Space); } else //Dhladh an CopyDay >=0 { printf("%d <0\n",CopyDay); Space=(CopyDay+NameDay); printf("%d +\n",Space); } printf("Telika kena %d\n",CopyDay); return Space; } /* ************************************************************************************************** *Ektiponh ton pinaka kata gregorianou * ************************************************************************************************** */ void PrintOutMatrix(int Input, int CopyDay, int MaxDay) { //dhlosh Metablhton int CounterOfSpace; //Counter gia thn metrish posa kena ektipose os tora int AktuallDay; int Endl; // CounterOfSpace=0; AktuallDay=0; Endl=0; printf("%d MaxDay",MaxDay); //Kurio programma //ektiponh to "Keflah" tou pinaka printf("\n Deu Tri Tet Pem Par Sab Kir\n"); //Ektiponh ta kena pou exoun upologisth + 2 bohthitika for(CounterOfSpace=0;CounterOfSpace<Input;CounterOfSpace++) { printf(" ");//Ektiponh 1 keno prin apo to keno pou theloume printf(" ");//Ektiponh ena keno stixoi printf(" ");//Ektiponh ena keno meta apo to keno pou zitame } //Gia na gnorizoume posa kena exoun ektipo8h bazoume to CounterOfSpace sto endl kai kseroume //oti to endl den perni megaliteri timh apo to 6 sumfona me upologismous alon sunarthseon etsi Endl=CounterOfSpace; //ektiponh ton pinaka kai bazi ana efta ektipomena stixia ena CR => Backspace //gia for oso CounterMax oxi iso me 0 eferese ena apo thn maxDay kai eketese to programma for(AktuallDay=1;AktuallDay<=MaxDay;AktuallDay++) { //ektiposh ton menon printf(" "); //ektiponh to arxiko Keno printf("%2.1d",AktuallDay);//Ektiponi thn hmera printf(" ");//Ektiponh ena teliko keno Endl++; //san Counter xrisimeuh gia thn ektiposh ton kenon //ektiponh ena \n ana efta ektipomena stixia if(Endl%7==0) { Endl=1; //arxikopoih pali thn metablhth printf("\n"); } } }
-
warning C4715: 'SetNameOfDay' : not all control paths return a value
}while((LocalVariable<7)&&(LocalVariable>1)); }
so ein fehler hane ich zum ertsen mal in mein leben gesen was bedeutet er??
Diese Warnung bedeutet, dass es (theoretisch) möglich ist, dass die Funktion beendet wird, ohne das mittels return ein Wert zurückgegeben wurde. Laut Defintion sollte sie aber einen integer zurückgeben.
Kann sein, dass bei Dir tatsächlich (aufgrund der Programmlogik) immer ein Wert zurückgegeben wird (ich hab jetzt nicht weiter nachgeschaut), aber das weiss der Compiler ja nicht.Edit: So, ich hab jetzt doch noch mal kurz geschaut
Die Funktion wird beendet ohne einen Wert mit return zurückzuliefern, wenn der Benutzer bei Dir eine z.B. eine Zahl < 1 oder > 7 eingegeben hat. Diese Möglichkeit wird bei Dir ja nicht ausgeschlossen und in diesem Fall springt der Computer zu 'default'. Dann verlässt er auch die do-while-Schleife und die Funktion wird ohne return beendet.
So wie ich das sehe, ist diese do-while-Schleife übrigens sowieso überflüssig...