I have recently been given a 'matrix multiplication' project, where I have two functions: one 'main' , and another a main, will read the different values of the elements of the two arrays a multiply defined and write the result of the product of the two matrices. And the output of two arrays, will receive values from the main function will return the result of the product of the two arrays to the function main that will write that result on the screen and a file created to serve as future memory of the various executions of the program.
I do not understand how you pass the values from one function to another. Can someone explain me? '
define _CRT_SECURE_NO_WARNINGS
include
include
include
int rowsA, columnsA, rowsB, columnsB; int l, c;
void main () { char method;
/*Título do Programa / Apresentação */
printf("\t\t\t\t\t\tPRODUTO DE DUAS MATRIZES \n \n");
printf("Trabalho realizado por:\n");
printf("Francisco Pinto, n%c 43487\n", 248);
printf("Turno pr%ctico\n", 160);
printf("Turma 22D\n \n \n");
/*Menu onde o utlizador poderá escolher como irá importar os dados relativos às matrizes*/
printf("MENU PRINCIPAL \n");
printf("============ \n");
printf("Selecione, por favor o m%ctodo desejado para a importa%c%co dos dados:\n", 130, 135, 198);
printf("==================================================\n");
printf("\tA) Atrav%cs do TECLADO\n", 130);
printf("\tB) Importando um FICHEIRO\n\n");
printf("\tC) Se desejar sair do programa");
scanf(" %c", &metodo);
do
{
scanf(" %c", &metodo);
metodo = toupper(metodo); /*Converte todas as letras inseridas pelo utilizador para maiúsclas*/
} while ((metodo != 'A') && (metodo != 'B') && (metodo != 'C')); /*Caso o utilizador tenha escolhido letras diferentes a A), B) ou C), o menu aparece até que o utilizador escolha a letra certa */
switch (metodo) /*Escohe o caso */
{
case 'A': /*Se o utilizador escolher a opção A)*/
printf("\n\n");
/*Dados da matriz A, preenhidos pelo utilizador*/
printf("Qual o n%cmero de linhas da Matriz A?\n", 163);
scanf(" %d", &linhasA);
printf("Qual o n%cmero de colunas da Matriz A?\n", 163);
scanf(" %d", &colunasA);
printf("\n\n");
/*Dados da matriz B, preenhidos pelo utilizador*/
printf("Qual o n%cmero de colunas da Matriz B?\n", 163);
scanf(" %d", &linhasB);
printf("Qual o n%cmero de colunas da Matriz B ?\n", 163);
scanf(" %d", &colunasB);
float A[linhasA][colunasA], B[linhasB][colunasB];
do
{
scanf(" %d", linhasA);
scanf(" %d", colunasA);
scanf(" %d", linhasB);
scanf(" %d", colunasB);
if (colunasA != linhasB);
printf("\t***ERRO***");
printf("Como o n%cmero de colunas da matriz A %c diferente do n%cmero de linhas da matriz B, n%co %c poss%cvel fazer a multiplica%c%co \n\n", 163, 130, 163, 198, 130, 141, 135, 198);
} while (colunasA != linhasB);
if (colunasA = linhasB)
/*Carregamento da matriz A*/
printf("\tDados da matriz A: \n");
for (l = 0; l <= linhasA - 1; l++)
{
for (c = 0; c <= colunasA - 1; l++);
printf("A[%d][%d] = ", l + 1, c + 1);
scanf("%f", &A[l][c]);
}
/*Carregamento da matriz B*/
printf("\tDados da matriz B: \n");
for (l = 0; l <= linhasB - 1; l++)
{
for (c = 0; c <= colunasB - 1; l++);
printf("B[%d][%d] = ", l + 1, c + 1);
scanf("%f", &B[l][c]);
}
{
case 'B': /*Se o utilizador escolher a opção B)*/
{
}
case 'C': /*Se o utilizador escolher a opção C)*/
{
}
system("pause");
}
}