Ir ao conteúdo
  • Cadastre-se

Cristian Leoncini

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

5
  1. Boa tarde, meu professor passou alguns exercícios e não estou conseguindo resolver, já tentei de várias maneira e até agora nada. O objetivo do exercício é dar as instruções pro banco de dados. - Para o professor idProfessor = 10 a quantidades de alunos de sua própria cidade; - Os cinco cursos com maior número de alunos e em ordem decrescente de matriculados; - Os cursos que possuem professores mas não possuem alunos matriculados;
  2. @arfneto entendi sim, obrigado, agora o programa está tudo certinho, só a função de busca está dando erro #include <stdio.h> #include <stdlib.h> #include <string.h> struct arvore { char nome[100]; char email[100]; char endereco[250]; char dataAniversario[10]; int idade; struct arvore *esq; struct arvore *dir; }; typedef struct arvore arv; arv *insere(arv *raiz, arv arvoree) { arv *a; if (raiz == NULL) { a = (arv *)malloc(sizeof(arv)); strcpy(a->nome, arvoree.nome); strcpy(a->email, arvoree.email); strcpy(a->endereco, arvoree.endereco); strcpy(a->dataAniversario, arvoree.dataAniversario); a->idade = arvoree.idade; a->esq = NULL; a->dir = NULL; return a; } else if (strcmp(raiz->nome, arvoree.nome) > 0) { printf("Batata"); raiz->dir = insere(raiz->dir, arvoree); } else { printf("ola"); raiz->esq = insere(raiz->esq, arvoree); } return raiz; } void imprimePreOrdem(arv *raiz) { if (raiz != NULL) { printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); imprimePreOrdem(raiz->esq); imprimePreOrdem(raiz->dir); } } void imprimeEmOrdem(arv *raiz) { if (raiz != NULL) { imprimeEmOrdem(raiz->esq); printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); imprimeEmOrdem(raiz->dir); } } void imprimePosOrdem(arv *raiz) { if (raiz != NULL) { imprimePosOrdem(raiz->esq); imprimePosOrdem(raiz->dir); printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); } } void imprimir(arv *raiz) { int escolha = 0; printf("[1]Listar todos os dados em pre ordem\n[2]Listar todos os dados em ordem\n[3]Listar todos os dados em pos ordem\n"); scanf("%i", &escolha); if (escolha == 1) { imprimePreOrdem(raiz); } else if (escolha == 2) { imprimeEmOrdem(raiz); } else if (escolha == 3) { imprimePosOrdem(raiz); } } void busca(arv nomeBusca, arv *raiz) { printf("\nInsira o nome de busca:\n"); fgets(nomeBusca.nome, 50, stdin); if (strcmp(nomeBusca.nome, raiz->nome) == 0) { printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); } else { printf("\n\nPessoa nao encontrada\n\n"); } busca(nomeBusca, raiz->esq); busca(nomeBusca, raiz->dir); } int main() { arv arvoree; arv *raiz = NULL; arv nomeBusca; int opcao; int a = 1; while (a == 1) { printf("\n\n[1]Inserir\n[2]Buscar\n[3]Listar todos os dados\n[4]Sair\n"); scanf("%i", &opcao); switch (opcao) { case 1: { getchar(); printf("\nInsira o nome:\n"); fgets(arvoree.nome, 50, stdin); printf("\nInsira o email:\n"); fgets(arvoree.email, 50, stdin); printf("\nInsira o endereco:\n"); fgets(arvoree.endereco, 50, stdin); printf("\nInsira a data de aniversario:\n"); fgets(arvoree.dataAniversario, 50, stdin); printf("\nInsira a idade:\n"); scanf("%i", &arvoree.idade); getchar(); raiz = insere(raiz, arvoree); break; } case 2: { busca(nomeBusca, raiz); system("PAUSE"); break; } case 3: { imprimir(raiz); break; } case 4: { exit(0); break; } } } }
  3. @arfneto Estou fazendo assim por ser um trabalho de faculdade, e o professor pede que seja arvore binária
  4. @Mauro Britivaldo eu dei uma mudada no código mas continua com o mesmo problema #include<stdio.h> #include<stdlib.h> #include<string.h> struct arvore{ char nome[100]; char email[100]; char endereco[250]; char dataAniversario[10]; int idade; struct arvore *esq; struct arvore *dir; }; typedef struct arvore arv; arv* insere(arv *raiz, arv arvoree){ int i=0; arv *a; if(i==NULL){ a=(arv*)malloc(sizeof(arv)); strcpy(a->nome,arvoree.nome); strcpy(a->email,arvoree.email); strcpy(a->endereco,arvoree.endereco); strcpy(a->dataAniversario,arvoree.dataAniversario); a->idade=arvoree.idade; a->esq=NULL; a->dir=NULL; }else if(strcmp(raiz->nome,arvoree.nome) > 0){ a->esq = insere(raiz->esq, arvoree); }else{ a->dir = insere(raiz->dir, arvoree); } i++; return a; } void imprimePreOrdem(arv* raiz){ if(raiz!=NULL){ printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); imprimePreOrdem(raiz->esq); imprimePreOrdem(raiz->dir); } } void imprimeEmOrdem(arv* raiz){ if(raiz!=NULL){ imprimeEmOrdem(raiz->esq); printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); imprimeEmOrdem(raiz->dir); } } void imprimePosOrdem(arv* raiz){ if(raiz!=NULL){ imprimePosOrdem(raiz->esq); imprimePosOrdem(raiz->dir); printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); } } void imprimir(arv* raiz){ int escolha=0; printf("[1]Listar todos os dados em pre ordem\n[2]Listar todos os dados em ordem\n[3]Listar todos os dados em pos ordem\n"); scanf("%i", &escolha); if(escolha==1){ imprimePreOrdem(raiz); system("PAUSE"); }else if(escolha==2){ imprimeEmOrdem(raiz); system("PAUSE"); }else if(escolha==3){ imprimePosOrdem(raiz); system("PAUSE"); } } void busca(arv nomeBusca, arv* raiz){ printf("\nInsira o nome de busca:\n"); gets(nomeBusca.nome); if(strcmp(nomeBusca.nome, raiz->nome) == 0){ printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); }else{ printf("\n\nPessoa nao encontrada\n\n"); system("PAUSE"); } busca(nomeBusca, raiz->esq); busca(nomeBusca, raiz->dir); } int main(){ arv arvoree; arv *raiz; arv nomeBusca; int opcao; printf("\n\n[1]Inserir\n[2]Buscar\n[3]Listar todos os dados\n[4]Sair\n"); scanf("%i", &opcao); getchar(); system("cls"); while(opcao!=NULL){ switch(opcao){ case 1:{ printf("\nInsira o nome:\n"); gets(arvoree.nome); system("cls"); printf("\nInsira o email:\n"); gets(arvoree.email); system("cls"); printf("\nInsira o endereco:\n"); gets(arvoree.endereco); system("cls"); printf("\nInsira a data de aniversario:\n"); gets(arvoree.dataAniversario); system("cls"); printf("\nInsira a idade:\n"); scanf("%i", &arvoree.idade); system("cls"); raiz=insere(raiz, arvoree); return main(); break; } case 2:{ busca(nomeBusca, raiz); system("PAUSE"); return main(); break; } case 3:{ imprimir(raiz); return main(); break; } case 4:{ exit(0); break; } } } }
  5. Bom dia! Estou com um projeto de uma agenda em arvore binária, onde eu armazeno o nome, email, endereço, data de aniversário e idade. A inserção dos dados esta funcionando, mas quando eu mando ele imprimir em uma outra função o programa trava. Meu código: #include<stdio.h> #include<stdlib.h> #include<string.h> struct arvore{ char nome[100]; char email[100]; char endereco[250]; char dataAniversario[10]; int idade; struct arvore *esq; struct arvore *dir; }; typedef struct arvore arv; arv* insere(arv *raiz, arv arvoree){ int i=0; arv *a; if(i==NULL){ a=(arv*)malloc(sizeof(arv)); strcpy(a->nome,arvoree.nome); strcpy(a->email,arvoree.email); strcpy(a->endereco,arvoree.endereco); strcpy(a->dataAniversario,arvoree.dataAniversario); a->idade=arvoree.idade; a->esq=NULL; a->dir=NULL; }else if(strcmp(raiz->nome,arvoree.nome) > 0){ a->esq = insere(raiz->esq, arvoree); }else{ a->dir = insere(raiz->dir, arvoree); } i++; return a; } void imprimePreOrdem(arv* raiz){ printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); imprimePreOrdem(raiz->esq); imprimePreOrdem(raiz->dir); } void imprimeEmOrdem(arv* raiz){ imprimeEmOrdem(raiz->esq); printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); imprimeEmOrdem(raiz->dir); } void imprimePosOrdem(arv* raiz){ imprimePosOrdem(raiz->esq); imprimePosOrdem(raiz->dir); printf("\nNome: %s\n", raiz->nome); printf("Email: %s\n", raiz->email); printf("Endereco: %s\n", raiz->endereco); printf("Aniversario: %s\n", raiz->dataAniversario); printf("Idade: %i anos\n\n\n", raiz->idade); } void imprimir(arv* raiz){ int escolha=0; printf("[1]Listar todos os dados em pre ordem\n[2]Listar todos os dados em ordem\n[3]Listar todos os dados em pos ordem\n"); scanf("%i", &escolha); if(escolha==1){ imprimePreOrdem(raiz); }else if(escolha==2){ imprimeEmOrdem(raiz); }else if(escolha==3){ imprimePosOrdem(raiz); } } int main(){ arv arvoree; arv *raiz; int opcao; printf("\n[1]Inserir\n[2]Buscar\n[3]Listar todos os dados\n[4]Sair\n"); scanf("%i", &opcao); getchar(); system("cls"); while(opcao!=NULL){ switch(opcao){ case 1:{ printf("\nInsira o nome:\n"); gets(arvoree.nome); system("cls"); printf("\nInsira o email:\n"); gets(arvoree.email); system("cls"); printf("\nInsira o endereco:\n"); gets(arvoree.endereco); system("cls"); printf("\nInsira a data de aniversario:\n"); gets(arvoree.dataAniversario); system("cls"); printf("\nInsira a idade:\n"); scanf("%i", &arvoree.idade); system("cls"); raiz=insere(raiz, arvoree); return main(); break; } case 2:{ break; } case 3:{ imprimir(raiz); return main(); break; } case 4:{ exit(0); break; } } } }
  6. @AdrianoSiqueira muito obrigado! ajudou bastante
  7. #include<stdio.h> #include<stdlib.h> #include<time.h> int main(){ int vet[10], i, par=0, impar=0, v[10]; srand(time(NULL)); for(i=0;i<10;i++){ printf(" %i ", rand() %100); if(vet[i] % 2 == 0){ par++; }else{ impar++; } } printf("\n\n%i numeros pares e %i numeros impares\n", par, impar); } Eu preciso resolver um exercicio, porém só consegui resolver até a parte de que mostra quantos números pares e impares existem. Exercício:

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