Wenn dies dein erster Besuch hier ist, lese bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich registrieren, bevor du Beiträge verfassen kannst. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
genau. und am ende kannst dir dann mit einer schleife die von 0 bis werte.length()-2 geht alle eigentlichen werte holen und an der stelle werte.length()-1 steht das n
genau. und am ende kannst dir dann mit einer schleife die von 0 bis werte.length()-2 geht alle eigentlichen werte holen und an der stelle werte.length()-1 steht das n
ich habs jetzt einfach so gemacht indem cih noch zusätzlich in die schleife das n=atoi(line.c_str()) dazugehängt habe dass dann halt immer überschreiben wird. aber am ende sollte genau der richtige wert drinnen bleiben! ist zwar sicher nicht die beste lösung, aber es funktioniert
jetzt doch noch mal eine frage aufgetaucht bzgl funktionen:
ich hab schön mein hauptprogramm etc geschrieben und will jetzt eine unterfunktion bauen. hab am anfang schön die funktion deklariert mit
double calcarit(int i,double werte[500], int n);
werte[i] und n hab ich ja eingelesen aus anderem file.
dann hab ich die unterfunktion gebastelt:
double calcarit(int i,double werte[500], int n) {
double sum=0;
double arit;
for(i=1; i
bezieh mich jetzt ma nur auf #35
wieso hast du i=1? array fängt bei 0 an
e: und sag immer was die konsole ausgibt, hilft meistens für andere
e2: und yo, das unter mir stimmt auch, müsstest 2 funktionen draus machen mit je einem return
Zweimal return hintereinander funktioniert nicht. Zum zweiten return kann er nie kommen.
Du solltest Dich vielleicht mal ein bisschen mit debugging/loggin beschäftigen. Zum Beispiel einfach die Werte nach einer bestimmten Anzahl Schleifendurchläufe ausgeben lassen.
if(i%x == 0) ...
Der Grad deiner Selbständigkeit ist auch sehr begrenzt. Deswegen meine Frage: Was ist das für ein(e) /Kurs/Studiengang/Uni?
Zweimal return hintereinander funktioniert nicht. Zum zweiten return kann er nie kommen.
Du solltest Dich vielleicht mal ein bisschen mit debugging/loggin beschäftigen. Zum Beispiel einfach die Werte nach einer bestimmten Anzahl Schleifendurchläufe ausgeben lassen.
if(i%x == 0) ...
Der Grad deiner Selbständigkeit ist auch sehr begrenzt. Deswegen meine Frage: Was ist das für ein(e) /Kurs/Studiengang/Uni?
mathe phyisk lehramt, ich hab halt nur 1 semster (1 1/2 stunden die woche) c++ programmieren deshalb auch recht sinnlos mich extra viel damit zu beschäftige
e: ja ok dass eine funktion nur 1 wert zurückgeben kann mag sein, hab das return arit jetzt mal weggelöscht kommt als sum trotzdem nur müll zurück
bezieh mich jetzt ma nur auf #35
wieso hast du i=1? array fängt bei 0 an
e: und sag immer was die konsole ausgibt, hilft meistens für andere
e2: und yo, das unter mir stimmt auch, müsstest 2 funktionen draus machen mit je einem return
nein weil in meinem fall gehts um messwerte und ich hab die halt so nummeriert dass die bei 1 anfangen(0. messwert wäre ja ziemlich sinnlos)
e: das problem ist irgendwo bei der übergabe des werte arrays an die unterfunktion weil wenn ich es 1zu 1 so ins haupprogramm schreibe mit der for schleife klappts halt
1. Aus deiner Funktionsdefinition den ersten Parameter rausnehmen (int i)
Du musst einen Interrationsvariable nicht übergeben. Die kannst du dir auch innerhalb deiner Funktion definieren.
2. Mal Zwischenergebnisse ausgeben lassen. Innerhalb der Funktion (siehe mein letzter Post)
3. Zeig mal bitte wie du deine Funktion aus der Main aufrufst.
1. Aus deiner Funktionsdefinition den ersten Parameter rausnehmen (int i)
Du musst einen Interrationsvariable nicht übergeben. Die kannst du dir auch innerhalb deiner Funktion definieren.
2. Mal Zwischenergebnisse ausgeben lassen. Innerhalb der Funktion (siehe mein letzter Post)
3. Zeig mal bitte wie du deine Funktion aus der Main aufrufst.
1: hab ich inzwischen schon gemacht, stört aber so weit auch eigentlich nicht.
2. relativ sinnlos da ich jetzt als einfaches beispiel mal die werte 3,4, 5 ins array geschrieben hab. da bringen zwischenergebnisse auch net viel meiner meinung nach^^
3. hier mal das ganze programm:
[spoiler]# include
# include
# include
using namespace std;
double calcarit(double werte[], int n);
int main () {
double n;
int i=1;
double werte[500];
double produkt=1;
double arit;
double sum;
double harmo;
//Messwerte einlesen und ausgeben. Letze Zahl ist die Anzahl der Werte
string line;
ifstream Messwerte ("Messwerte.data");
//im Internet gefunden:
while(!Messwerte.eof()){
getline(Messwerte,line);
werte[i]=atof(line.c_str());
Kommentar