Odwracanie tablicy w C

0

Witam mam za zadanie odwrócić kolejność elementów w tablicy udało mi się skleić coś takiego ale nie do końca działa:
#include <stdio.h>
#include <stdlib.h>
#define ROZMIAR 500
#include <time.h>
int main()
{
int a=1,b=20,c,n=10,tab[ROZMIAR],i;

    srand(time(NULL));
    for (i=0;i<n;i++)
    {c=(rand()%b+a);
    if (i<n) {tab[i]=c;}
    printf ("%d\n", tab[i]);}
    for (i=0;i<n;i++){
        tab[b]=tab[i-1];
        printf ("%d\n", tab[b]);
    }     
    return 0;}

Przepisuje mi tablice tak jak jest początkowo, dlaczego?

0

Nie dekrementujesz b przez co w ostatniej iteracji w miejsce tab[b] przypisujesz początek wygenerowanej tablicy, a że wypisujesz od tab[b] to dostajesz taki sam wynik jak na początku.

(edit literówki)

1
#include <stdio.h>

#define SWAP(T, a, b) do { T tmp = a; a = b; b = tmp; } while (0)

int main(void) {
	int v[] = {1, 2, 3, 4};
	const int size = sizeof(v)/sizeof(v[0]);
	
	for(int i = 0, j = size-1; i < j; ++i, --j) {
		SWAP(int, v[i], v[j]);
	}
	
	for(int i = 0; i < size; ++i) {
		printf("%d ", v[i]);
	}
	return 0;
}

http://ideone.com/uT5gcw

0

Doceniam odpowiedź, ale prosiłbym o wyjaśnienie na moim kodzie jeśli to nie problem (łatwiej mi zrozumieć coś swojego :D).

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