Ir ao conteúdo
  • Cadastre-se
MatheusINF

C Como fazer uma matriz N?

Recommended Posts

Fala galera, bom preciso fazer uma matriz quadrada com N termos, porém quando eu vou declarar variaveis o que eu coloco nos "vetores" da Matriz?, tentei colocando i,j porém não executa certo ;/

#include <stdio.h>

int main()
{
    // VARIAVEIS
    int n,i,j,Matriz[i][j];

    // INICIO
    printf("Digite o numero de termos da Matriz quadrada: ");
    scanf("%i",&n);

    printf("\n\nMatriz\n");
    for(i=0; i<n; i++){
        for(j=0; j<n; j++)
        scanf("%i",&Matriz[i][j]);
    }
    for(i=0; i<n; i++){
        for (j=0; j<n; j++)
        printf("%5d",Matriz[i][j]);
        printf("\n\n");
     }




    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está na declaração:

int n,i,j,Matriz[i][j];

Você colocou i e j entre os colchetes ao invés de um tamanho.

  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tamanho seria o que?, pois eu tentei colocar N e também não foi ;/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qualquer número inteiro, nesse caso só precisa ser grande o suficiente, por exemplo:

 

int n,i,j,Matriz[100][100];

Já aceitaria valores de n entre 1 e 100, e imagino que 100 já seja muito mais que qualquer n que alguém vai digitar, afinal ninguém vai ficar digitando 10000 números pra preencher a matriz...

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

1#

Sobre:

22 horas atrás, MatheusINF disse:

Fala galera, bom preciso fazer uma matriz quadrada com N termos, porém quando eu vou declarar variaveis o que eu coloco nos "vetores" da Matriz?, tentei colocando i,j porém não executa certo ;/

 

De fato um problema está na declaração, veja:

23 horas atrás, MatheusINF disse:

int n,i,j,Matriz[i][j];

 

Perceba que i e j não foram inicializados, ou seja, está tentando criar uma matriz com coordenadas "desconhecidas". Mesmo supondo que o compilador zerasse as variáveis (i=0 e j=0), estaria criando um matriz de ordem 0 (Matriz[0][0]).

 

 

 

2#

Além do sugerido por @isrnick, ou seja, utilizando um tamanho «grande o suficiente», poderia criar a matriz depois de ter o tamanho.

 

#include <stdio.h>
int main() {
    int n;
    int i,j;

    printf("Digite o numero de termos da Matriz quadrada: ");
    scanf("%i",&n);
    
    int Matriz[n][n];
    
    printf("\n\nMatriz\n");
    for (i=0; i<n; i++) {
        for (j=0; j<n; j++)
            scanf("%i",&Matriz[i][j]);
    }
    
    for (i=0; i<n; i++) {
        for (j=0; j<n; j++)
            printf("%5d",Matriz[i][j]);
        printf("\n\n");
     }
     
    return 0;
}

 

obs.: não sei se é uma boa prática, mas aqui funcionou.

 

 

 

3#

Uma outra forma seria utilizando "vetores dinâmicos"... mas creio que você ainda não entrou nesse tema, pois caso contrário estaria usando. Se for o caso, esqueça-os... utilize apenas o que já estudou.

 

 

 

4#
Cuidado com indentação. Perceba que no seu código tem coisas fora do lugar... basicamente em relação aos for internos. Qualquer coisa compare o teu código com o meu.

 

 

***

 

No aguardo.

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 minutos atrás, Simon Viegas disse:

#include <stdio.h> int main() { int n; int i,j; printf("Digite o numero de termos da Matriz quadrada: "); scanf("%i",&n); int Matriz[n][n]; printf("\n\nMatriz\n"); for (i=0; i<n; i++) { for (j=0; j<n; j++) scanf("%i",&Matriz[i][j]); } for (i=0; i<n; i++) { for (j=0; j<n; j++) printf("%5d",Matriz[i][j]); printf("\n\n"); } return 0; }

Acho que assim ficou mais claro o motivo do erro mesmo :D

 

21 minutos atrás, Simon Viegas disse:

3#

Uma outra forma seria utilizando "vetores dinâmicos"... mas creio que você ainda não entrou nesse tema, pois caso contrário estaria usando. Se for o caso, esqueça-os... utilize apenas o que já estudou.

Bom vetores já estudei mais acho que "vetores dinâmicos", é mais pra frente ou nem chegarei a ver, pois o curso não é tão voltado pra programação

 

22 minutos atrás, Simon Viegas disse:

Cuidado com indentação. Perceba que no seu código tem coisas fora do lugar... basicamente em relação aos for internos. Qualquer coisa compare o teu código com o meu.

 

Quanto a isso é uma coisa que realmente preciso melhorar, e estou corrigindo os algoritmos antigos que já tinha feito

 

valeu mesmo mnwww

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

×