Willkommen in der Webstatt Zum Webstatt Blog und Stories
nuit nuit am 12.01.07 03:14

Also...ich krebs mich immo so ein bisschen mit C rum...an sich ist es nicht schwer...nur hab ich immo einen FEhler auf den komm ich einfach nicht.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
double a = atof(argv[1]);

if (a < 0.0) {
printf("sqrt(%.2f) = i * %.12f\n",wurzel(-a));
} else {
double result = wurzel(a);
printf("sqrt(%.2f) = %.12f\n",a,result);
}
}


double wurzel(double a) {
double s_alt = 1.0;
double s_neu;
double delta;

do {
s_neu = 0.5*(s_alt+a/s_alt);
delta = (s_alt-s_neu<0 ? s_neu-s_alt : s_alt-s_neu);
s_alt = s_neu;
} while(delta > 1.0E-12);

return(s_neu);
}


der Fehler tritt bei der wurzel funktion auf:
marvin@pavlo:~/dev/c$ gcc wurzel.c -o wurzel
wurzel.c:16: error: conflicting types for ‘wurzel’
wurzel.c:8: error: previous implicit declaration of ‘wurzel’ was here



warum hat der einen type conflict?

netcup.de Warum gibt es hier Werbung?
crooked am 12.01.07 13:43

Ich hab zwar keinen Peil von C, aber wurzel wird doch da als Funktion definiert, wenn ich mich nicht täusche. Setz den Code vielleicht mal nach oben ;)

Snake am 12.01.07 14:11

du musst die funktion ja definieren, bevor du sie aufrufst (aus sicht des compilers)
also das funktioniert bei mir:

#include <stdio.h>
#include <stdlib.h>

double wurzel(double a);

int main(int argc, char **argv) {
double a = atof(argv[1]);
if (a < 0.0) {
printf("sqrt(%.2f) = i * %.12f\n",wurzel(-a));
} else {
double result = wurzel(a);
printf("sqrt(%.2f) = %.12f\n",a,result);
}
return 0;
}


double wurzel(double a) {
double s_alt = 1.0;
double s_neu;
double delta;

do {
s_neu = 0.5*(s_alt+a/s_alt);
delta = (s_alt-s_neu<0 ? s_neu-s_alt : s_alt-s_neu);
s_alt = s_neu;
} while(delta > 1.0E-12);

return(s_neu);
}

crooked am 12.01.07 14:22

Öhm Snake? Du hast doch gar nichts verändert?! oO

Snake am 12.01.07 14:35

mach deine augen auf

crooked am 12.01.07 15:08

Ah ok! hab mich verguckt :D

nuit nuit am 12.01.07 21:25

arg bin ich blöd....ja stimmt.....hatte ich voll vergessen *g*

Vielen dank snake...probiers gleihc ma bei mir

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt