Funkcja odwracająca tablice

0

Mam takie polecenie: Napisz funkcję która do podanej tablicy o zadanej długości wpisuje wartości ciągu 2*n+1 dla n = <0,10>, a następnie napisz drugą funkcję która uprzednio zainicjalizowaną tablicę odwróci, nie wiem dlaczego funkcja nie chce działać mi dla 0.

#include <iostream>

using namespace std;

int fWypisz(int iTab[], int r){
    for(int i=0; i<r; i++){
        iTab[i]=2*i+1;
    }
}
int fOdwr(int iTab[], int r){
    for(int i=r-1; i>=0; i--){
        cout<<iTab[i]<<"\t";
    }

}
int main()
{
    cout<<"Wpisz dlugosci tablicy od 0 do 11"<<endl;
    int R;
    cin>>R;
    int tab[R];
    fWypisz(tab, R);
    fOdwr(tab, R);
    return 0;
}

1

Gdzie Masz funkcję odwracającą tablicę? Widzę funkcję wypisującą elementy tablicy od ostatniego do pierwszego(fOdwr), która ma zwracać obiekt typu int, a zwraca nic.
Co do samego odwracania, to: https://duckduckgo.com/?q=reverse+array+c%2B%2B&t=canonical&atb=v127-1__&ia=web

0

No tak racja ale chciałem to zrobić na piechotę, tak chciał ćwiczeniowiec.
Powinienem zastosować voidy ale co z tym zerem?
EDIT: już ogarnąłem stawiając if-a w odpowiednim miejscu

0

Wystarczyło, że poprawiłem trochę pętlę for w funkcji fWypisz i dodałem if-a w funkcji fOdwr

#include <iostream>

using namespace std;

void fWypisz(int iTab[], int r){
    for(int i=0; i<=r; i++){
        iTab[i]=2*i+1;
    }
}
void fOdwr(int iTab[], int r){
    if(r==0) cout<<iTab[0];
    for(int i=r-1; i>=0; i--){
        cout<<iTab[i]<<"\t";
    }

}
int main()
{
    cout<<"Wpisz dlugosci tablicy od 0 do 11"<<endl;
    int R;
    cin>>R;
    int tab[R];
    fWypisz(tab, R);
    fOdwr(tab, R);
    return 0;
}

0

"Odwracanie" tablicy a wypisywanie w odwrotnej kolejności to dwie różne rzeczy.
I nie wiem zbytnio po co ten if. Jeśli i jest równe 0 to i tak wchodzisz do pętli i wypisujesz elementy od indeksu -1. Czym to się kończy, łatwo się domyśleć ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1