/* * mainOdd.c Lab Test 2 for odd machine numbers */ #include #include #define SIZE 50 typedef struct { int rat, irt; } intR2 ; typedef struct node { intR2 data; struct node *next; } node, *list; intR2 readintR2(); void printintR2(intR2 a); intR2 makeintR2(int r, int i); intR2 addintR2(intR2 a, intR2 b); intR2 mulintR2(intR2 a, intR2 b); void readintR2mat(intR2 x[][SIZE], int row, int col); void printintR2mat(intR2 x[][SIZE], int row, int col); void readintR2vect(intR2 v[], int n); void printintR2vect(intR2 v[], int n); list intR2matvectmul(intR2 x[][SIZE], int row, int col, intR2 v[]); void printintR2lst(list l); int main() { intR2 x, y, z, m[SIZE][SIZE], v[SIZE]; int row, col; list l; printf("Enter an intR2 data: "); x = readintR2(); printf("\n1st Data: "); printintR2(x); putchar('\n'); printf("Enter second intR2 data: "); y = readintR2(); printf("\n2nd Data: "); printintR2(y); putchar('\n'); z = addintR2(x,y); printf("Sum: "); printintR2(z); putchar('\n'); y = makeintR2(1,-2); printf("3rd Data: "); printintR2(y); putchar('\n'); z = addintR2(z,y); printf("Second Sum: "); printintR2(z); putchar('\n'); z = mulintR2(x,y); printf("Product: "); printintR2(z); putchar('\n'); printf("Enter the number of rows and columns: "); scanf("%d%d", &row, &col); printf("Enter the matrix in column-major order: "); readintR2mat(m, row, col); printf("\nThe matrix is:\n"); printintR2mat(m, row, col); printf("Enter a %d-dim vector: ", col); readintR2vect(v, col); printf("\nThe vector is:\n"); printintR2vect(v, col); putchar('\n'); l = intR2matvectmul(m, row, col, v); printf("\nThe product vector is:\n"); printintR2lst(l); putchar('\n'); return 0; }