Ir ao conteúdo

Posts recomendados

Postado

Título: Faça um programa em C que gere uma matriz "NxN", onde n é obtido  de forma aleatória, com números reais em N e N*2.

 

Eu ja fiz a parte da matriz aleatória NxN, so não estou conseguindo fazer a parte de colocar os números reais em N e N*2.

Preciso terminar ate dia 16 de novembro, alguém pode me ajudar a consertar?

 

#include<stdio.h>

#include<stdlib.h>

#include<time.h>



void llenar_Matriz(int dim, int matriz[dim][dim]);

void mostrar_matriz(int dim, int matriz[dim][dim]);



int main(){



               

                srand(time(NULL));



                int dim;

                printf("\nDigite a dimensao: ");

                scanf("%d", &dim);

                int matriz[dim][dim];

               

               

                llenar_Matriz(dim,matriz);

               

                mostrar_matriz(dim, matriz);



                return 0;

}



void mostrar_matriz(int dim, int matriz[dim][dim]){

                int i, j;

                for(i=0; i<dim; i++){

                               for(j=0; j<dim; j++){

                                               printf("%d\t", matriz[i][j]);

                                              

                               }

                               printf("\n");

                }

}





void llenar_Matriz(int dim, int matriz[dim][dim]){

                int i, j;

                for(i=0; i<dim; i++){

                               for(j=0; j<dim; j++){

                                               matriz[i][j]=1+rand() %9;

                               }

                }

}

 

 

 

Postado
2 horas atrás, devair1010 disse:

seu código funciona bem  ,  mas essa parte do " n e n*2 "   , está confuso ,  .

 

Ou não. Há vários problemas em seu código, desde a interpretação do enunciado.

 

int main()
{
    srand(time(NULL));
    int dim;

    printf("\nDigite a dimensao: ");
    scanf("%d", &dim);

    int matriz[dim][dim];

 

Essa última linha não faz parte do padrão da linguagem. Isso não existe em C exceto por uma obscura extensão chamada VLA.

 

dim deve ser constante e conhecido em tempo de compilação.

 

image.png.b163c160552767d2afc918eb03166862.png

 

Outro ponto que está claro no enunciado e até com ilustrações é que um número real é um número com decimais. O que fez você achar que uma matriz de int serviria?

 

Se 'n' é a dimensão da matriz e diz aqui que é obtido de forma aleatória então porque você está lendo isso?

 

image.png.0815d25bfa5ac6b244fab0bd3da76e9e.png

 

 

Lendo aqui está claro que n é sorteado. 

 






Então porque acha que pode usar

 

    printf("\nDigite a dimensao: ");
    scanf("%d", &dim);

 

Leu o manual? Tem um livro? Usa Linux? scanf() retorna um int. Porque não testou?

 

Mas de todo modo está errado.

 

Evite void e não escreva assim:

 

    void llenar_Matriz(int dim, int matriz[dim][dim]);

 

prefira o que foi descrito no enunciado

 

    double*    llenar_Matriz(const int dim);

 

e retorne a matriz com a dimensão pedida e com o tipo pedido: reais entre dim e (dim+dim).

 

    int i, j;
    for (i = 0; i < dim; i++)
    {
        for (j = 0; j < dim; j++)   

 

Nunca escreva assim.  Muito menos com esses nominhos ingênuos como i e j. Esses valores são globais à função. Não é o que quer. Declare as variáveis de controle do loop no for.

 

 

E o usuário se foi 😞

  • Obrigado 1

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!