Hello, everyone!
I am currently working on a project, a Matrix Calculator.
But unlike any matrix calculator there, mine seems to be more complex, or so it seems.
One of my problems is getting the input from the user.
For example, if the user typed MAKE A, he/she will be able to make matrix A;
MAKE B, will do matrix B, and so on;
also if she typed ADDM A B C, the matrix calculator will add matrix A and B and put the answer to matrix C, or something like that.
I've already tried a code for this but it can not be compiled.
What do you think seems to be the problem?
Thanks!Code:/*Matrix Calculator*/ #include <stdio.h> int make_mat(); int disp_mat(); int add_mat(); int cmd_str[20]; int mat_A[20][20], r1, c1; int mat_B[20][20], r2, c2; int mat_C[20][20], r3, c3; int i, j; int main(){ do{ printf("\n>>"); scanf("%s",cmd_str[20]); if(cmd_str[0]=="MAKE") make_mat(); else if(cmd_str[0]=="DISP") disp_mat(); else if(cmd_str[0]=="ADDM") add_mat(); else printf("Invalid Command!"); }while(cmd_str[0] != "EXIT") } /*Make Matrix Function*/ int make_mat(){ if(cmd_str[5] == 'A'){ printf("Enter rows: "); scanf("%d", &r1); printf("Enter columns: "); scanf("%d", &c1); for(i=0;i<r1;i++) for(j=0;j<c1;j++){ printf("A[%d][%d] = ", i, j); scanf("%d",&mat_A[i][j]); } } else if(cmd_str[5] == 'B'){ printf("Enter rows: "); scanf("%d", &r2); printf("Enter columns: "); scanf("%d", &c2); for(i=0;i<r2;i++) for(j=0;j<c2;j++){ printf("B[%d][%d] = ", i, j); scanf("%d",&mat_B[i][j]); } } else if(cmd_str[5] == 'C'){ printf("Enter rows: "); scanf("%d", &r3); printf("Enter columns: "); scanf("%d", &c3); for(i=0;i<r3;i++) for(j=0;j<c3;j++) { printf("C[%d][%d] = ", i, j); scanf("%d",&mat_C[i][j]); } } else printf("Invalid argument!"); } /*Display Matrix Function*/ int disp_mat(){ if(cmd_str[5] == 'A'){ printf("Number of rows: %d \n", r1); printf("Number of columns: %d \n", c1); for(i=0;i<r1;i++){ for(j=0;j<c1;j++) printf("|%d|", mat_A[i][j]); printf("\n"); } } else if(cmd_str[5] == 'B'){ printf("Number of rows: %d \n", r2); printf("Number of columns: %d \n", c2); for(i=0;i<r2;i++){ for(j=0;j<c2;j++) printf("|%d|", mat_B[i][j]); printf("\n"); } } else if(cmd_str[5] == 'C'){ printf("Number of rows: %d \n", r3); printf("Number of columns: %d \n", c3); for(i=0;i<r3;i++){ for(j=0;j<c3;j++) printf("|%d|", mat_C[i][j]); printf("\n"); } } else printf("Invalid Argument!"); /*Add Matrix Function*/ int add_mat(){ if(cmd_str[5] == 'A'){ if(cmd_str[7] == 'A'){ if(cmd_str[9] == 'A'){ for(i=0; i<r1; i++){ for(j=0; j<c1; j++) mat_A[i][j] = mat_A[i][j] + mat_A[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r1; i++){ for(j=0; j<c1; j++) mat_B[i][j] = mat_A[i][j] + mat_A[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r1; i++){ for(j=0; j<c1; j++) mat_C[i][j] = mat_A[i][j] + mat_A[i][j]; } } else printf("Invalid Argument!"); } else if(cmd_str[7] == 'B'){ if(cmd_str[9] == 'A'){ for(i=0; i<r1; i++){ for(j=0; j<c2; j++) mat_A[i][j] = mat_A[i][j] + mat_B[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r1; i++){ for(j=0; j<c2; j++) mat_B[i][j] = mat_A[i][j] + mat_B[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r1; i++){ for(j=0; j<c2; j++) mat_C[i][j] = mat_A[i][j] + mat_B[i][j]; } } else printf("Invalid Argument!"); } else if(cmd_str[7] == 'C'){ if(cmd_str[9] == 'A'){ for(i=0; i<r1; i++){ for(j=0; j<c3; j++) mat_A[i][j] = mat_A[i][j] + mat_C[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r1; i++){ for(j=0; j<c3; j++) mat_B[i][j] = mat_A[i][j] + mat_C[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r1; i++){ for(j=0; j<c3; j++) mat_C[i][j] = mat_A[i][j] + mat_C[i][j]; } } else printf("Invalid Argument!"); } else printf("Invalid Argument!"); } if(cmd_str[5] == 'B'){ if(cmd_str[7] == 'A'){ if(cmd_str[9] == 'A'){ for(i=0; i<r2; i++){ for(j=0; j<c1; j++) mat_A[i][j] = mat_B[i][j] + mat_A[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r2; i++){ for(j=0; j<c1; j++) mat_B[i][j] = mat_B[i][j] + mat_A[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r2; i++){ for(j=0; j<c1; j++) mat_C[i][j] = mat_B[i][j] + mat_A[i][j]; } } else printf("Invalid Argument!"); } else if(cmd_str[7] == 'B'){ if(cmd_str[9] == 'A'){ for(i=0; i<r2; i++){ for(j=0; j<c2; j++) mat_A[i][j] = mat_B[i][j] + mat_B[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r2; i++){ for(j=0; j<c2; j++) mat_B[i][j] = mat_B[i][j] + mat_B[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r2; i++){ for(j=0; j<c2; j++) mat_C[i][j] = mat_B[i][j] + mat_B[i][j]; } } else printf("Invalid Argument!"); } else if(cmd_str[7] == 'C'){ if(cmd_str[9] == 'A'){ for(i=0; i<r2; i++){ for(j=0; j<c3; j++) mat_A[i][j] = mat_B[i][j] + mat_C[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r2; i++){ for(j=0; j<c3; j++) mat_B[i][j] = mat_B[i][j] + mat_C[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r2; i++){ for(j=0; j<c3; j++) mat_C[i][j] = mat_B[i][j] + mat_C[i][j]; } } else printf("Invalid Argument!"); } else printf("Invalid Argument!"); } if(cmd_str[5] == 'C'){ if(cmd_str[7] == 'A'){ if(cmd_str[9] == 'A'){ for(i=0; i<r3; i++){ for(j=0; j<c1; j++) mat_A[i][j] = mat_C[i][j] + mat_A[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r3; i++){ for(j=0; j<c1; j++) mat_B[i][j] = mat_C[i][j] + mat_A[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r3; i++){ for(j=0; j<c1; j++) mat_C[i][j] = mat_C[i][j] + mat_A[i][j]; } } else printf('Invalid Argument!'); } else if(cmd_str[7] == 'B'){ if(cmd_str[9] == 'A'){ for(i=0; i<r3; i++){ for(j=0; j<c2; j++) mat_A[i][j] = mat_C[i][j] + mat_B[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r3; i++){ for(j=0; j<c2; j++) mat_B[i][j] = mat_C[i][j] + mat_B[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r3; i++){ for(j=0; j<c2; j++) mat_C[i][j] = mat_C[i][j] + mat_B[i][j]; } } else printf("Invalid Argument!"); } else if(cmd_str[7] == 'C'){ if(cmd_str[9] == 'A'){ for(i=0; i<r3; i++){ for(j=0; j<c3; j++) mat_A[i][j] = mat_C[i][j] + mat_C[i][j]; } } else if(cmd_str[9] == 'B'){ for(i=0; i<r3; i++){ for(j=0; j<c3; j++) mat_B[i][j] = mat_C[i][j] + mat_C[i][j]; } } else if(cmd_str[9] == 'C'){ for(i=0; i<r3; i++){ for(j=0; j<c3; j++) mat_C[i][j] = mat_C[i][j] + mat_C[i][j]; } } else printf("Invalid Argument!"); } else printf("Invalid Argument!"); } else printf("Invalid Argument!"); }



LinkBack URL
About LinkBacks



The compiler errors/warnings are usually helpful in finding the source of bugs.
But seriously, those flags will work with gcc. If you are using an IDE without the command line, I would suggest you learn how to work on the command line. Otherwise, change your warnings in your preferences. Perhaps you could indicate which IDE (if any) you are using so some concrete advice on how to set it up can be given.