Mimo, że już podano Ci rozwiązanie, ja mam pytanie: po co Ci zwiększanie wskaźnika?? Czy już nie możesz zastosować zwykłego indeksowania tablicy przez nawiasy []??
[...]
Czy nie lepiej zastosować prostsze rozwiązanie niż na siłę dokładać kod do dość specyficznego...?
w zasadzie masz racje, ale tego progsa pisze w celach edukacyjnych, natrafilem na cos z czym nie moglem sobie poradzic, sposob z tablicami jest rzeczywiscie wygodniejszy i bardziej przejrzysty,
zreszta zobaczcie mojego progsa, juz go zrobilem ale moze cos sie da w nim ulepszyc:
// TRESC ZADANIA://// zdefiniowac dynamicznie jednowymiarowa tablice o dlugosci 'n' z liczb rzeczywistych// przeczytac z klawiatury wartosci elementow tablicy, wyznaczyc najwiekszy element,// srednia jej elementow, wylistowac elementy tablicy, operacje wykonac w funkcjach// wywolanych przez wskaznik.// --------------------------#include "stdafx.h" //kompilacja pod: Visual Studio .NET (C++) //ew: #include <iostream.h>#include "conio.h" //dla getch();using namespace std;//DEKLARACJE FUNKCJI:void wyswietl(float *w, int n);void srednia(float *w, int n);void najw_elem(float *w, int n);int main(){ cout << "Podaj rozmiar dynamicznej tablicy : "; int n; cin >> n; float *tab = new float[n]; void (*ws)(float *, int); //wskaznik do funkcji //wczytywanie elementow tablicy for (int i=0; i < n; i++) { cout << "Podaj element nr " << i+1 << " : "; cin >> tab[i]; //*(tab++), ale wtedy potrzbne jest: tab = tab - n; <=>tab -= n: //powrot wsk na piewszy (zerowy) element tablicy,zeby moc znowu z nia cos zrobic } char znak; do { cout << endl << "***************************************" << endl << "Program do obslugi dynamicznej tablicy!" << endl << "***************************************" << endl << "Co chcesz zrobic z tablica ? " << endl << "'N' - najwiekszy element tablicy " << endl << "'S' - srednia z elementow tablicy " << endl << "'W' - wyswietl elementy tablicy " << endl << endl << "'K' - aby zakonczyc " << endl; znak = getch(); switch(znak) { case 'N': { ws = najw_elem; (*ws)(tab, n); break; } case 'S': { ws = srednia; (*ws)(tab, n); break; } case 'W': { ws = wyswietl; (*ws)(tab, n); break; } case 'K': break; default: cout << "Wybierz jedna z mozliwych opcji!" << endl; break; } cout << endl; } while ( znak != 'K'); delete [] tab; //wywala nieraz access violation nie wiem na razie dlaczego?}void najw_elem(float *w, int n){ float tmp = w[0]; //tmp wskazuje na 1. element tablicy for (int i=0; i < n; i++) { if (w[i] > tmp) tmp = w[i]; } cout << "Najwiekszy element tablicy ma wartosc : " << tmp << endl;}void srednia(float *w, int n){ float suma = 0; for (int i = 0; i < n; i++) { suma += w[i]; } cout << "Srednia wartosci elementow tablicy : " << suma/n << endl;}void wyswietl(float *w, int n){ for (int i=0; i < n; i++) { cout << "Element tablicy o nr: " << i+1 << " ma wartosc : " << w[i] << endl; }}