Suélio
-
Total de itens
5 -
Registro em
-
Última visita
Posts postados por Suélio
-
-
4 minutos atrás, vangodp disse:
Use o botão <> para por o código. Algumas partes ficam alteradas.
ok, já corrigi.
-
#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; }
Bom, eu consegui fazer até aqui. gero uma atriz aleatória e verifico se ela possui 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.
-
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;}
-
Galera, tenho que fazer uma matriz quadrada que gere números aleatórios sem repetição em C. alguém me ajuda?
Matriz aleatória sem repetição
em C, C++
Postado · Editado por Suélio
Boa tarde hermanos. eu já consegui resolver o problema e esqueci de atualizar o post. consegui de duas formas, uma por Buble sort e outra recursiva. o código tinha 4 objetivos por isso vai parecer grande mas é só acompanhar o raciocínio que entende. 1: Gerar uma matriz aleatória não repetida. 2: ordenar essa matriz de 0 a n; 3: Ordenar as linhas da matriz. 4: ordenar as colunas da matriz. vou deixar links com os códigos aqui em baixo. att.
obs: o arquivo basico.c é de escopos e deve ser colocado na mesma pasta dos outros 2.
https://drive.google.com/file/d/0B3tA_HGV8LLWMWdhTFcyNXhaQ1E/view?usp=sharing
https://drive.google.com/open?id=0B3tA_HGV8LLWcDJ4NVBvTExqYnc
https://drive.google.com/open?id=0B3tA_HGV8LLWTUdSeEoxakVwRWs