
Glenkill
-
Gesamte Inhalte
7 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Glenkill
-
-
wahnsinn dass hätte mir auffallen sollen! vor lauter wald die bäume nimmer gesehn^^
nun werden die werte eingelesen aber mittelwert und standardabweichung werden mit 0.000000 angegeben. nun konnte ich die initialisierung in der calc.cpp vornehmen für mw und std.
das feld+1 müsste eigentlich deshalb richtig sein weil ich ja mehrere werte einlesen will oder hast du da ne andere idee?
-
hallo,
ich versuche mich derzeit an einem programm welches von einer zahlenreihe den mittelwert und die standardabweichung berechnen soll, das programm ist syntaktisch richtig und scheint auch zu funktionieren aber ich verstehe nicht warum folgendes ergebnis auftritt wenn ich es ausführe:
Wie viele Messwerte sollen eingelesen werden?4
Geben Sie bitte 4 Zahlen ein;
Mittelwert: 0.000000
Standardabweichung: 0.000000
mein quelltext dazu sieht wie folgt aus:
main.cpp
#include "globals.h"#include "calc.h"
void main ()
{
int i;
int n;
float *feld = NULL;
double mw = 0; // an dieser stelle wurde immer gewarnt dass mw und std nicht
initialisiert seien
double std = 0;
printf("Wie viele Messwerte sollen eingelsen werden?\n");
scanf_s("%d", &n);
printf("Geben Sie bitte %d Zahlen ein:\n", n);
feld =(float *)malloc (n*sizeof(float));
//ab hier bricht das programm ab
for (i = 0; n < i; i++)
{
scanf_s("%f", feld+1);
}
//Diese Abfrage wollte ich eigentlich auch verwenden allerdings hatte ich auch
hier fast das selbe Ergebnis bei der Ausgabe
/*if (feld != NULL)
{
mw = fkt_mw(feld,n);
std = fkt_std (feld,n);
}*/
printf("Mittelwert: %lf\n", mw);
printf("Standardabweichung: %lf\n", std);
free (feld);
getchar ();
getchar ();
}
calc.cpp
#include "calc.h"#include "globals.h"
double fkt_mw (float *feld, int n)
{
int i;
double mw; // Zuvor war mw hier auf 0 gesetzt das habe ich mal hier rausgenommen
for (i = 0; i < n; i++)
{
mw += (feld);
}
mw = mw / n;
return (mw);
}
double fkt_std (float *feld, int n)
{
int i;
double mw, std;
//std = 0;
mw = fkt_mw(feld, n);
for (i = 0; i < n; i++)
{
std += (feld - mw) * (feld - mw);
}
std = std / n;
std = sqrt(std);
return (std);
}
globals.h
#ifndef GLOBALS_INC#define GLOBALS_INC
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#endif
calc.h
#ifndef CALC_INC#define CALC_INC
#include "globals.h"
double fkt_mw (float *feld, int n);
double fkt_std (float *feld, int n);
#endif
wäre toll wenn da jemand für mich einen rat hätte.
gruß glen
-
hat geklappt danke :-)
-
hmm wo soll das denn genau hin? in der klasse ist out bereits deklariert mit "int out (int len);" wenn ich deinen vorschlag dort mit dazu schreibe kommt die meldung dass len und i nicht mehr deklariert sei oder wenn ich das "int len" aus der klammer nehme das gleiche spiel oO
-
sowas in der art dachte ich mir schon aber ich sehe grade nicht wie ich das ändern kann, ich stehe definitiv auf der leitung...
-
hallo
wie es der titel schon erahnen lässt habe ich mit diesem fehler meine probleme.
der fehler passt nicht ganz in den titel ausgeschrieben lautet er wie folgt:
error C2511: 'int IntVektor::out(void)': Überladene Memberfunktion nicht in 'IntVektor' gefunden
nun stellt sich die frage was ich damit nun genau anfangen soll...
die dazugehörige klasse ist diese hier:
class IntVektor{
private:
int* v;
int s;
public:
IntVektor (int len);
~IntVektor(void);
int &at (int i);
int size ();
int out (int len);
und hier wird der fehler bemängelt:
int IntVektor::out(){
for (i=0; i<= len; i++)
{
cout << v << '\n';
}
}
meine frage ist nun was ist daran überladen? und wie bekomme ich den fehler weg?
danke jetzt schon für eure hilfe.
Berechnung liefert falsches Ergebnis (war: bin ratlos :-()
in C++: Compiler, IDEs, APIs
Geschrieben
ich gelobe besserung :-) es funktioniert nun vielen dank :-)