Ir ao conteúdo
  • Cadastre-se

Suelio

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por Suelio

  1. 2 horas atrás, Suelio disse:

    ok, já corrigi.

    Atualização: já consegui e por outro método. administração pode fechar.

    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    #include <math.h>
    #include <string.h>
    #include "basico.c"
    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;}
        if(!(MatrizA = alocacaoint(n,n)))
        {
            printf("\nNão foi possível alocar memória para Matriz A\nFim de Programa\n");
            return 1;
        }
        entradamatrizint(MatrizA,n,n);
        imprimematrizint(MatrizA,n,n);
        getchar();
        return 0;
    }
    int entradamatrizint(int **numbers,int n,int m)
    {
     int a,b,i,j,c=0;
    for (i = 0; i <n ; i++)for(j=0;j<n;j++){
    c++;
    numbers[i][j]= c;}
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            a=rand()%n;b=rand()%n;
            int temp=numbers[i][j];
            numbers[i][j]=numbers[a][b];
            numbers[a][b]=temp;}}}
      
     //arquivo com os escopos. deve ser salvo em arquivo com o nome basico.c e salvo na mesma pasta em que o código acima for salvo.
    
    
    int entradamatrizint(int **numbers,int n,int m);
    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[i]=(int *)calloc(m,sizeof(int));
    		if(!matriz[i])
    
                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[i][j]);
                printf("\n");
            }
            return 0;
    
    }

     

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

     

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!