• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

K-Develop. warum diese Fehler?

Ich fang erst an C zu lernen, aber kann mir trotzdem das erklären?
Hab nur irgend eine ganz einfache Rechnung eingetippt, und wüsst da einfach keinen Fehler.

#include <stdio.h>
#include <math.h>
const couble PI = 3.41

main()
{
double radius ist 10;
double flaechehalbkreis;
double flaecheviertelkreis;

flaechehalbkreis = radius * radius * PI / 2; //zeile 29

printf("A vom halben Kreis: %g/n", flaechehalbkreis);
printf("A vom viertel ... : %g/n", flaecheviertelkreis);
}

main.c:23:error: parse error before "main"
29:Warnung:type defaults to 'int' in declaration of flaechehalbkreis'
29:error:conflicting types for 'flaeche Halbkreis'
26:error:previous declaration of 'flaechehalbkreis'
29:error:'radius'undeclared here(not in function)
29:Warnung:data definition has no type or storage class
31:Warnung:type defaults to 'int' in declaration of 'flaecheviertelkreis'
31:error:conflicting types for 'flaecheviertelkreis'
27:error:previous declaration of 'flacheviertelkreis'
31:Warnung: data definition has no type or storage class
33:Warnung:type defaults to 'int' in declaration of 'printf'
33:Warnung:conflicting types for built-in function 'printf'
33:Warnung:data defintion has no type or storage class
34:error parse: error before string constant
34:Warnung:type defaults to 'int' in declaration of 'printf'
34:Warnung:data definition has no type or storage class
gmake:*** [main.o]Fehler1
 
A

Anonymous

Gast
Code:
#include <stdio.h>
#include <math.h>

main()
{
double radius ist 10;
double flaechehalbkreis;
double flaecheviertelkreis;
const double PI = 3.41;

flaechehalbkreis = radius * radius * PI / 2; //zeile 29 
printf("A vom halben Kreis: %g/n", flaechehalbkreis);
printf("A vom viertel ... : %g/n", flaecheviertelkreis);
}
Normal solltest du da dein const reinschreiben, sonst könntest du es ja auch öffentlich mit #define definieren.
und nochwas:
printf("A vom halben Kreis: %g/n", flaechehalbkreis);
falls das n für eine neue zeile stehen soll muss es so sein \n

Gruß }-Tux-{
 
Hi,
es ist meist eine undankbare Aufgabe, fremde Programme zu debuggen. Man übersieht leicht etwas und blamiert sich damit. Aber fangen wir trotzdem mal an.
Code:
const couble PI = 3.41  // hier fehlt das ";" am Zeilenende.
Hinweis: PI sollte in math.h als Makro definiert sein, heisst dann glaub ich M_PI oder so ähnlich.
Code:
double radius ist 10; // -> double radius = 10;

Code:
printf("A vom viertel ... : %g/n", flaecheviertelkreis);
flaecheviertelkreis hat noch keinen definierten Wert.
Ich weiss nicht wie gcc reagiert, aber mein Borland C++ unter Win hat fehlerhaft deklarierte oder leere variablen einfach wegoptimiert, wodurch dann wieder neue Fehlermeldungen entstehen können.
Meist ist /sind desshalb nur die erste(n) Fehlermeldungen oder Warnungen interessant.
Dakuan
 
Ja, vielen Dank, genau das war es! double radius = 10 hat ich eh, nur verschrieben im Forum.
Jetzt hat sowas sogar funktioniert! Nur mehr 2 Warnungen
main.c:24: Warnung:return type deaults to 'int'
37:Warnung control reaches end of non-void function./Am Anfang und Ende der beiden {} )
 
michaelzy schrieb:
Ja, vielen Dank, genau das war es! double radius = 10 hat ich eh, nur verschrieben im Forum.
Jetzt hat sowas sogar funktioniert! Nur mehr 2 Warnungen
main.c:24: Warnung:return type deaults to 'int'
37:Warnung control reaches end of non-void function./Am Anfang und Ende der beiden {} )

normalerweise deklariert man main() folgendermassen:
int main (int argc, char** argv) { .... }

und deshalb sollte am ende von main ein return 0; stehen.
 
Oben