Ir ao conteúdo
  • Cadastre-se

blvsman

Membro Pleno
  • Posts

    30
  • Cadastrado em

  • Última visita

Tudo que blvsman postou

  1. Tenho uma Lista Ordenada, com nós que guarda dois valores:x e y. Sendo eles pontos em plano cartesiano. Gostaria de saber como faço pra achar o menor x e o menor y nessa lista com nós #ifndef LISTA_H #define LISTA_H #define TRUE 1 #define FALSE 0 typedef struct ponto NO; struct ponto { double x; double y; NO * prox; };
  2. Está certo ? #include "lista.h" typedef struct no_ NO; typedef struct item ITEM; struct item{ int chave; int posicao; char nome[20]; }; struct no_{ ITEM item; NO *proximo; }; struct lista_{ NO *inicio; } /* Criação e inicialização da lista */ LISTA* lista_criar(void){ LISTA *lista = (LISTA*) malloc(sizeof(LISTA)); if(lista != NULL){ lista->inicio = NULL; } return(lista); } /* Verifica se a lista está vazia */ boolean lista_vazia(LISTA *lista){ if(*lista->item == NULL){ return TRUE; } else{ return FALSE; } }
  3. @arfneto Eu ainda não aprendi a ideia de ter ponteiro para os dois lados, nem sabia que seria possível isso. Sobre de como colocaria os filmes na lista esqueci de mencionar isso mesmo, mas seria da seguinte forma: Cada filme novo que eu insiro na lista ele iria para a primeira posição, então se eu insiro um segundo filme o que era primeiro passa a ser o segundo e assim vai. E também é uma lista não ordenada.
  4. Eu tenho uma lista encadeada onde armazena nome do filme, posição da lista em que quer armazenar e a chave do filme (um código para busca). Essas 3 variáveis estão dentro de uma struct, eu quero usar uma função em que digitando a chave do filme eu verifico se o filme existe na lista. A minha ideia é o seguinte, eu estou querendo criar um ponteiro para apontar no nó da lista e verificar se a chave exista ali de fato. Mas a dúvida é: como criar esse ponteiro e como trabalhar com ele dentro da função. Deixarei abaixo mais ou menos a ideia do código e se possível já corrigir ou refazer o código por favor, pois é urgente e estou atrasado, rs. Obs: Aqui está apenas o .h, a main.c nada mais nada menos está lendo o comando em que o usuário digita para buscar uma chave #include "lista.h" typedef struct no_ NO; typedef struct item ITEM; struct item{ int chave; int posicao; char nome[20]; }; struct no_{ ITEM item; NO *proximo; }; struct lista_{ NO *inicio; } /* Criação e inicialização da lista */ LISTA* lista_criar(void){ LISTA *lista = (LISTA*) malloc(sizeof(LISTA)); if(lista != NULL){ lista->inicio = NULL; } return(lista); } /* Função em que busca o elemento na lista int comando = comando em que o usuário digita para buscar */ int lista_buscar(int chave, LISTA *lista, int comando){ if(comando == 5){ if(){ /* aqui eu queria verificar se a chave procurada é o primeiro elemento da lista Mas como ? Seria if(*inicio == chave) ?*/ } else{ /* caso a chave procurada não seja o primeiro elemento da lista Tava com a ideia de jogar um for e verificar cada nó da lista e verificar a chave, mas como ? } }
  5. Estou com dúvida na inicialização e criação da lista.Vi uma definição de criar uma lista e eu não entendi o "if( lista != NULL)", pois a lista já não vai começar sem nada ? Ela não seria = NULL ? typedef struct no_ NO; struct no_{ ITEM item; NO *proximo; }; struct lista_{ NO *inicio; } /* Criação e inicialização da lista */ LISTA* lista_criar(void){ LISTA *lista = (LISTA*) malloc(sizeof(LISTA)); if(lista != NULL){ lista->inicio = NULL; } return(lista); }
  6. @arfneto @V!OLADOR Eu entendi e achei ótima a explicação. Só me confirma uma coisa, então na struct lista_ o ponteiro "NO *inicio" está apontando pra struct no_ ?
  7. Olá, estou com dúvida a respeito desse código: typedef struct no_ NO; typedef struct lista_ LISTA; struct lista_{ NO *inicio; int profundidade; /* prof. da lista general */ }; struct no_{ union{ ITEM atomo; /*define o campo genérico que armazena atomo ou sublista */ NO *sublista; }info; int tipo; NO *prox; } Por que ela definiu as structs em cima das structs ? Qual a diferença entre definir uma "struct" e uma "typedef struct"? O "union" é uma struct dentro de uma struct ?
  8. blvsman

    C Make file em C

    Olá, gostaria de saber o que seria um Makefile e como criar um ?
  9. Eu uso o Linux Ubuntu e estou com um certo probleminha (talvez tosco) que não me incomodava, mas agora está incomodando. O relógio sempre fica errado, eu arrumo para o horário certo, mas sempre volta a bugar. Alguém sabe como resolver ?
  10. "Faça um programa que vai lendo cada caractere que o usuário digitar. Quando o usuário digitar o caractere 'x', o programa deve exibir todos os caracteres que foram digitados antes do 'x'." Minha dúvida é: como eu leio o "enter" do usuário para que não digite até completar o vetor, tipo quando ele aperta o enter é pro programa encerrar e mostrar os caracteres antes do x. Pela minha intuição, devo utilizar ponteiros, mas como utilizar ? #include <stdio.h> void show( char *s ); // Protótipo da função show( char *s ) int Dec( char ch ); // Protótipo da função Dec( char ch ); Obs: Dec = Decimal int main() { char str[200]; printf( "Entre com letras, x para encerrar\n" ); /////////// duvida do scanf ??? return 0; } // Corpo da função show( char *s ) void show( char *s ) { for( int u=0; s[u]!='\0'; u++ ) { // Só "letras" maiúsculas ou minúsculas if( ( Dec(s[u]) >= 65 && Dec(s[u]) <= 90) || (Dec(s[u]) >= 97 && Dec(s[u]) <= 122) ) printf( "%c ", s[u] == 'x' ? ' ' : s[u] ); } putchar( '\n' ); } // Corpo da função Dec( char ch ) int Dec( char ch ) { // Retorna o valor decimal do caracter. Tabela ASCII. return "%d", ch; }
  11. Olá, estou tentando editar um barchart e estou tendo um problema em acrescentar valores negativos no eixo-y. Já tentei mudar o domínio de y, mas não aparece os números abaixo do eixo 0 e sim a partir do eixo 0, ou seja, não consego mostrar a parte negativa do eixo-y. Alguma sugestão ? OBS: Usei a biblioteca d3 bar chart para fazer o gráfico.
  12. O problema deve estar na inicialização do seu notebook. Acesse a BIOS e vá em "Boot" e tenta fazer as seguintes alterações: Trocar modo Legacy pra UEFI, ou vice-versa. Desabilitar ou habilitar o modo de segurança do boot Reordene as prioridades de inicialização do sistema (tente colocar o ubuntu em primeiro) Caso um desses não dê certo, alguns notebooks não aparece o grub pra você selecionar qual sistema quer iniciar. Com isso, abra novamente a BIOS e vai em "Main" e habilita o "F12 BOOT MENU", quando sua máquina estiver iniciando fique pressionando o F12 para ver se apareça algo. Talvez essa configuração esteja em "Startup" no seu notebook e vai estar escrito "Boot device list F12 option". Se não conseguir localizar em nenhum desses lugares, tente dá uma fuçada e achar essa opção de ativar o F12, pois o seu notebook pode ter uma bios diferente dos demais.
  13. Você deixou o pendrive bootavel ? Se sim, tenta entrar nas configurações da BIOS da sua máquina, vai em "boot" e verifica a ordem de inicialização do sistema, veja se está em modo Legacy ou UEFI e veja se modo de segurança está habilitado ou não. Se você não botou seu pendrive, baixa um software chamado RUFUS e siga os procedimentos.
  14. Olá, estou querendo transformar uma variável int em que o usuário digita para uma variável string para eu verificar quantos algarismos o número tem. Eu tentei usar o : int n; char string[10]; itoa(n,&string,10); Mas na hora de executar ele dá erro sobre a função "itoa". Eu pesquisei na internet e parece que essa função não está mais sendo usada atualmente no Windows e Linux.
  15. @arfneto acho que entendi, mas como isso iria me ajudar a criar o vetor da struct ponto ?
  16. @arfneto Sim ! Para que eu possa fazer os cálculos futuramente dentro de um for.
  17. Olá, estou tendo dificuldades para alocar um ponteiro que está definido numa struct. Tenho que calcular a área de um polígono utilizando essas structs. O problema que estou tendo é: O campo vertices do registro poligono, que deve receber um vetor com as coordenadas dos vertices do polıgono no sentido anti-horario, deve ser alocado dinamicamente, exatamente do tamanho necessario. Só que não estou conseguindo fazer isso. Não estou sabendo associar alocação dinâmica com a struct. struct ponto{ float x; // coordenada x float y; // coordenada y }; struct poligono{ int N; // numero de vertices struct ponto *vertices // ponteiro para o vetor de vertices };
  18. Olá, também estava com esse erro. Consegui solucionar vendo um vídeo no youtube chamado "Corrigir erro no Linux quando ele não inicia (initramfs)", assista o vídeo e tente. Não dá pra passar os passos por aqui para você, porque o processo é meio longo.
  19. Olá, estou com um problema para utilizar o modo monitor no Kali Linux, onde faz a varredura de redes wifi próximas. Utilizo os comando airmon e airodump com as interfaces wlan0 e wlan0mon, porém só parece que está processando e não aparece nenhuma rede.
  20. Pelo que me lembro, é nas configurações avançadas na BIOS.
  21. O problema pode estar na BIOS do seu notebook, pois a sua máquina está com um certo comportamento na inicialização do sistema. Tenta ir na BIOS e ver as configurações na aba "boot", isso varia de marca para marca de computador por isso não consigo dar uma resposta tão exata para você.
  22. Bom, você definiu que maior = m[0][0] e menor = m[0][0], neste caso o maior número e o menor número já está definido por você na linha 0 coluna 0, você não deixou o programa escolher quem é o maior ou menor número da matriz. Você pode ter um número sela sendo menor que a variável 'maior' e/ou um número sela maior que a variável 'menor'. Tem um certo caso também em que sela pode ser 0, ou seja, 0 pode ser o menor número da linha e o maior número da coluna, então ele não vai cair ali na condição do if. O que eu recomendo é: criar um for para verificar as linhas e pega o menor número, guarda esse número numa variável auxiliar e depois criar um outro for pra verificar se existe um número maior que ele na coluna em que ele está. Se existir, não é sela.
  23. Olá, eu consegui fazer. Apenas fiz a diferença de B-A e printei o conjunto B junto com o conjunto A. Meio gambiarra ? Talvez, mas deu certo haha. De qualquer forma, agradeço a ajuda de todos.
  24. #include <stdio.h> #include <math.h> void uniao(int conjuntoA[], int conjuntoB[], int nelementosA, int nelementosB){ int uniao[60]; int cont; cont = 0; for(int i = 0; i < nelementosA; i++){ uniao[i] = conjuntoA[i]; cont++; } for(int i = 0; i < nelementosB; i++){ uniao[i + cont] = conjuntoB[i]; cont++; } for(int i = 0; i < cont; i++){ printf("%d ", uniao[i]); } printf("\n"); return; } int main(){ int conjA, conjB; int elementosA[29], elementosB[29]; scanf("%d", &conjA); // lendo os elementos de A for(int i = 0; i < conjA; i++){ scanf("%d", &elementosA[i]); } scanf("%d", &conjB); // lendo os elementos de B for(int j = 0; j < conjB; j++){ scanf("%d", &elementosB[j]); } uniao(elementosA, elementosB, conjA, conjB); return 0; }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!