Pointer Arithmetik
-
Meine Frage ist wie kann ich hier eine "Pointer-Arithmetik einführen ? Habe ehrlich gesagt keine Ahnung...
#include "stdafx.h" #include<iostream> using namespace std; #define MAX 10 void MinMaxMean(const double*Data,int cnt,double*Max = NULL, double*Min = NULL, double*Mean = NULL) { int i, Datamin = Data[0], Datamax = 0;// Data[0]; double sum = 0.0; for (i = 0; i < cnt; i++) { if (Data[i] > Datamax || i == 0) Datamax = Data[i]; if (Data[i] < Datamin) Datamin = Data[i]; sum += Data[i]; } if (Max != 0) *Max = Datamax; if (Min != 0) *Min = Datamin; if (Mean != 0) *Mean = sum / cnt; //if (Max!= 0) //{ // for (i = 1; i < cnt; ++i) // { // if (Data[i] > Data[iMax]) // iMax = i; // } // *Max = Data[iMax]; //} //if (Min != 0) //{ // for (i = 1; i < cnt; ++i) // { // if (Data[i] < Data[iMin]) // iMin = i; // } // *Min = Data[iMin]; //} //if (Mean != 0) //{ // for (i = 0; i < cnt; ++i) // { // sum += Data[i]; // //if (sum / cnt); // } // *Mean = sum / cnt; //} } int main() { double arr[MAX]; int i,cnt = 0; int*Max = NULL; int*Min = NULL; int*Mean = NULL; cout << "Geben Sie bis zu 10 Zahlen ein\n" << "(Abbruch mit Buchstaben):\n" << endl; for (i = 0; i < MAX && cin >> arr[i]; ++i); cnt = i; double Min, Max, Mean; MinMaxMean(arr,cnt,&Max, &Min); MinMaxMean(arr,cnt, NULL, &Min, NULL); MinMaxMean(arr,cnt, NULL, NULL, &Mean); cout << "\nAnzahl: " << cnt << endl; if (cnt > 0) { cout << "Kleinster Wert: " << Min << endl << "\nGroesster Wert: " << Max << endl << "\nDurschnitt: " << Mean << endl << endl; } system("PAUSE"); return 0; }
-
Wie lautet denn die konkrete Formulierung in deinen Hausaufgaben?
-
Kopieren Sie das Programm aus Aufgabe 1 Kapitel 7. Nutzen Sie in der Schleife die Pointer-Arithmetik.
-
Arithmetik: +
Überlege dir, wie du das
Data[i]
mit + umschreiben kannst.
-
Hätte ich in irgendeiner Weise Ahnung, hätte ich gar nicht erst gefragt also bitte hilf mir.
Ich weiß mit deinem Tipp leider nichts anzufangen.
-
X[Y]
ist das gleiche wie*(X+Y)
.Wahrscheinlich ist aber gemeint, gar keine externe Zählvariable zu benutzen, sondern den Pointer direkt zu inkrementieren.
Außerdem solltest du den Lehrer/Kurs/Buch wechseln. Der Code hat mit C++ ungefähr so viel zu tun wie C. Also so gut wie gar nichts, außer dass es technisch gesehen ausführbares C++ ist.
-
habs geschafft danke