Ir ao conteúdo
  • Cadastre-se

Eduarda Menezes da Silveira

Membros Juniores
  • Total de itens

    4
  • Registro em

  • Última visita

  • Qualificações

    N/D

Reputação

2

Sobre Eduarda Menezes da Silveira

  • Data de Nascimento 05/07/1999 (20 anos)

Informações gerais

  • Cidade e Estado
    Bagé/RS
  • Sexo
    Feminino
  1. Implementar em C uma árvore binária de pesquisa que armazena valores do tipo inteiro. O programa deve oferecer as seguintes opções para o usuário: 1) Inserir um elemento (informado pelo usuário); 2) Buscar um elemento (é fornecida uma chave e a função informa se encontrou ou não o elemento); 3) Imprimir o conteúdo da árvore (ao selecionar essa opção devem ser mostrados na tela os dados com o caminhamento pré-fixado a esquerda); 4) Imprimir o nível da árvore; 5) Liberar a árvore da memória e encerrar. Meu código é este, porém tenho dúvidas em como fazer o item 4 e 5. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include "arvore.h" struct arvore { struct _arvore *esq; int valor; struct arvore *dir; }; typedef struct arvore a; a *raiz = NULL; void Inserir(int x){ a *novo = NULL; a *aux = NULL, *auxOld = NULL; novo = malloc (sizeof(a)); novo -> valor = x; novo -> esq = NULL; novo -> dir = NULL; if (raiz == NULL){ raiz = novo; } else { aux = raiz; while (aux != NULL){ auxOld = aux; if (x < aux -> valor){ aux = aux -> esq; } else { aux = aux -> dir; } if (x < auxOld -> valor){ auxOld -> esq = novo; } else { auxOld -> dir = novo; } } } } void Buscar(int x){ setlocale (LC_ALL, ""); a *aux = NULL; aux = raiz; while (aux != NULL) { if (x == aux -> valor) { printf("Elemento encontrado.\n"); return; } else if (x < aux -> valor){ aux = aux -> esq; } else { aux = aux -> dir; } if (aux == NULL){ printf("Elemento não encontrado.\n"); } } } void PrefixEsq(a *aux){ if (aux == NULL){ return; } printf("%d ", aux -> valor); PrefixEsq(aux -> esq); PrefixEsq(aux -> dir); } void PrefixDir(a *aux) { if (aux == NULL) return; printf("%d ", aux -> valor); PrefixDir(aux -> dir); PrefixDir(aux -> esq); } void ImprimirPreEsq(){ PrefixEsq(raiz); printf("\n"); }
  2. Crie um programa em C que compare dois arquivos texto (execicio2 e exercicio2a) através da leitura de strings de 20 posições dos dois arquivos e verifique se os mesmos são iguais. Mostre uma mensagem na tela avisando ao usuário. #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> int main (){ char texto1[20], texto2[20]; FILE *arquivo; setlocale(LC_ALL, ""); if ((arquivo=fopen ("exercicio2.txt", "w")) == NULL){ printf ("Permissao negada.\n"); return 1; } else { printf ("Digite uma string:"); gets (texto1); fputs (texto1, arquivo); fclose (arquivo); } if ((arquivo=fopen ("exercicio2a.txt", "w"))== NULL){ printf("Permissão negada.\n"); return 1; } else { printf("Digite uma string:"); gets (texto2); fputs (texto2, arquivo); fclose (arquivo); } /*if (fscanf(arquivo, "%s", texto1) == fscanf(arquivo, "%s", texto2)){ printf("Conteúdo dos arquivos iguais.\n"); return 1; }*/ if ((strcmp(arquivo,texto1) == strcmp(arquivo,texto2))){ printf("Conteúdo dos arquivos iguais.\n"); return 1; } else { printf("Conteúdo dos arquivos diferente.\n"); fclose(arquivo); } } A minha duvida é em como fazer para que os arquivos sejam comparados
  3. Defina a função quadrados_inv que recebe como argumento um número natural n e devolve a lista dos quadrados perfeitos até n, por ordem decrescente. Entrada quadrados_inv(6) Saída [36, 25, 16, 9, 4, 1] Estou com divida na parte de como fazer o quadrado perfeito e aparecer em ordem decrescente. Tenho isso: #include <stdio.h> int quadros_inv (int n){ int quadrado; if (n==0){ printf("%d\n", n); } else { printf("%d\n", n); return quadros_inv(n-1); } } int main(){ quadros_inv(6); return 0; }
  4. O sistema deverá, utilizando a linguagem C, receber 6 apostas (6 números cada aposta no intervalo de 1 a 60) e armazenar estas informações em uma matriz quadrada de ordem 6. Um vetor chamado vetGabarito deve armazenar 6 números, que são os gabaritos da aposta. Com a matriz de apostas preenchidas, o sistema deverá: a. Mostrar a soma da diagonal principal da matriz de apostas. b. Transferir todas as apostas para vetores de inteiros de 6 posições. c. Indicar quantos números pares e ímpares foram apostados. d. Indicar quantos acertos o jogador obteve para cada conjunto de aposta. Estou com dificuldade de fazer letra d. Meu código esta ai mas esta dando erro (mostrando a quantidade errada de acertos) na parte da letra d. #include <stdio.h> #include <time.h> #include <conio.h> #include <stdlib.h> int main (void){ int mat [6][6], vetGabarito[6], vet1[6], vet2[6], vet3[6], vet4[6], vet5[6], vet6[6], l, c, soma_diagonal=0, impar=0, par=0; srand (time (NULL)); for (l=0; l<6; l++){ for (c=0; c<6; c++){ printf ("Digite a sua aposta de 1 a 60:"); scanf ("%d", &mat [l][c]); } } for (l=0; l<6; l++){ for (c=0; c<6; c++){ printf (" %d", mat [l][c]); } printf ("\n"); } for (l=0; l<6; l++){ for (c=0; c<6; c++){ if (l==c){ soma_diagonal=soma_diagonal+mat[l][c]; } } } for (c=0; c<6; c++){ vet1[c]= mat [0][c]; vet2[c]= mat [1][c]; vet3[c]= mat [2][c]; vet4[c]= mat [3][c]; vet5[c]= mat [4][c]; vet6[c]= mat [5][c]; printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet1[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet2[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet3[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet4[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet5[c]); printf ("Aposta do jogador na rodada [%d] e %d\n", c, vet6[c]); } for (l=0; l<6; l++){ for (c=0; c<6; c++){ if ((mat[l][c]%2)==0){ par++; } else { impar++; } } } srand (time (NULL)); for (c=0;c<6;c++){ vetGabarito[c]=rand()%10; } for (c=0; c<6; c++){ printf (" %d", vetGabarito[c]); printf ("\n"); } for (c=0; c<6; c++){ vet1[0]==vetGabarito[c]; vet2[1]==vetGabarito[c]; vet3[2]==vetGabarito[c]; vet4[3]==vetGabarito[c]; vet5[4]==vetGabarito[c]; vet6[5]==vetGabarito[c]; } printf ("A soma da diagonal da matriz e: %d\n", soma_diagonal); printf ("A quantidade de numeros pares foi %d, e de numeros impares foi %d\n", par, impar); printf ("O jogador na primeira rodada teve %d de acertos.\n", vet1[0]); printf ("O jogador na segunda rodada teve %d de acertos.\n", vet2[1]); printf ("O jogador na terceira rodada teve %d de acertos.\n", vet3[2]); printf ("O jogador na quarta rodada teve %d de acertos.\n", vet4[3]); printf ("O jogador na quinta rodada teve %d de acertos.\n", vet5[4]); printf ("O jogador na sexta rodada teve %d de acertos.\n", vet6[5]); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...