/* * mainEven.c Lab Test 2 for even machine numbers */ #include #include #define SIZE 50 typedef struct { int img, rel; } rm2int ; typedef struct node { rm2int data; struct node *next; } node, *list; rm2int readrm2int(); void printrm2int(rm2int a); rm2int makerm2int(int i, int r); rm2int addrm2int(rm2int a, rm2int b); rm2int mulrm2int(rm2int a, rm2int b); void readrm2intmat(rm2int x[][SIZE], int row, int col); void printrm2intmat(rm2int x[][SIZE], int row, int col); void readrm2intvect(rm2int v[], int n); void printrm2intvect(rm2int v[], int n); list rm2intmatvectmul(rm2int x[][SIZE], int row, int col, rm2int v[]); void printrm2intlst(list l); int main() { rm2int x, y, z, m[SIZE][SIZE], v[SIZE]; int row, col; list l; printf("Enter an rm2int data: "); x = readrm2int(); printf("\nData I: "); printrm2int(x); putchar('\n'); printf("Enter next rm2int data: "); y = readrm2int(); printf("\nData II: "); printrm2int(y); putchar('\n'); z = addrm2int(x,y); printf("Sum: "); printrm2int(z); putchar('\n'); y = makerm2int(-2,1); printf("Data III: "); printrm2int(y); putchar('\n'); z = addrm2int(z,y); printf("Sum II: "); printrm2int(z); putchar('\n'); z = mulrm2int(x,y); printf("Product: "); printrm2int(z); putchar('\n'); printf("Enter rows and column numbers: "); scanf("%d%d", &row, &col); printf("Enter the matrix in row-major order: "); readrm2intmat(m, row, col); printf("\nInput matrix:\n"); printrm2intmat(m, row, col); printf("Enter a %d-dim vector: ", col); readrm2intvect(v, col); printf("\nThe vector is:\n"); printrm2intvect(v, col); putchar('\n'); l = rm2intmatvectmul(m, row, col, v); printf("\nThe product vector is:\n"); printrm2intlst(l); putchar('\n'); return 0; }