Ir para conteúdo
Fórum Script Brasil
  • 0

Matriz aleatória sem repetição


Suélio

Pergunta

e aí galera.

bom tô com um pequeno probleminha. eu tenho que gerar uma matriz aleatória não repetida. eu já consegui gerar a matriz aleatória e também consigo chegar se existem elementos repetidos. mas não consigo fazer mais nada depois disso. sem mais delongas, segue abaixo meus 2 códigos. o principal e um com os escopos.

 

 

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "basico.c"
int checa(int **matriz, int n, int m);
int entradamatrizint(int **matriz,int n,int m);
int main()
{
    system("clear");
     srand(time(NULL));
    int **MatrizA;
    int i,n;

    printf("entre com a ordem da matriz: ");
    scanf("%d",&n);
    if (n == 0) {printf("\nDimensões nula\nPrograma Finalizado\n");system("pause");return 1;}
     /*Alocação de Memória para Matrizes*/
    if(!(MatrizA = alocacaoint(n,n)))
    {
        printf("\nNão foi possível alocar memória para Matriz A\nFim de Programa\n");
        return 1;
    }
    /*Entrada da Matriz A*/
    entradamatrizint(MatrizA,n,n);

    /*Impressão da Matriz A*/
    imprimematrizint(MatrizA,n,n);
    getchar();
    return 0;
}
int entradamatrizint(int **matriz,int n,int m)
{
        int a,i,j;


        for (i=0;i<n;i++) for(j=0;j<m;j++)
        {
            a=rand()%100+1;
            matriz[j]=a;
            checa(matriz,n,a);}
        return 0;
}

int checa(int **matriz, int dim, int num ){
    int  i, j, cont=0;
    for(i=0; i<dim; i++)
    for(j=0; j<dim;j++)
    if(num==matriz[j]){
    cont++;
if(cont>1){
printf("\no numero %d se repete %d vezes\n\n", num, cont);
}
    }

    return 0;}

 

códico com os escopos:

int **alocacaoint(int n, int m);
int imprimematrizint(int **matriz,int n,int m);
int **alocacaoint(int n, int m)
{
    int **matriz;
    int i;
    matriz = (int **)calloc(n,sizeof(int *));
    if(!matriz)
          return (NULL);
    for(i=0;i<n;i++)
    {
        matriz=(int *)calloc(m,sizeof(int));
        if(!matriz)

            return (NULL);

    }
    return (matriz);
}
int imprimematrizint(int **matriz,int n,int m)
{
    int i,j;

        for (i=0;i<n;i++)
        {
            printf("\n");
            for(j=0;j<m;j++) printf("%d\t",matriz[j]);
            printf("\n");
        }
        return 0;

}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...