добавление матрицы (получить имена матриц из строки) - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь сделать функцию сложения матрицы, но проблема не в сложении. проблема в строке, используйте команду ввода, и я должен проверить, все ли в порядке. Для добавления матрицы мне нужно получить 3 имени матрицы для ввода.

Я создал алгоритм, который находит имена, другую функцию, которая проверяет имя матрицы, если оно определено, и сохраняет его как 'matInd'. Я сохранил все matInd в массиве. теперь мне нужно вызвать функцию add_mat для выполнения манипуляции, но функция add_mat должна получить 3 аргумента: двойной add_mat (двойной MAT1 [N] [N], двойной MAT2 [N] [N], двойной MAT3 [N] [N] ])

теперь я не знаю, как изменить matInd на имя Matrix для вызова функции.

Может быть, мне нужно сделать это по-другому?

mat.h:

/* Data Structure */
typedef double mat[N][N];

Названия матриц: MAT_A, MAT_B, MAT_C, MAT_D, MAT_E, MAT_F

mymat.c:

/* Declare matrix and initialize to zero */
mat MAT_A = {0}, MAT_B = {0}, MAT_C = {0}, MAT_D = {0}, MAT_E = {0}, MAT_F = {0};
            case ADD_MAT:
                printf("add mat..\n");
                int i = 0;
                index = skip_white_char(command, index, commandLen);
                if(is_comma(command[index])){
                    print_error(ILLEGAL_COMMA);
                    continue;
                }
                if(command[index]=='\n'){
                    print_error(MISS_PARAM);
                    continue;
                }

                clear_word(nextWord, MAX_WORD_LEN); /* Clear last word from nextWord */
                index = get_word(command, nextWord, index);
                matInd = which_mat(nextWord); /* Save the index of chosen mat */
                if(matInd == UNKNOWN_MAT){
                    print_error(UNDEF_MAT_NAME);
                    continue;
                }
                else {
                    printf("%d ", matInd);
                    matrixMan[i++] = matInd;
                }

                while(is_comma(command[index])){
                    index++;
                    index = skip_white_char(command, index, commandLen);
                    if(is_comma(command[index])){
                        print_error(ILLEGAL_COMMA);
                        continue;
                    }
                    if(command[index]=='\n'){
                        print_error(MISS_PARAM);
                        continue;
                    }
                    clear_word(nextWord, MAX_WORD_LEN); /* Clear last word from nextWord */
                    index = get_word(command, nextWord, index);
                    matInd = which_mat(nextWord); /* Save the index of chosen mat */
                    if(matInd == UNKNOWN_MAT){
                        print_error(UNDEF_MAT_NAME);
                        continue;
                    }
                    else {
                        matrixMan[i++] = matInd;
                    }
                    index = skip_white_char(command, index, commandLen);
                }
                if(command[index]!='\n'){ /* There is parameters without comma between */
                    return MISS_COMMA;
                }

                continue;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...