Ir ao conteúdo
  • Cadastre-se
João Guilherme Ferreira

Problema ao compilar matriz bidimensional

Recommended Posts

Pessoal, não estou conseguindo fazer rodar esse programa. Na verdade, roda. Mas não me dá os resultados esperados. Mostra uma sequência de números decimais:

(2358832,2358832) (2358832,2358832)...

A declaração das variáveis está errada? A sintaxe?

 

______________________________________________

#include<stdio.h>
int main()
{
    int x[3][4], i, j;
    j = 1;
    for(i=1; i<= 3;)
    {
        x == i+(j+(i+3));
        
        for(; j<=4;)
        {
            x[j]==(j+3)-(j-1);
            printf("(%i,%i)", x, x[j]);
            j++;
        }
        printf("\n");        
        i++;
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa dia @João Guilherme Ferreira

Será que pode nos dar uma descrição da Tarefa, só assim terei condição de entender seu algoritmo a ponto de ajudar te.

Compartilhar este post


Link para o post
Compartilhar em outros sites
37 minutos atrás, Mauro Britivaldo disse:

Boa dia @João Guilherme Ferreira

Será que pode nos dar uma descrição da Tarefa, só assim terei condição de entender seu algoritmo a ponto de ajudar te.

Meu objetivo é desenvolver um programa que mostre uma matriz 3X4 tendo seus valores(cada termo da matriz) passados por uma sentença matemática.

Por exemplo: M11= i + j +(3*i); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema parece estar na hora que você atribui valores a matriz, você precisa colocar as coordenadas da matriz entre colchetes, e não pode se esquecer que a matriz é bidimensional.

 

Outro problema é que você está usando o operador de comparação de igualdade (==) na hora de fazer a atribuição de um valor a variável... O operador de atribuição é um único igual (=).

 

Ex:

Ao invés de: x == i+(j+(i+3));
Deveria ser: x[i][j] = i+(j+(i+3));

 

Editado por isrnick

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include<stdio.h>
int main()
{
    int x[3][4], i, j;
    
    for(i=0; i< 3;i++)
    {
        for(j=0; j<4;j++)
        {
            x[j] = i+(j+(i+3));
            printf("(%d, %d)", x[j]);
        }
        printf("\n");        
    }
}

_____________________________________________

@isrnick e @Mauro Britivaldo, fiz a alteração e ainda assim não consigo fazer com que seja calculado o valor do indexador das colunas(j) no algoritmo.

Apenas o indexador das linhas(i) é calculado pela sentença da linha em negrito.

 

Segue imagem do que é impresso:

prog.png

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include<stdio.h>
int main()
{
    int x[3][4], i, j;
    
    for(i=0; i< 3;i++)
    {
        for(j=0; j<4;j++)
        {
            x[i][j] = i+(j+(i+3));
            printf("x(%d, %d) = %d\n", i, j, x[i][j]);
        }
        printf("\n");        
    }
} 

Seria isto o que você deseja fazer?

 

Obs: Sempre use a tag CODE para postar códigos, usando o botão <> no topo da caixa de texto de resposta, assim o texto mantém a formatação e evita que o autocorretor do fórum faça modificações no texto do seu código.

Editado por isrnick

Compartilhar este post


Link para o post
Compartilhar em outros sites

@isrnick ,

olha. Consegui fazer uma matriz bidimensional em C sem precisar usar a sintaxe do C. Para que realmente serve uma matriz em C? Não consigo encontrar uma aplicação para.

 Olha só essa abaixo. Simples e sem cálculo.

#include<stdio.h>
int main()
{
	int i, j;
	
	for(i=1; i<= 3;)
	{
		for(j=1; j<=4;)
		{
			printf("(%d,%d)", i, j);
			j++;
		}
		printf("\n");		
		i++;
	}
}

code.jpg

adicionado 15 minutos depois

@isrnick ,

agora uma com cálculo dos termos. 

#include<stdio.h>
int main()
{
	int i, j=1, x, y;
	
	for(i=1; i<=3;i++)
	{
		x = i + 3*i - 1*j;
		for(j=1; j<=4;j++)
		{
			y = j + 3*j - 2*i;
			printf("(%d,%d) ", x, y);
		}
		printf("\n");		
	}
}

code2.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando se fala em matriz em C estamos nos referindo ao uso desta notação na declaração e uso das variáveis:

Matriz[n][m]
Matriz[n][m][o]

Onde n, m e o são o número de itens/comprimento em dada dimensão da matriz.

Que são nada mais que vetores com mais dimensões:

Vetor[n]

 

Note que no seu programa os valores de x e y são imediatamente descartados e substituídos após serem impressos na tela quando a próxima iteração dos ciclos 'for' forem executadas. Entretanto se você precisar usar os valores calculados posteriormente no programa não será possível.

 

Vetores e matrizes são usados para armazenar vários valores sem a necessidade de criar várias variáveis diferentes para armazenar cada um. Imagine por exemplo que você deseja que seu programa armazene vários números de uma tabela no estilo Excel, que serão usados para fazer cálculos e obter outros valores, então sem vetores e matrizes você teria que declarar 1 por 1 das variáveis para armazenar o valor de cada campo da tabela, enquanto usando uma única matriz com 2 dimensões (desde que grandes o suficiente) poderia armazenar cada valor da tabela em um lugar diferente da memória, e serem facilmente consultados ou usados posteriormente no programa.

Editado por isrnick
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×