Ir ao conteúdo
  • Cadastre-se

Suelio

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

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