Enviado em 11/08/2008 - 10:41h
Não consigo terminar esse trabalho quem pode me ajudar ai da um forcinha falta o exercicio Nº 4 e 5 ...desde ja agradeço
1) [2 pts] Elabore uma função int fatorial(int x) que receba um numero e retorna o fatorial.
#include <stdio.h>
int fatorial(int x)
{
if(x<= 1)
return 1;
else return x*fatorial(x-1);
}
int main()
{
int n;
printf("\n\nDigite um valor para x: ");
scanf("%d", &x);
printf("\nO fatorial de %d e' %d", x, fatorial(x));
return 0;
}
2) [3 pts] Elabore uma função int *retornaVetor() que retorna um ponteiro para um vetor de 5 elementos do tipo inteiro aleatórios, utilizando a função malloc para alocar o vetor e a função rand para armazenar os valores aleatório entre 1 e 50.
#include <stdio.h>
#include <stdlib.h>
int *retornavetor(int *pt);
main()
{
int n; //tamanho do vetor
n=50;
pt = (int*) malloc(n * sizeof(int));
if (!pt)
{
printf (" Erro Memoria Insuficiente ");
exit;
int vet[50], i;
retornavetor(vet);
printf("Resultado do VETOR povoado aleatoriamente: ");
for(i = 0; i < 50; i ++)
{
printf("%d\n",vet[i]);
}
printf("\n\n\n");
system("pause");
}
int *retornavetor(int *pt)
{
int r, i;
for(i = 0; i < 5; i ++)
{
r = rand() % 5;
pt[i] = r;
}
return pt;
}
3) [4 pts] Crie uma TAD LISTA ENCADEADA, com as operações de incluir e imprimir.
#include <stdio.h>
#include <stdlib.h>
#define MALLOC(x) ((x *) malloc (sizeof(x))) //Este define torna a utilização do malloc mais fácil
void insere (void);
void imprimir (void);
struct no{
int item;
struct no *proximo;
};
typedef struct no no_t;
no_t *primeiro, *novo, *ultimo;
int main (void)
{
int op;
primeiro = novo = ultimo = 0;
for (;;)
{
system("clear");
printf("\n1- Inserir");
printf("\n2- imprimir");
printf("\n3- Sair");
printf("\nSua opção: ");
scanf ("%d",&op);
switch(op){
case 1 : insere();
break;
case 2 : imprimir();
break;
case 3 : exit (0);
default: printf("Opcao Errada");
}
}
}
void insere (void)
{
int j;
system("clear");
printf("ITEM : ");
scanf ("%d",&j);
novo = MALLOC(no_t);
novo->proximo = 0;
novo->item = j;
if (primeiro == 0)
primeiro = novo;
else
ultimo->proximo = novo;
ultimo=novo;
}
void imprimir (void)
{
no_t *p;
char s[80];
system("clear");
if (primeiro == 0)
{
printf("Lista Vazia");
return;
}
p = primeiro;
do{
printf("\nITEM %d",p->item);
p = p->proximo;
}while (p!=0);
printf("\n<S>air");
scanf("%s",&s);
}
}
4) [3 pts] Desenvolva um programa principal para receba um numero através do argumentos argc e argv e chame a função fatorial, chame a função retornaVetor() e imprima os valores armazenador no vetor. Criar, incluir os valores armazenado no vetor e imprimir o conteúdo da lista encadeada.?????
5) [8 pts] Dada os valores: 48 30 14 56 88 34 51 32 (Mantenha os passos)
a) Ordene utilizando o método de seleção
b) Ordene utilizando o método de Bolha
c) Ordene utilizando o método de HeapSort
d) Insira os valores acima em uma arvore binária.
1) [2 pts] Elabore uma função int fatorial(int x) que receba um numero e retorna o fatorial.
#include <stdio.h>
int fatorial(int x)
{
if(x<= 1)
return 1;
else return x*fatorial(x-1);
}
int main()
{
int n;
printf("\n\nDigite um valor para x: ");
scanf("%d", &x);
printf("\nO fatorial de %d e' %d", x, fatorial(x));
return 0;
}
2) [3 pts] Elabore uma função int *retornaVetor() que retorna um ponteiro para um vetor de 5 elementos do tipo inteiro aleatórios, utilizando a função malloc para alocar o vetor e a função rand para armazenar os valores aleatório entre 1 e 50.
#include <stdio.h>
#include <stdlib.h>
int *retornavetor(int *pt);
main()
{
int n; //tamanho do vetor
n=50;
pt = (int*) malloc(n * sizeof(int));
if (!pt)
{
printf (" Erro Memoria Insuficiente ");
exit;
int vet[50], i;
retornavetor(vet);
printf("Resultado do VETOR povoado aleatoriamente: ");
for(i = 0; i < 50; i ++)
{
printf("%d\n",vet[i]);
}
printf("\n\n\n");
system("pause");
}
int *retornavetor(int *pt)
{
int r, i;
for(i = 0; i < 5; i ++)
{
r = rand() % 5;
pt[i] = r;
}
return pt;
}
3) [4 pts] Crie uma TAD LISTA ENCADEADA, com as operações de incluir e imprimir.
#include <stdio.h>
#include <stdlib.h>
#define MALLOC(x) ((x *) malloc (sizeof(x))) //Este define torna a utilização do malloc mais fácil
void insere (void);
void imprimir (void);
struct no{
int item;
struct no *proximo;
};
typedef struct no no_t;
no_t *primeiro, *novo, *ultimo;
int main (void)
{
int op;
primeiro = novo = ultimo = 0;
for (;;)
{
system("clear");
printf("\n1- Inserir");
printf("\n2- imprimir");
printf("\n3- Sair");
printf("\nSua opção: ");
scanf ("%d",&op);
switch(op){
case 1 : insere();
break;
case 2 : imprimir();
break;
case 3 : exit (0);
default: printf("Opcao Errada");
}
}
}
void insere (void)
{
int j;
system("clear");
printf("ITEM : ");
scanf ("%d",&j);
novo = MALLOC(no_t);
novo->proximo = 0;
novo->item = j;
if (primeiro == 0)
primeiro = novo;
else
ultimo->proximo = novo;
ultimo=novo;
}
void imprimir (void)
{
no_t *p;
char s[80];
system("clear");
if (primeiro == 0)
{
printf("Lista Vazia");
return;
}
p = primeiro;
do{
printf("\nITEM %d",p->item);
p = p->proximo;
}while (p!=0);
printf("\n<S>air");
scanf("%s",&s);
}
}
4) [3 pts] Desenvolva um programa principal para receba um numero através do argumentos argc e argv e chame a função fatorial, chame a função retornaVetor() e imprima os valores armazenador no vetor. Criar, incluir os valores armazenado no vetor e imprimir o conteúdo da lista encadeada.?????
5) [8 pts] Dada os valores: 48 30 14 56 88 34 51 32 (Mantenha os passos)
a) Ordene utilizando o método de seleção
b) Ordene utilizando o método de Bolha
c) Ordene utilizando o método de HeapSort
d) Insira os valores acima em uma arvore binária.