Upload files to "DS/C/Lab/Week4"
This commit is contained in:
parent
c6df50662d
commit
44cced8454
67
DS/C/Lab/Week4/transpose.c
Normal file
67
DS/C/Lab/Week4/transpose.c
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define MAX_TERMS 100
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int row;
|
||||||
|
int col;
|
||||||
|
int value;
|
||||||
|
} Term;
|
||||||
|
|
||||||
|
void transpose(Term a[], Term b[]) {
|
||||||
|
int n, i, j, currentb;
|
||||||
|
|
||||||
|
n = a[0].value; // Number of elements
|
||||||
|
b[0].row = a[0].col; // Number of columns in b = number of rows in a
|
||||||
|
b[0].col = a[0].row; // Number of rows in b = number of columns in a
|
||||||
|
b[0].value = n;
|
||||||
|
|
||||||
|
if (n > 0) {
|
||||||
|
currentb = 1;
|
||||||
|
for (i = 0; i < a[0].col; i++) {
|
||||||
|
for (j = 1; j <= n; j++) {
|
||||||
|
if (a[j].col == i) {
|
||||||
|
b[currentb].row = a[j].col;
|
||||||
|
b[currentb].col = a[j].row;
|
||||||
|
b[currentb].value = a[j].value;
|
||||||
|
currentb++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void printMatrix(Term matrix[]) {
|
||||||
|
printf("Row\tColumn\tValue\n");
|
||||||
|
for (int i = 0; i <= matrix[0].value; i++) {
|
||||||
|
printf("%d\t%d\t%d\n", matrix[i].row, matrix[i].col, matrix[i].value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Term a[MAX_TERMS], b[MAX_TERMS];
|
||||||
|
|
||||||
|
// Initialize matrix a with user input
|
||||||
|
int numElements;
|
||||||
|
printf("Enter the number of non-zero elements: ");
|
||||||
|
scanf("%d", &numElements);
|
||||||
|
|
||||||
|
a[0].row = 6; // Assuming a 6x6 matrix, can be changed if needed
|
||||||
|
a[0].col = 6;
|
||||||
|
a[0].value = numElements;
|
||||||
|
|
||||||
|
printf("Enter the elements in the format 'row col value':\n");
|
||||||
|
for (int i = 1; i <= numElements; i++) {
|
||||||
|
scanf("%d %d %d", &a[i].row, &a[i].col, &a[i].value);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Original Matrix:\n");
|
||||||
|
printMatrix(a);
|
||||||
|
|
||||||
|
transpose(a, b);
|
||||||
|
|
||||||
|
printf("\nTransposed Matrix:\n");
|
||||||
|
printMatrix(b);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user