C Examples

WAP in C that will transpose a 2-d array but the array is stored as 1-d array

The Program in C that will transpose a 2-d array but the array is stored as 1-d array is given below:

#include <stdio.h>

void transpose(int *arr, int rows, int cols) {
    int temp, new_index;
    for (int i = 0; i < rows*cols; i++) {
        new_index = (i%cols)*rows + i/cols;
        if (new_index > i) {
            temp = arr[i];
            arr[i] = arr[new_index];
            arr[new_index] = temp;
        }
    }
}

int main() {
    int rows, cols, i, j;

    printf("Enter the number of rows: ");
    scanf("%d", &rows);
    printf("Enter the number of columns: ");
    scanf("%d", &cols);

    int arr[rows*cols];

    printf("Enter the elements of the array: ");
    for (i = 0; i < rows*cols; i++) {
        scanf("%d", &arr[i]);
    }

    printf("Original array: \n");
    for (i = 0; i < rows; i++) {
        for (j = 0; j < cols; j++) {
            printf("%d ", arr[i*cols + j]);
        }
        printf("\n");
    }

    transpose(arr, rows, cols);

    printf("Transposed array: \n");
    for (i = 0; i < cols; i++) {
        for (j = 0; j < rows; j++) {
            printf("%d ", arr[i*rows + j]);
        }
        printf("\n");
    }

    return 0;
}

Output:

Enter the number of rows: 3
Enter the number of columns: 3
Enter the elements of the array: 12
43
12
56
44
23
45
67
22
Original array:
12 43 12
56 44 23
45 67 22
Transposed array:
12 56 45
43 44 67
12 23 22

Pro-Tips💡

This program prompts the user to enter the number of rows and columns of the 2-D array, and then the elements of the array.

It then uses the transpose function defined earlier to transpose the array, and prints the original and transposed arrays.


Please note that, the above program uses a 1-D array to store a 2-D array and as a result, the memory is allocated in a continuous block.

This is also known as row-major order.

Learn C-Sharp ↗

C-sharp covers every topic to learn about C-Sharp thoroughly.

Learn C Programming ↗

C-Programming covers every topic to learn about C-Sharp thoroughly.

Learn C++ Programming↗

C++ covers every topic to learn about C-Sharp thoroughly.

Codeauri is Code Learning Hub and Community for every Coder to learn Coding by navigating Structurally from Basic Programming to Front-End Development, Back-End Development to Database, and many more.

Related Posts

C# Program to Find Sum of Rows & Columns of a Matrix

The Program in C# Program to Find Sum of Rows & Columns of a Matrix is given below: Output: Hello Codeauri Family,enter the number of rows and columns…

C# Program to Calculate Determinant of Given Matrix

The Program in C# Program to Calculate Determinant of Given Matrix is given below: Output: Hello Codeauri Family, enter the number of rows and columns of the matrix…

C# Program to Find Sum of right Diagonals of a Matrix

The Program in C# Program to Find Sum of right Diagonals of a Matrix is given below: Output: Hello Codeauri Family, enter the number of rows and columns…

C# Program to Find Transpose of Given Matrix

The Program in C# Program to Find Transpose of Given Matrix is given below: Output: Hello Codeauri Family, enter the number of rows and columns in the matrix:22Enter…

C# Program for Multiplication of two square Matrices

The Program in C# Program for Multiplication of two square Matrices is given below: Output: Hello Codeauri Family, enter the number of rows/columns in the matrices:2Enter the elements…

C# Program to Delete Element at Desired position From Array

The Program in C# Program to Delete Element at Desired position From Array is given below: Output: Hello Codeauri Family, enter the number of elements in the array:4Enter…

Leave a Reply

Your email address will not be published. Required fields are marked *

Your Journey into Code Begins Now: Discover the Wonders of Basic Programming

X