Jump to content
Fórum Script Brasil
  • 0

Matrizes


William Gomes

Question

Gente preciso de ajuda com esse exercício, pois estou fazendo e fica dando finalizar programa e o cmd fecha.

"Crie um programa que leia o número de linhas e colunas de duas matrizes, bem como seus conteúdos e em seguida calcule o produto delas, mostrando o resultado na tela."

Esse é meu código:

#include <stdio.h>
#define MAX 100
int main(void){

    int m, n, a, b, matrizA[MAX][MAX], matrizB[MAX][MAX], i, j;

    printf("Informe a dimensao da matriz(m n):\n");
    scanf("%d%d, &m, &n");

    for(i=0 ; i<m ; i++)
        for(j=0 ; j<n ; j++){
        printf("Informe a Matriz A[%2d][%2d]: ", i, j);
        scanf("%d", &matrizA[i][j]);
        }
    for (i = 0; i < a; i++)
        for (j = 0; j < b; j++) {
        printf("Informe a Matriz B[%2d][%2d]: ", i, j);
        scanf("%d", &matrizB[i][j]);
        }


return 0;
}

 

Edited by William Gomes
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Boa noite. O fato de finalizar o programa é que na hora que você solicita a dimensão da matriz, as variáveis "m'"e "n", estão entre aspas " ", o que acaba gerando erro. Troque esta linha:

scanf("%d%d, &m, &n");

Por esta:

scanf("%d %d",&m,&n);

Na hora de inserir os dados da matriz digite o valor de 'm' + espaço + valor de n + ENTER, ou para ficar mais prático use um scanf para m e outro scanf para n.

Espero ter ajudado ;)

Link to comment
Share on other sites

  • 0

A Fernanda está certa. Ler os valores de m e n do modo como ele colocou ou o mais recomendado ainda seria ler o valor de m e depois de n.

Mas olhando seu código, você não está fazendo um correto uso das chaves nos comandos for.

A maneira ideal para fazer esse exercício com o correto uso das chaves seria assim:

	for(i = 0 ; i < m ; i++)
    {
		for(j = 0 ; j < n; j++)
		{
        	printf("Informe a Matriz A[%2d][%2d]: ", i, j);
        	scanf("%d", &matrizA[i][j]);
        }
    }
    for (i = 0; i < a; i++)
    {
		for (j = 0; j < b; j++) 
		{
        	printf("Informe a Matriz B[%2d][%2d]: ", i, j);
        	scanf("%d", &matrizB[i][j]);
        }
    }

Outro problema é q as variáveis a e b não estão inicializadas, ou não receberam nenhum valor. Ou seja, ao executar o código não será executado o segundo bloco de FOR,  pois assumisse q o valor de a é 0 e b tbém. Com isso a condição i < a resulta em falsa bem como a condição j < b e por isso o loop com o FOR não é executado.

Creio q o ideal seria vc dizer exatamente qual o objetivo do exercício para daí saber como resolver

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...