I have a problem for the below function.
void reverseAr1D(int ar[], int size)
{
int temp[size], j = 0;
for(int i = size - 1; i > -1; i--)
{
temp[j] = ar[i];
j++;
}
j = 0;
for(int i = size - 1; i >- 1; i--)
{
*(ar + j) = *(temp + i);
j++;
}
for (int i = 0; i < size; i++)
printf("%d ", temp[i]);
}
I would like to reverse every element in the array ar[]. I tried to copy reversely to another array temp[]. Then copy the temp[] back to ar[]. I tried but is not working. Below is my code. Thanks.
#include <stdio.h>
void printReverse1(int ar[], int size);
void printReverse2(int ar[], int size);
void reverseAr1D(int ar[], int size);
int main()
{
int ar[10];
int size, i;
printf("Enter array size: \n");
scanf("%d", &size);
printf("Enter %d data: \n", size);
for (i = 0; i <= size - 1; i++)
scanf("%d", &ar[i]);
printReverse1(ar, size);
printReverse2(ar, size);
reverseAr1D(ar, size);
printf("reverseAr1D(): ");
if (size > 0)
{
for (i = 0; i < size; i++)
printf("%d ", ar[i]);
}
return 0;
}
void printReverse1(int ar[], int size)
{
/* using index – Write your program code here */
printf("printReverse1(): ");
for(int i=size-1;i>-1;i--){
printf(" %d ",ar[i]);
}
printf("\n");
}
void printReverse2(int ar[], int size)
{
/* using pointer – Write your program code here */
printf("printReverse2(): ");
for(int i=size-1;i>-1;i--){
printf(" %d ",*(ar+i));
}
printf("\n");
}
void reverseAr1D(int ar[ ], int size)
{
/* Write your program code here */
int temp[size],j=0;
for(int i=size-1;i>-1;i--){
temp[j]=ar[i];
j++;
}
j=0;
for(int i=size-1;i>-1;i--){
*(ar+j)=*(temp+i);
j++;
}
for (int i=0; i<size; i++)
printf("%d ", temp[i]);
}