Pesquisar na Comunidade
Mostrando resultados para as tags ''estrutura de dados''.
Encontrado 15 registros
-
Programa está inserindo normalmente, mais não está ordenando e nem mostrando os itens ordenados. obs1: Usando bubblesort obs2: ordenando primeiro por nome e depois por idade #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct lista { int qtd; struct Aluno * inicio; }lista; typedef struct Aluno { char nome[30]; int idade; struct Aluno * prox; }Aluno; lista * aloca_lista(); Aluno * aloca_aluno(); int inserir(lista *l, char * nome, int idade); void mostrar(lista *l); int main() { char aux[30]; int i,aux2,aux3,aux4,tam=3,pass,trocou; Aluno * aluno[3]; lista * l1; l1 = aloca_lista(); aux4 = l1->inicio; int idade; char nome[30]; for(i=0; i<3; i++) { printf("\nDigite o nome do aluno[%d]: ",i+1); fflush(stdin); gets(nome); printf("\nDigite o numero: "); fflush(stdin); scanf("%d",&idade); inserir(l1,nome,idade); } trocou = 1; for(pass=0; pass<tam-1 && trocou==1; pass++) { trocou = 0; for(i=0; i<tam-pass-1; i++) { if(strcmp(aluno[i]->nome,aluno[i+1]->nome) == 0) { if(aluno[i]->idade > aluno[i+1]->idade) { aux2 = aluno[i]->idade; aluno[i]->idade = aluno[i]->prox->idade; aluno[i]->prox->idade = aux2; strcpy(aux,aluno[i]->nome); strcpy(aluno[i]->nome,aluno[i+1]->nome); strcpy(aluno[i+1]->nome,aux); trocou = 1; } } else if(strcmp(aluno[i]->nome,aluno[i+1]->nome)>0) { aux3 = aluno[i]->idade; aluno[i]->idade = aluno[i+1]->idade; aluno[i+1]->idade = aux3; strcpy(aux,aluno[i]->nome); strcpy(aluno[i]->nome,aluno[i+1]->nome); strcpy(aluno[i+1]->nome,aux); trocou = 1; } } } printf("\nmostrando:\n\n"); mostrar(l1); return 0; } lista * aloca_lista() { lista * novo; novo = (lista*)malloc(sizeof(lista)); novo->qtd = 0; novo->inicio = NULL; return novo; } Aluno * aloca_aluno() { Aluno * novo; novo = (Aluno*)malloc(sizeof(Aluno)); novo->idade = 0; strcpy(novo->nome," "); novo->prox = NULL; return novo; } int inserir(lista *l,char * nome, int idade) { Aluno * novo, * aux; novo = aloca_aluno(); novo->idade = idade; strcpy(novo->nome,nome); if(l->inicio == NULL) { l->inicio = novo; } else { aux = l->inicio; while(aux->prox != NULL) { aux = aux->prox; } aux->prox = novo; } l->qtd++; return 1; } void mostrar(lista *l) { Aluno * aux; aux = l->inicio; while (aux != NULL) { printf("\nNome: %s",aux->nome); printf("\nIdade: %d",aux->idade); aux = aux->prox; } }
-
- c
- programação c
- (e %d mais)
-
Estou com um problema: Preciso criar funções de manipulação de contatos para uma agenda (criação, inserção, remoção, alteração...) de dados. Fiz o cabeçalho com as funções, entretanto, no arquivo de extensão .c não sei como vou definir a alteração do cadastro. Apenas ler novamente a entrada e subscrever? A struct é Contato, com os campos nome e telefone. void atualiza_Contato(Contato c*, char* nome, int* numero) { }
-
Boa noite, fiz um algorítimo de estrutura de dados. Coloquei todo meu conhecimento nele. Não estou conseguindo achar o erro. Deixo o enunciado do exercício abaixo! Se puderem me ajudar fico agradecido! "Faça um programa que crie duas filas F1 e F2, de tamanho 10, cada. Leia 20 números inteiros e, se o número lido for par, insira-o na fila F1 e, se for ímpar, na fila F2. Na sequência, caso o número lido seja múltiplo de 3, retirar um elemento da fila F1, armazenando-o em uma variável auxiliar e, depois, escreva-o no vídeo e insira-o na fila F2. Caso o número lido seja múltiplo de 5, retirar um elemento da fila F2, armazenando-o em uma variável auxiliar e, depois, escreva-o no vídeo e insira-o na fila F1. Um número pode ser tanto múltiplo de 3 quanto de 5 e, neste caso, apresente uma mensagem no vídeo e não faça nada nas filas, passando para a leitura do próximo número. Pare de ler quando já tiverem sido lidos os 20 números ou quando ocorrer overflow ou underflow em alguma fila." #include <iostream> using namespace std; int main() { int f=-1, r=-1, f1[10], f2[10], cont=0, val=0, aux=0, tam=9; do{ cout << "Informe um valor: " << endl; cin >> val; cout << " " << endl; if(val%2==0){ if(r==tam){ cout << "OVERFLOW!" << endl << endl; return 0; }else{ f1[++r]=val; } }else{ if(r==tam){ cout << "OVERFLOW!" << endl << endl; return 0; }else{ f2[++r]=val; } } if(val%3==0){ if(r==f){ cout << "UNDERFLOW!" << endl << endl; return 0; }else{ aux=f1[f+1]; f++; if(f==r){ f=r=-1; cout << "Valor retirado: " << aux << endl << endl; f2[++r]=aux; } } } if(val%5==0){ if(r==f){ cout << "UNDERFLOW!" << endl << endl; return 0; }else{ aux=f2[f+1]; f++; if(f==r){ f=r=-1; cout << "Valor retirado: " << aux << endl << endl; f1[++r]=aux; } } } if(val%3==0 && val%5==0){ cout << "Numero mulitplo de 3 e 5!" << endl << endl; } cont++; }while(cont < 20); return 0; }
-
Boa noite. Preciso de ajuda neste algoritmo em c++ da matéria de estrutura de dados. Não sei por onde começar. Obrigado! Fazer um programa que utiliza um vetor X de 10 posições e lê 20 valores inteiros situados no intervalo [1,99]. Utilize, ainda, duas variáveis, T1 e T2 inicializadas, respectivamente, com 0 e 11, de tal forma que, no vetor X, tenha-se duas pilhas de bases opostas. Para cada valor lido: se for par e maior do que 50, inseri-lo na pilha 1; se for par e menor ou igual a 50, então retirar o elemento do topo da pilha 1 e escrevê-lo; se for ímpar e maior do que 50, inseri-lo na pilha 2; se o valor lido for ímpar e menor ou igual a 50, então retirar o valor do topo da pilha 2 e escrevê-lo; se ocorrer uma situação de UNDERFLOW, escreva uma mensagem e ignore o valor lido passando a ler o novo valor; se ocorrer OVERFLOW ou se já tiverem sido lidos 20 valores, então escrever o conteúdo das duas pilhas e terminar o programa;
-
Gente, quando eu insiro uma quantidade menor de número em "Informe o telefone" ele fica bugando, se eu por assim com 11 número, ele buga 81955556666, se eu por somente 9 números ele roda normal, alguém sabe o que possa ser?? Normal: com bug:
-
Olá gostaria de ajuda com o programa abaixo, é um trabalho escolar onde devo usar lista dinâmica, lista duplamente ligada e arvore binária. // Lista Dinamica struct pessoa { int cpf; char nome[50]; int tel; }p [10]; void adicionar(); void menu(); int opcao; int LD_posicao = 0; void inicializar(); void listar(); //----------------------// //Lista DUplamente Ligada struct no { struct no *anterior; char *dado; struct no *proximo; }; struct no *novo_no(char *dado); void ornenar_no(char dado); void adicionar_no_final(); void adicionar_no_inicio(); void adicionar_no_meio(); struct no *inicio; struct no *novo; struct no *aux; struct no *anterior; char LDL_nome[50]; // int main() { inicializar(); opcao = 0; while(opcao !=3) { menu(); switch(opcao) { case 1: adicionar(); break; case 2: listar(); break; } } return 0; } void inicializar() { } void menu() { printf("1 - Adicionar\n"); printf("2 - Listar\n"); printf("3 - AdicionarOrdenando\n"); scanf("%d", &opcao); } void adicionar() { printf("Digite o cpf:\n "); scanf("%d", &p[LD_posicao].cpf); printf("Digite o tel:\n "); scanf("%d", &p[LD_posicao].tel); printf("Digite o nome:\n "); fflush(stdin); scanf("%s",p[LD_posicao].nome); printf("recebeu antes -> %s ", p[LD_posicao].nome); Gostaria de passar como parâmetro esse conteúdo "nome" (que foi alocado em uma estrutura simples) para estrutura "struct no *novo_no(char *dado)", isso é possível? Se não, como faço pra fazer uma alocação dinâmica de memoria usando uma variável/vetor do tipo char. ordenar_no(p[LD_posicao].nome); LD_posicao++; } void listar_LD() { int i; for(i = 0; i < LD_posicao; i++) { printf("nome: %s - ", p.nome); printf("cpf: %d - ", p.cpf); printf("tel: %d \n", p.tel); } } struct no *novo_no(char *dado) como posso mudar essas estutura para que ela trabalhe alocando variavel/ vetor do tipo char? { struct no *n; n = malloc(sizeof(struct no)); if(!n) { printf("não consegui alocar memoria!\n"); exit(-1); } n->anterior = 0; n->dado=dado; n->proximo = 0; printf("n->dado %s \n", n->dado); printf("dado %s \n",&dado); return n; } void ordenar_no(char *dado) { printf("recebeu depois -> %s \n ", dado); // PROBLEMA ESTA NA LINHA 134 (novo=novo_no(*dado)) , NOVO NÃO ESTA RECEBENDO novo_no(*dado); //n->dado RECEBE O VALOR DE DADO POREM DE ALGUMA FORMA NÃO RETORNA PARA O PARAMETRO (*dado) da funcao *novo_no novo = novo_no(*dado); printf("novo-> %s \n", *novo); if(inicio == 0) { inicio = novo; printf("inicio primeiro if= %s\n",inicio); printf("inicio->dado= %s\n",inicio->dado); } else { printf("inicio->dado segundo if = %s\n", inicio->dado); printf("*dado = %s\n", *dado); // decidir aonde inserir if(strcmp (inicio->dado,dado) == 1) adicionar_no_inicio(); else { aux = inicio; while((aux->proximo != 0) && (strcmp (aux->dado,dado) == -1)) { aux = aux->proximo; } if(aux->proximo == 0 && (strcmp (dado,aux->dado) == 1)) adicionar_no_final(); else adicionar_no_meio(); } } } Observação: o programa esta incompleto mesmo.
- 3 respostas
-
- estrutura de dados
- alocação dinamica
- (e %d mais)
-
Primeiro obrigado já pela ajuda, segundo estou aprendendo C agora. Estou fazendo um Trabalho em c, em que preciso ordenar o vetor de struct, fiz a função bubblesort, o programa compila certinho mas quando apresento o vetor ordenado ele embaralha tudo. Segue o código abaixo obs. não liguem pra meus comentários, e pra min não se perder rsr perguntas 1 - Como faço para na hora do BubbleSort está fazendo a troca ele perceba que o próximo índice do vetor esta vazio e pare? 2 - Também na hora de mostrar os dados do vetor ele perceba que o próximo índice está vazio? #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> //Estrutura Clientes struct Clientes{ char nome[255]; int cpf; char telefone[50]; }; //Função ordena vetor CPF void BubbleSort(int n,struct Clientes *clientes){ int i,j; for (i=n-1; i>=1;i--){ for(j=0;j<i;j++){ if(clientes[j].cpf>clientes[j+1].cpf){ /*TROCA*/ char temp; temp = *clientes[j].nome; *clientes[j].nome = *clientes[j+1].nome; *clientes[j+1].nome = temp; int temp1; temp1 = clientes[j].cpf; clientes[j].cpf = clientes[j+1].cpf; clientes[j+1].cpf = temp1; char temp2; temp2 = *clientes[j].telefone; *clientes[j].telefone = *clientes[j+1].telefone; *clientes[j+1].telefone = temp2; } } } } //Função busca binaria //Função Cadastra void CadastrarCliente(struct Clientes *clientes){ int count = 0; int Op = 1; while (Op > 0){ printf("\n Digite o nome do cliente \n"); printf("\n NOME: "); scanf ( "%s", clientes[ count ].nome ); printf("\n Digite o CPF do cliente \n"); printf("\n CPF: "); scanf ( "%d", &clientes[ count ].cpf ); printf("\n Digite o Telefone do cliente \n"); printf("\n TELEFONE: "); scanf ( "%s", &clientes[ count ].telefone ); printf("\n Deseja Cadastrar mais um Cliente? \n"); printf("\n 1 - SIM || 0 - NAO \n"); printf("\n Escolha: "); scanf("%d", &Op); count++; } } //--------------- main(){ //Vetor de Cleintes struct Clientes clientes[50]; //------------------------- //Menu /*Variavel de Escolha*/ int Op = 1; while(Op > 0){ printf("\n .:: ----- Sistemas de Clientes ----- ::.\n"); printf("\n ::::::::::::: MENU ::::::::::::: \n"); printf("\n 1 - Cadastrar Clientes | 2 - Mostra Cadastros \n"); printf("\n Escolha: "); scanf("%d", &Op); //Cadastro Cliente if(Op == 1){ CadastrarCliente(clientes); } //Fim Cadastro Cliente if(Op == 2){ BubbleSort(50, clientes); int i=0; for(i;i<=4;i++){ printf("Nome: %s\n", clientes [ i ].nome ); // Mesma coisa quando for exibir ou guarda usar sempre ||Vetor[posiçao].dado|| printf("CPF: %d\n", clientes [ i ].cpf ); // Mesma coisa quando for exibir ou guarda usar sempre ||Vetor[posiçao].dado|| } } //Retorno para o menu ou sair do programa printf("\n Deseja Retornar ao Menu? | SIM - 1 Nao - 0 | Escolha: "); scanf("%d",&Op); system("cls"); } //Fim do Menu } obrigado já pela ajuda
- 1 resposta
-
- bubblesort em vetor de struct
- c
-
(e %d mais)
Tags:
- bubblesort em vetor de struct
- c
- vetor
- vetor de struct
- ordenar
- ordenar vetor
- ordenar vetor de struct
- bubblesort
- bubblesort em c
- bubblesort em vetor
- bubblesort em vetor de struc
- c++
- java
- html
- batman
- estrutura de dados
- algoritimo
- busca e ordenação
- estruturando dados
- ordenando o vetor
- ajuda
- como faço
- como faço para ordenar um vetor de struct
-
Primeiro obrigado já pela ajuda, segundo estou aprendendo C agora. Estou fazendo um Trabalho em c, em que preciso ordenar o vetor de struct, fiz a função bubblesort, o programa compila certinho mas quando apresento o vetor ordenado ele embaralha tudo. Segue o código abaixo obs. não liguem pra meus comentários, e pra min não se perder rsr perguntas 1 - Como faço para na hora do BubbleSort está fazendo a troca ele perceba que o próximo índice do vetor esta vazio e pare? 2 - Também na hora de mostrar os dados do vetor ele perceba que o próximo índice está vazio? #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> //Estrutura Clientes struct Clientes{ char nome[255]; int cpf; char telefone[50]; }; //Função ordena vetor CPF void BubbleSort(int n,struct Clientes *clientes){ int i,j; for (i=n-1; i>=1;i--){ for(j=0;j<i;j++){ if(clientes[j].cpf>clientes[j+1].cpf){ /*TROCA*/ char temp; temp = *clientes[j].nome; *clientes[j].nome = *clientes[j+1].nome; *clientes[j+1].nome = temp; int temp1; temp1 = clientes[j].cpf; clientes[j].cpf = clientes[j+1].cpf; clientes[j+1].cpf = temp1; char temp2; temp2 = *clientes[j].telefone; *clientes[j].telefone = *clientes[j+1].telefone; *clientes[j+1].telefone = temp2; } } } } //Função busca binaria //Função Cadastra void CadastrarCliente(struct Clientes *clientes){ int count = 0; int Op = 1; while (Op > 0){ printf("\n Digite o nome do cliente \n"); printf("\n NOME: "); scanf ( "%s", clientes[ count ].nome ); printf("\n Digite o CPF do cliente \n"); printf("\n CPF: "); scanf ( "%d", &clientes[ count ].cpf ); printf("\n Digite o Telefone do cliente \n"); printf("\n TELEFONE: "); scanf ( "%s", &clientes[ count ].telefone ); printf("\n Deseja Cadastrar mais um Cliente? \n"); printf("\n 1 - SIM || 0 - NAO \n"); printf("\n Escolha: "); scanf("%d", &Op); count++; } } //--------------- main(){ //Vetor de Cleintes struct Clientes clientes[50]; //------------------------- //Menu /*Variavel de Escolha*/ int Op = 1; while(Op > 0){ printf("\n .:: ----- Sistemas de Clientes ----- ::.\n"); printf("\n ::::::::::::: MENU ::::::::::::: \n"); printf("\n 1 - Cadastrar Clientes | 2 - Mostra Cadastros \n"); printf("\n Escolha: "); scanf("%d", &Op); //Cadastro Cliente if(Op == 1){ CadastrarCliente(clientes); } //Fim Cadastro Cliente if(Op == 2){ BubbleSort(50, clientes); int i=0; for(i;i<=4;i++){ printf("Nome: %s\n", clientes [ i ].nome ); // Mesma coisa quando for exibir ou guarda usar sempre ||Vetor[posiçao].dado|| printf("CPF: %d\n", clientes [ i ].cpf ); // Mesma coisa quando for exibir ou guarda usar sempre ||Vetor[posiçao].dado|| } } //Retorno para o menu ou sair do programa printf("\n Deseja Retornar ao Menu? | SIM - 1 Nao - 0 | Escolha: "); scanf("%d",&Op); system("cls"); } //Fim do Menu } obrigado já pela ajuda
-
- bubblesort em vetor de struct
- c
-
(e %d mais)
Tags:
- bubblesort em vetor de struct
- c
- vetor
- vetor de struct
- ordenar
- ordenar vetor
- ordenar vetor de struct
- bubblesort
- bubblesort em c
- bubblesort em vetor
- bubblesort em vetor de struc
- c++
- java
- html
- batman
- estrutura de dados
- algoritimo
- busca e ordenação
- estruturando dados
- ordenando o vetor
- ajuda
- como faço
- como faço para ordenar um vetor de struct
-
Fala pessoal, beleza? Quem tiver começando aí na área de programação, tenho postado algumas aulas de C++ no youtube. este é o link do canal Partiu C++: Tento postar um novo tópico toda semana, alguns bem básicos outros já mais avançados, como estrutura de dados. Espero estar ajudando =) =)=)=
-
- c++
- estrutura de dados
- (e %d mais)
-
Boa noite, Estou com dificuldades em fazer uma pilha em C++, pois só conhecia Java. Se puderem me ajudar, agradeço desde já. A proposta do exercício é criar uma pilha alocada dinamicamente. Tem os métodos empilha, desempilha, topo (verificar o valor), getPosTopo, limparPilha e pilhaCheia. Tem que ser genérica. Os erros que não consegui solucionar foram: Streams are highly discouraged. [readability/streams] [3] na linha do #include<iostream>; error: ‘_’ was not declared in this scope * _it = _&pontVetor[0]; na última linha do construtor Pilha() * _it = _&pontVetor[0]; #include<iostream> template<typename T> class Pilha { private: int _tam; int _valorTopo; int _posiTopo; int * _pontVetor; int * _it; public: Pilha() { _tam = 10; _valorTopo = -1; _posiTopo = -1; * _pontVetor = new int[_tam]; * _it = _&pontVetor[0]; } Pilha<T>(int t) { _tam = t; _valorTopo = -1; _posiTopo = -1; * _pontVetor = new int[_tam]; * _it = _&pontVetor[0]; } void empilha(T dado) { if (PilhaCheia() != true) { (*_it++) = dado; _valorTopo = dado; _posiTopo = _posiTopo + 1; } else { std::cout << "A pilha está cheia." << std::endl; throw 20; } } T desempilha() { if (PilhaVazia() != true) { (*_it--); _valorTopo = _&pontVetor[*it]; _posiTopo = _posiTopo - 1; return _valorTopo; } else { std::cout << "A pilha está vazia." << std::endl; throw 21; } } T topo() { if (PilhaVazia() == true) { std::cout << "A pilha está vazia. Não possui topo." << std::endl; throw 22; } return _valorTopo; } int getPosTopo() { if (PilhaVazia() == true) { std::cout << "A pilha está vazia. Não possui topo." << std::endl; throw 22; } return _posiTopo; } void limparPilha() { _posiTopo = -1; } bool PilhaVazia() { return (_posiTopo == -1); } bool PilhaCheia() { return (_posiTopo == (_tam - 1)); } } Na realidade tem mais erros ocorrendo, porém o que está me impedindo de prosseguir é o erro do #include. Desculpem-me se postei em lugar que não deveria, ou se fiz algo de errado, esse é meu primeiro post. Muito obrigada pela atenção!! :)
- 1 resposta
-
Sou inciante e estou treinando alguns conceitos básicos na faculdade sobre listas encadeadas com ponteiros. Estou implementando uma lista onde quero fazer cadastro de moradores de um condomínio, onde serão cadastrados o nome e se possuem veículos dentro do apartamento. Porém na hora que chamo a função imprimir(), simplesmente não acontece nada, embora eu ache que a lógica esteja certa. Alguém pode me ajudar ? Segue o código: #include <iostream> #include <stdlib.h> #include <string> using namespace std; struct Morador { string nome; string veiculo; string placa; string condominio; Morador *proximo; }; struct ListaMoradres { Morador *primeiro; }; ListaMoradres lista; // CRIEI UMA LISTA GLOBAL, POIS QUERO QUE A LISTA CONTINUE COM OS CADASTROS MESMO APÓS O FIM DA EXECUÇÃO // DO MAIN (não SEI SE TA CERTO FAZER ISSO KKK) void inciar() { lista.primeiro = nullptr; } void inserir_Morador() { string nome = ""; string veiculo = ""; string placa = ""; string condominio = ""; int op; cout << "Digite o nome do morador\n"; cin >> nome; cout << "\nPossui veiculo?\n1-SIM\t2-não\n"; cin >> op; switch (op) { case 1: cout << "Carro ou Moto? 1- CARRO\t2- MOTO\n"; cin >> op; if (op == 1) { cout << "Digite placa:\n"; cin >> placa; veiculo = "(Carro)"; break; } else { cout << "Digite placa\n"; cin >> placa; veiculo = "Moto"; break; } case 2: veiculo = "não possui"; break; default: cout << "Opcao invalida\n"; break; } } if (lista.primeiro == nullptr) { Morador *primeiro_Morador = new Morador(); lista.primeiro = primeiro_Morador; primeiro_Morador->nome = nome; primeiro_Morador->veiculo = veiculo; primeiro_Morador->placa = placa; primeiro_Morador->condominio; primeiro_Morador->proximo = nullptr; cout << "Primeiro morador inserido com sucesso\n"; return; } else { Morador *ultimo = lista.primeiro; while (ultimo->proximo != nullptr) ultimo = ultimo->proximo; Morador *novo = new Morador(); ultimo->proximo = novo; novo->nome = nome; novo->veiculo = veiculo; novo->placa = placa; novo->condominio = condominio; novo->proximo = nullptr; cout << "Morador inserido com sucesso\n"; return; } } void imprimir() { Morador *inicio = lista.primeiro; while (inicio->proximo != nullptr) { cout << "\nNome: "+inicio->nome << endl; cout << "Veiculo: " + inicio->veiculo << endl; cout << "Placa: " + inicio->placa << endl; cout << "Condominio: " + inicio->condominio << endl; inicio = inicio->proximo; } return; } int main() { int op; cout << "1 - inciazlizar\t2 - inserir\t3 - imprimir\n"; cin >> op; switch (op) { case 1: inciar(); break; case 2: inserir_Morador(); break; case 3: imprimir(); break; default: cout << "Opcao invalida\n"; break; } main(); }
-
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <ctype.h> typedef struct No { int numero; struct No *pEsquerda; struct No *pDireita; } No; void criarArvore(No **pRaiz) { *pRaiz = NULL; } void inserir(No **pRaiz, int numero) { if(*pRaiz == NULL) { *pRaiz = (No *) malloc(sizeof(No)); (*pRaiz)->pEsquerda = NULL; (*pRaiz)->pDireita = NULL; (*pRaiz)->numero = numero; } else { if(numero < (*pRaiz)->numero) inserir(&(*pRaiz)->pEsquerda, numero); if(numero > (*pRaiz)->numero) inserir(&(*pRaiz)->pDireita, numero); } } int menu(){ int opcao; printf("\n\nO que deseja fazer? \n\n"); printf("0 - Sair\n"); printf("1 - Inserir Elementos\n"); scanf("%d", &opcao); return opcao; } int main(void){ int opcao; criarArvore(); do { opcao = menu(); switch (opcao) { case 0: break; case 1: inserir(); break; default: printf("\nOPCAO INVALIDA!"); } } while (opcao != 0); return 0; } Iniciei a implementação de inserção de elemento em árvore binária e, apresentou o seguinte erro: Linha Col. In function 'main': 49 2 [Error] too few arguments to function 'criarArvore' 13 6 [Note] declared here 56 2 [Error] too few arguments to function 'inserir' 18 6 [Note] declared here O que devo fazer?
-
*Linguagem C* [bUBBLE SORT] Por favor, meu professor passou uma lista de exercícios e não faço ideia de como fazer essa questão. Q1. Suponha dois vetores, um de registros de estudantes e outro de registros de funcionários. Cada registro de estudante contém membros para um último nome, um primeiro nome e um índice de pontos de graduação. Cada registro de funcionário contém membros para um último nome, um primeiro nome e um salário. Ambos os vetores são classificados em ordem alfabética pelo último e pelo primeiro nome. Dois registros com o último e o primeiro nome iguais não aparecem no mesmo vetor. Escreva uma função em C para conceder uma aumento de 10% a todo funcionário que tenha um registro de estudante cujo índice de pontos de graduação seja maior que 3.0. Obs.: As implementações de filas e pilhas devem ser realizadas utilizando listas encadeadas. Se alguém puder ajudar a começar serei muito grato.
-
- vetores
- estrutura de dados
- (e %d mais)
-
Boa tarde! Gostaria da ajuda de vocês com o seguinte código(ver abaixo),há um trecho dese código cujo,o qual não consigo entender(em destaque).Este código foi passado em sala de aula na faculdade e estou com dificuldade exatamente neste trecho. #include <stdio.h> #include <stdlib.h> #include <iostream> #include <string.h> #include <cstdlib> #include <time.h> using namespace std; int main() { int**m; int**m2; int linhas; int colunas; cout << "Indique o numero de linhas" << endl; cin >> linhas; cout << "Indique o numero de colunas" << endl; cin >> colunas; cout << " aqui pediu dados e mostrou" << endl; //======================================================== m = new int*[linhas]; m2 = new int*[linhas]; for (int i = 0; i < linhas; i++) { m[i] = new int[colunas]; m2[i] = new int[colunas]; } cout << "aqui inicializou os ponteiro" << endl; //======================================================== srand(time(NULL)); int cont = 1; for (int j = 0; j < linhas; j++) { for (int k = 0; k < colunas; k++) { m[j][k] = (5 + rand() % 10); m2[j][k] = m[j][k]; } } cout << "m1" << endl; for (int j = 0; j < linhas; j++) { for (int k = 0; k < colunas; k++) { cout << m[j][k] << "\t"; } cout << endl; } cout << endl; cout << "Aqui preencheu com numeros aleatorios" << endl; //======================================================== int tamanho = 3; int mask = (tamanho - 1) / 2; int soma = 0, temp = 0, media = 0; for (int j = mask; j < linhas - mask; j++) { for (int k = mask; k < colunas - mask; k++) { for (int x = -mask; x <= mask; x++) { for (int y = -mask; y <= mask; y++) { soma = m[x + j][k + y] + temp; temp = soma; } } media = soma / (tamanho * tamanho); m2[j][k] = media; soma = 0; media = 0; cout << m2[j][k] << endl; } cout << endl; } for (int l = 0; l < linhas; l++) { for (int n = 0; n < colunas; n++) { m[l][n] = 0; cout << m[l][n] << endl; } cout << endl; } cout << "Aqui por fim a magica do algoritmo calcula a media e o termo medio" << endl; //======================================================== delete[] m; delete[] m2; system("pause"); }