Skip to content
Snippets Groups Projects
Commit 429ecaef authored by Pedro Folloni Pesserl's avatar Pedro Folloni Pesserl
Browse files

implement most functions from main program

parent 4c33bfb2
Branches
No related tags found
No related merge requests found
...@@ -13,4 +13,4 @@ tp3.o: tp3.c ...@@ -13,4 +13,4 @@ tp3.o: tp3.c
$(CC) -c $(CFLAGS) tp3.c $(CC) -c $(CFLAGS) tp3.c
clean: clean:
rm -f *.o tp3 rm -f *.o
tp3/tp3 0 → 100755
File added
...@@ -5,28 +5,53 @@ ...@@ -5,28 +5,53 @@
/* le um inteiro na faixa [0..MAX-1] */ /* le um inteiro na faixa [0..MAX-1] */
int ler_tamanho() { int ler_tamanho() {
printf("Insira o tamanho do vetor (entre 1 e MAX):\n"); printf("Insira o tamanho do vetor (entre 1 e %d):\n", MAX);
int n; int n;
scanf("%d", &n); scanf("%d", &n);
return n; return n;
} }
/* imprime os racionais apontados pelo vetor de ponteiros para racionais */ /* imprime os racionais apontados pelo vetor de ponteiros para racionais */
void imprimir_vetor_racional(defina os parametros) { void imprimir_vetor_racional(racional **vet, int tam) {
/* coloque aqui seu codigo */ int i;
for (i = 0; i < tam-1; i++) {
imprimir_r(*(vet + i));
printf(" ");
}
imprimir_r(*(vet + tam-1));
printf("\n");
} }
/* retorna um vetor de tam ponteiros para numeros racionais validos gerados aleatoriamente */ /* retorna um vetor de tam ponteiros para numeros racionais validos gerados aleatoriamente */
/* retorna NULL em caso de falha */ /* retorna NULL em caso de falha */
racional** aleatorio_vetor_racional(defina os parametros) { racional **aleatorio_vetor_racional(int tam) {
/* coloque aqui seu codigo */ racional **vet;
if ( !(vet = malloc(tam * sizeof(racional*))) )
return NULL;
int i;
for (i = 0; i < tam; i++) {
*(vet + i) = sortear_r();
}
return vet;
} }
/* retorna um vetor de tam ponteiros para numeros racionais que apontam em ordem crescente para os /* retorna um vetor de tam ponteiros para numeros racionais que apontam em ordem crescente para os
* racionais apontados pelo vetor recebido no parametro. Defina outras funcoes para te ajudar caso * racionais apontados pelo vetor recebido no parametro. Defina outras funcoes para te ajudar caso
* ache necessario */ * ache necessario */
racional** ordenar_vetor_racional(defina os parametros) { racional **ordenar_vetor_racional(racional **vet, int tam) {
/* coloque aqui seu codigo */
}
/* libera a memoria alocada em um vetor vet de tam ponteiros para numeros racionais */
racional **liberar_vetor_racional(racional **vet, int tam) {
int i;
for (i = 0; i < tam; i++) {
free(*(vet + i));
*(vet + i) = NULL;
}
free(vet);
vet = NULL;
return vet;
} }
int main() { int main() {
...@@ -44,7 +69,7 @@ int main() { ...@@ -44,7 +69,7 @@ int main() {
tam = ler_tamanho(); tam = ler_tamanho();
/* aloca v com tam ponteiros para racional */ /* aloca v com tam ponteiros para racional */
v = aletorio_vetor_racional(tam); v = aleatorio_vetor_racional(tam);
/* lembre-se que a funcao acima retorna NULL em caso de falha */ /* lembre-se que a funcao acima retorna NULL em caso de falha */
/* chama a funcao para ordenar o vetor */ /* chama a funcao para ordenar o vetor */
...@@ -52,11 +77,11 @@ int main() { ...@@ -52,11 +77,11 @@ int main() {
/* lembre-se que a funcao acima retorna 0 em caso de falha */ /* lembre-se que a funcao acima retorna 0 em caso de falha */
/* imprime o vetor ordenado */ /* imprime o vetor ordenado */
imprimir_vetor_racional(w, tam); imprimir_vetor_racional(v, tam);
/* libera toda memoria alocada dinamicamente */ /* libera toda memoria alocada dinamicamente */
/* nao esqueca de testar com valgrind para conferir */ /* nao esqueca de testar com valgrind para conferir */
/* coloque aqui seu codigo */ v = liberar_vetor_racional(v, tam);
return 0; return 0;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment