Funktionen < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 21:57 Di 29.05.2007 | Autor: | misterET |
Guten Tag Leute,
ich habe ein C-Programm entwickelt, welches mir die Euklidische Norm berechnen soll.
Leider funktioniert irgend etwas nicht.
Ich hoffe mir kann jemand den Fehler beseitigen.
Ich habe eine Funktion programmiert, ich glaube hier ist irgendwo ein kleiner Fehler.
Mfg Benjamin
#include <conio.h>
#include <stdio.h>
#include <math.h>
#define N 3
/*double norm(int x[3]);*/
double norm (int mx[N])
{
int quadrat, i;
double wurzel;
quadrat = 0;
for (i=0; i<3; i++)
{
quadrat = quadrat + [mm] (mx[i])^2;
[/mm]
}
wurzel = sqrt(quadrat);
return(wurzel);
}
void main(void)
{
int a[N]={0};
int i;
double euklidnorm;
printf("Geben Sie 3 Zahlen ein:");
for (i=0; i<3; i++)
{
printf("Zahl %d: ", i+1);
scanf("%d", &a[i]);
}
euklidnorm = norm(a);
printf("Norm = %5.2lf", euklidnorm);
getch();
}
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:08 Mi 30.05.2007 | Autor: | misterET |
Hallöchen,
habe den Fehler gefunden...war ziemlich simpel aber kann ja mal passieren ;)
Wollte folgendermaßen quadrieren: ^2
Geht natürlich nicht in C...da mach ich doch lieber a*a !
Also Leute,
Ciao
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 23:14 Do 31.05.2007 | Autor: | misterET |
Hallo!
Könnte jemand vielleicht ganz schnell mal über mein Programm schauen? Hab nur noch eine Fehlermeldung.
Habe eine Funktion geschrieben zur euklidischen Norm.
Die Funktion bekommt "double" als Rückgabetyp.
Ich verstehe nicht, wieso eine Fehlermeldung kommt, denn ich weise eine double-Variable den Wert der Funktion zu, aber es kommt eine Fehlermeldung.....
Habe im Quelltext die Stelle markiert, sodass ihr sie schnell findet...
#include <conio.h>
#include <stdio.h>
#include <math.h>
#define N 3
double norm (int mx[N])
{
int i;
double wurzel, quadrat;
quadrat = 0;
for (i=0; i<3; i++)
{
quadrat = quadrat + mx[i]*mx[i]; /* ^-Zeichen existiert nicht!!!!!!!! */
}
wurzel = sqrt(quadrat);
return(wurzel);
}
void main(void)
{
double a[N]={0};
int i;
double euklidnorm;
printf("Geben Sie 3 Zahlen [mm] ein:\n");
[/mm]
for (i=0; i<3; i++)
{
[mm] printf("\nZahl [/mm] %d: ", i+1);
scanf("%lf", &a[i]);
}
euklidnorm = norm(a); /*Hier kommt die Fehlermeldung cannot convert parameter 1 from double*/
printf("Norm = %5.2lf", euklidnorm);
getch();
}
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:38 So 03.06.2007 | Autor: | rahu |
Hallo,
dein Problem ist nicht der Rückgabewert deiner Norm funktion sondern der Aufruf. die norm - funktion erwartet ein integer-array und du gibts ihr ein double array.
das sagt die übrigends auch die fehlermeldung (Parameter 1)
mfg
ralf
|
|
|
|