0
Recently I was given a project of`multiplication of matrices, where I have two functions: a "main", and another "product of two matrices"; a main, will read the different values of the elements of the two matrices a multiply defined by the user and write the product result of the two matrices. And the product_de_twomatrices, will receive values from the main function will return the output of the two matrices to the main function that will write this result on the screen and in a file created to serve as future memory of the various program executions.
I don’t understand what it’s like to pass the values from one function to the other. Can anyone explain it to me?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int linhasA, colunasA, linhasB, colunasB;
int l, c;
void main()
{
char metodo;
/*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");
}
}
This excerpt: from { scanf(" %d", lineA); scanf(" %d", colunasA); scanf(" %d", lineB); scanf(" %d", colunasB); has no sense, you have already read these variables.
– anonimo
Possible duplicate of Return local function variables
– Mateus -- O Schroeder