Ir ao conteúdo
  • Cadastre-se

C Como fazer uma matriz N?


MatheusINF

Posts recomendados

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;
}

 

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...