Write a program that reads the dimension N of an integer array T (maximum dimension: 50 components), fills the array with values entered on the keyboard and displays the array.

Then store the elements of T in the reverse order without using an auxiliary array. Display the resulting array.

Idea: Swap the elements of the array using two indices that run through the array, starting at the beginning and at the end of the array respectively and meeting in the middle.


Difficulty level
This exercise is mostly suitable for students
#include<stdio.h>
#include<math.h>
#include<conio.h>
#define SIZE 50
void main()
{

	// error int T[];

	// error int N=50;
	// error int T[N];

	// 1st solution
	//int N;
	//int T[50];

	//2nd solution
	int N; // nb of elements
	int T[SIZE]; // array of maximum size 50
	int T2[SIZE];
	int i, j = 0, aux;
	do {
		printf("Enter N: ");
		scanf("%d", &N);
	} while (N<0 || N>50);

	for (i = 0; i < N; i++)
	{
		printf("Enter T[%d]: ", i);
		scanf("%d", &T[i]);

	}

	printf("\n\nPrinting the elements\n");
	for (i = 0; i < N; i++)
	{
		printf("T[%d]=%d\n", i, T[i]);
	}

	for (i = 0; i < N; i++)
	{
		T2[N - 1 - i] = T[i];
	}

	printf("\n\nPrinting the elements of T2\n");
	for (i = 0; i < N; i++)
	{
		printf("T[%d]=%d\n", i, T2[i]);
	}


	// we declare 2 counters: i starting from the beginning
	// of the array, j from the ends
	// we loop until i and j cross
	for (i = 0, j = N - 1; i < j; i++, j--)
	{
		aux = T[i];
		T[i] = T[j];
		T[j] = aux;
	}

	printf("\n\nPrinting the elements\n");
	for (i = 0; i < N; i++)
	{
		printf("T[%d]=%d\n", i, T[i]);
	}


	getch();
}

Back to the list of exercises
Looking for a more challenging exercise, try this one !!
Program output 7