Problema em código de matriz

1. Problema em código de matriz

Gustavo Ziger
wayy

(usa Outra)

Enviado em 16/03/2015 - 21:31h

Em um exercício de estrutura de dados, foi pedido a soma de duas matrizes com o tamanho e os valores inseridos pelo usuário.
Com o código pronto, estou recebendo valores totalmente bizarros quando executo o programa.

#include <stdio.h>

void main(void) {

int tam;
puts("Defina o tamanho das matrizes (tamanhos de linha e coluna iguais):");
scanf("%i", &tam);

int m1[tam][tam], a, b;
int m2[tam][tam], c, d; // Usei este formato de declaração para melhor organização
int m3[tam][tam], e, f;
int x = 1;

puts("Valores da PRIMEIRA matriz:");
for (a = 0; a < tam; a++)
for(b = 0; b < tam; b++) {
printf("Informe o elemento [%i]: ", x++); //
scanf("%i", &m1[a][b]);
}

x = 1;

puts("Valores da SEGUNDA matriz:");
for (c = 0; c < tam; c++)
for (d = 0; d < tam; d++) {
printf("Informe o elemento [%i]: ", x++); //
scanf("%i", &m2[c][d]);
}

for(e = 0; e < tam; e++) {
for (f = 0; f < tam; f++) {

m3[e][f] = m1[a][b] + m2[c][d];

printf("[%3i]", m3[e][f]);

}
puts("");
}

}


O resultado que teria como [2][2]/[2][2], está saindo assim: http://prntscr.com/6hqac5

Alguma luz?

Agradeço já,
Gustavo.


  


2. Re: Problema em código de matriz

Paulo
paulo1205

(usa Ubuntu)

Enviado em 16/03/2015 - 23:23h

O padrão obriga o tipo de retorno de main() a ser int, não void. Além disso, por convenção, se a execução do programa for bem sucedida, você deve retornar o valor zero, e diferente de zero para indicar erros.

Mas o problema que você mostrou é causado pelo loop que gera m3. Quanto você acha que valem a, b, c e d durante os loops controlados por e e f?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts