Ir ao conteúdo
  • Cadastre-se

henrique Souza850

Membro Pleno
  • Posts

    54
  • Cadastrado em

  • Última visita

Tudo que henrique Souza850 postou

  1. @Midori Deu certinho aqui, eu so mudei do int pra ser como double as entradas haha mt obrigado
  2. #include <stdio.h> #include <stdlib.h> int main() { int i=0, grau, exp; int deriv[i]; double polin[i]; scanf("%d", &grau); if ((1 < grau) && (grau <=100)) { for (i = grau; i >= 0; i = i - 1) { scanf("%lf", &polin[i]); } exp = grau-1; for (i = grau; i >= 1; i = i - 1) { deriv[i - 1] = polin[i]*i; if (deriv > 0) { printf ("%dx^%i+", deriv[i - 1],exp); } else { printf ("%dx^%i", deriv[i - 1],exp); } exp -= 1; } return 0; } } Boa tarde pessoal, alguem poderia me ajudar nesse codigo? Eu fiz isso ate agora, e minha saida esta com alguns problemas, eu queria que a saida desse exatamente isso: 4 5.00 12.00 5.00 25.00 12.00 20x^3+36x^2+10x+25 RESULTADO ESPERADO Eu queria que desse esse resultado, desse jeitinho, mas nao sei porque esta dando assim no meu o resultado final: 4 5.00 12.00 5.00 25.00 12.00 20x^3+0x^2+10x^1+25x^0+ MEU RESULTADO Eu nao sei porque a segunda equação deu 0 e não 36, igual a cima, e esses "0" e "+" no final , eu queria que ficasse exatamente igual ao primeiro resultado ali que mostrei...
  3. @Midori Eu fiz assim, declarei duas variáveis como pediu, uma "double tam" e a outra "tam2=n" que recebe o valor de n... Aí coloquei dentro do loop do fgetc em baixo do "texto[i++] = ch" o incremento da variável. .. aí lá em baixo coloquei como divisão, e com uma nova variável coloquei "tamanho = tam/tam2;" aí dps tentei imprimir o valor de "tamanho" mas mesmo assim não deu... Devo estar fazendo algo errado ainda, eu já tentei dividir mas até agora não consegui Double tam, tam2=n; int tamanho; ... While do fgetc... tam++; .. .. tamanho = tam/tam2; printf ("", tamanho) ; Fiz desse jeito como pediu
  4. Alguém poderia me ajudar nesse programa, no último printf preciso imprimir o tamanho médio das strings de entrada que eu coloquei, eu já pesquisei na net em todo lugar mas não consigo fazer isso Ex: 8. "quantidade de entradas" AFA AIA ELA AMA ANA ANA ALININA ARARA RESPOSTA: TAMANHO MÉDIO = 3.75 Eu não consigo fazer uma função que percorra todas as minhas entras e calcule o tamanho médio delas, alguém poderia me ajudar?
  5. @Midori Muito obrigado Midori, exatamente isso que eu queria fazer... Achei bem interessante fazer isso com ponteiros igual a senhora fez, muito obrigado pela ajuda
  6. @Midori #include <stdlib.h> #include <stdio.h> #include <string.h> int main(void){ char caracter; char texto[100]; char inversa[100]; int cont=0, n, i, valor; scanf ("%d %c", &n, &caracter); if (0 <= n && n <= 200) { while (n-- >= 0){ while ( (texto[i]=fgetc(stdin)) != '\n') { if(texto[i] == caracter){ cont++; } } } cont++; } for(i=0; texto[i]; i++){ texto[i] = tolower(texto[i]); } strcpy(inversa, texto); strrev(inversa); valor = strcmp(texto, inversa); if (valor == 0){ valor++; } printf ("PALINDROMAS = %d", valor); printf ("\nFREQUENCIA = %d", cont); return 0; } Agora esta achando a frequencia certinho do que eu quero, o problema é que pra achar o palindromo ele so le a primeira linha de novo nao to conseguindo fazer ler todas estradas que eu coloquei e ir contando + 1 cada vez que for palindromo uma entrada...
  7. #include<stdio.h> #include<string.h> #include <ctype.h> int main() { int i, valor = 0; char palavra[15], inversa[15]; printf("\nDigite uma palavra: "); gets(palavra); //Converter a palavra digitada para minúsculas for(i = 0; palavra[i]; i++){ palavra[i] = tolower(palavra[i]); } //Copiar a palavra digitada para que seja invertida strcpy(inversa, palavra); //Inverter a palavra copiada strrev(inversa); valor = strcmp(palavra, inversa); if (valor == 0) printf("\n palindroma \n", palavra); return 0; } Poderia me ajudar nesse codigo pra achar o Palindromo de varias entradas? Esse codigo ele so ve uma palavra por vez e fala se é polindromo ou nao, eu estou tentando fazer com que ele recebesse um valor n(quantidade de entradas) e depois ele fosse tipo, na primeira entrada estava escrito "ANA", se for um palindromo ele contasse 1, dps ia pra segunda linha, se fosse polindromo contava mais um, e depois imprimia... Ex: 4 "numero de entradas" ANA "(string) se for polindromo contar 1 ARARA AMA ELA RESULT: PALINDROMOS = 3... "exibir a qtd de polindromos" Eu estou tentando fazer isso mas nao consigo..alguem poderia me dar uma ajuda?
  8. @Midori Perfeito deu certinho aqui, ficou bem mais enchuto o codigo... Eu fiz daquele jeito com varias coisas porque ainda tenho que achar o "palindromas" e o "tamanho medio" das entradas pra colocar dentro desse codigo, por isso estava um pouco ate confuso de entender haha, mas a parte da frequência deu certinho, gostei da logica que a senhora usou, muito obrigadoo e bora termina haha (acho que pra eu achar agora o palindromas e o tamanho medio acho que precisa ser feito em strings...)
  9. #include <stdlib.h> #include <stdio.h> #include <string.h> int main(void){ char texto[200]; char palavra[26]; int cont=0, i, j, n; scanf ("%d %s", &n, &palavra); if (0 <= n && n <= 200) { for (i=0; i<n; i++){ scanf ("%s", &texto); } } for (i=0; i<strlen(texto); i++){ for (j=0; j<strlen(palavra); j++){ if (texto[i] == palavra[j]){ cont++; } } } printf ("FREQUENCIA = %d", cont); return 0; } PESSOAL ESTOU COM UM PROBLEMA NESSE CODIGO MEU, ESTOU TENTANDO IMPRIMIR A FRERQUENCIA DOS CARACTERS QUE EU DIGITEI NA ENTRADA, MAS ELE SO LE A PRIMEIRA LINHA DA ENTRADA EXEMPLO: n= quantidade de entradas palavra= caracter que eu quero buscar em toda as linhas da entrada e somar pra colocar na frequencia 5 A " =quero 5 entradas e quero contar quantas vezes aparece a letra A" AAKS KSKSA SKSA SKSK AKSA FREQUENCIA = 6 Correto, aparece 6 vezes a letra A nas entradas.. No meu caso ele so le a primeira linha das entradas, nao to conseguindo fazer com que ele leia todas as entradas, alguem poderia me ajudar?
  10. Pessoal eu tenho uma duvida, como vocês pode ver no lado direito da foto foi o código em html que eu aprendi na facul, e no canto esquerdo foi o que eu aprendi estudando, vendo videos no yt e tal, queria saber qual a diferença entre os dois? tipo a estrutura, porque são bem diferentes os dois...(no caso da foto a esquerda eu fiz com html e css) e o outro foi normalzao, que foi a forma que eu aprendi na facul, alguém poderia me ajudar? Queria entender mais de front-end e back-end, e entender porque sao diferentes igual nessas duas fotos <CODE>
  11. @arfneto É que nesse exercício tenho que fazer igual aos exemplos de entrada que pede nele, se nao pedisse tava suave kkkkk, mas tenho que fazer desse jeito como coloquei ali em cima infelizmente
  12. @arfneto Ja inclui amigo, bem melhor de visualizar agora, a estrutura esta otima...Agora eu tenho uma duvida, como eu poderia trocar esse do while e colocar tipo um for pra ser uma sequencia de elementos que vai ser inserida na arvore? Tipo assim: 1 //QTD DE CASOS DE TESTE 1 4 6 8 3 5 //ELEMENTOS QUE vão SER INSERIDOS NA ARVORE 1 3 4 5 6 8 //RESULTADO DA ARVORE Entende mais ou menos? Eu queria que ele lesse essa linha e colocasse esses numeros ja direto na arvore... Quando eu tentei fazer ele so lia o primeiro elemento, nao consigo criar uma funçao e tirar esse do while, tentei fazer com vetor ,mas nao consegui int main () { char str [ 300 ]; int N, i; scanf ("%d" , &N); for (i=0 ; i<N; i++) { scanf ("%s" , str); processa (str); } return 0 ; } Tentei implementar isso pra dar certo ...mas mesmo assim nao da
  13. #include <stdio.h> #include <stdlib.h> typedef struct no{ int conteudo; struct no * esq, *dir; }No; typedef struct{ No *raiz; int tamanho; int alturaArv; }ArvBinaria; void InserirEsq (No *no, int valor){ if (no->esq == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; no->esq = novo; } else { if (valor < no->esq->conteudo) InserirEsq (no->esq, valor); if (valor > no->esq->conteudo) InserirDir (no->esq, valor); } } void InserirDir (No *no, int valor){ if (no->dir == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; no->dir = novo; } else { if (valor > no->dir->conteudo) InserirDir (no->dir, valor); if (valor < no->dir->conteudo) InserirEsq (no->dir, valor); } } void inserir (ArvBinaria *arv, int valor){ if (arv->raiz == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; arv->raiz = novo; } else { if (valor < arv -> raiz -> conteudo) InserirEsq (arv->raiz, valor); if (valor > arv -> raiz -> conteudo) InserirDir (arv->raiz, valor); } } No* inserirnew (No *raiz, int valor){ if (raiz == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; return novo; } else { if (valor < raiz->conteudo) raiz->esq = inserirnew (raiz->esq, valor); if (valor > raiz->conteudo) raiz->dir = inserirnew (raiz->dir, valor); return raiz; } } int alturaArv (No *raiz){ if(raiz == NULL || raiz->dir == NULL && raiz->esq == NULL){ return 0; } else{ int esq = alturaArv(raiz->esq); int dir = alturaArv(raiz->dir); if(esq < dir) return esq +1; else return dir +1; } return 0; } int tamanho(No *raiz){ if (raiz == NULL) return 0; else return 1 + tamanho (raiz->esq) + tamanho (raiz->dir); } void Imprimir (No *raiz){ if (raiz != NULL){ Imprimir ( raiz-> esq); printf ("%d ", raiz->conteudo); Imprimir ( raiz-> dir); } } void Imprimirpre (No *raiz){ if (raiz != NULL){ printf ("%d ", raiz->conteudo); Imprimirpre (raiz->esq); Imprimirpre (raiz->dir); } } void Imprimirpos (No *raiz){ if (raiz != NULL){ Imprimirpos (raiz->esq); Imprimirpos (raiz->dir); printf ("%d ", raiz->conteudo); } } int main (){ int op, valor, quantidade, i; ArvBinaria arv; arv.raiz = NULL; No *raiz = NULL; do{ printf ("\n1 - Inserir\n2 - Imprimir\n"); scanf ("%d", &op); switch (op){ case 1: printf ("Digite um valor: "); scanf ("%d", &valor); arv.raiz = inserirnew (arv.raiz, valor); break; case 2: printf ("\n"); Imprimir (arv.raiz); printf ("\n"); Imprimirpre (arv.raiz); printf ("\n"); Imprimirpos (arv.raiz); printf ("\nQ - %d\n", tamanho(arv.raiz)); printf ("H - %d\n", alturaArv(arv.raiz)); break; } } while (op != 0); } Alguém poderia me dar uma ajuda nesse código de arvore binaria?? Estou quebrando a cabeca pra arrumar isso... Como eu poderia tirar esse do while e usar um for no lugar? usando vetor pra colocar os elementos na arvore?...Tenho que fazer um exercicio que leia a seguinte entrada... A primeira linha recebe um inteiro N que indica o número de casos de teste.) As N subsequentes linhas conterão as notações textuais pré ordem das árvores binárias) Ficaria mais ou menos assim: 2 //casos de testes 1 5 7 8 3 //elementos que foi inserido na arvore 9 2 7 4 5 //elementos inseridos na NOVA arvore Resultado da arvore binaria: 1 3 5 7 8 2 4 5 7 9 Alguém poderia me ajudar? Os que eu fiz ate agora usando for ele so le o primeiro elemento da linha...ta complicado
  14. @arfneto sim sim,eu ainda nao terminei, estou tentando resoler ainda, coloquei o que eu ja fi ate agora...
  15. @arfneto Por enquanto to tentadno fazer meu codigo com while, tentei fazer do jeito que pede no exercicio mas nao to conseguindo :(, ele nao estava lendo a linha inteira, lia so os dois primeiros elemntos que eu coloco...ai ai #include <stdio.h> #include <stdlib.h> typedef struct no{ int conteudo; struct no * esq, *dir; }No; typedef struct{ No *raiz; int tam; }ArvBinaria; void InserirEsq (No *no, int valor){ if (no->esq == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; no->esq = novo; } else { if (valor < no->esq->conteudo) InserirEsq (no->esq, valor); if (valor > no->esq->conteudo) InserirDir (no->esq, valor); } } void InserirDir (No *no, int valor){ if (no->dir == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; no->dir = novo; } else { if (valor > no->dir->conteudo) InserirDir (no->dir, valor); if (valor < no->dir->conteudo) InserirEsq (no->dir, valor); } } void inserir (ArvBinaria *arv, int valor){ if (arv->raiz == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; arv->raiz = novo; } else { if (valor < arv -> raiz -> conteudo) InserirEsq (arv->raiz, valor); if (valor > arv -> raiz -> conteudo) InserirDir (arv->raiz, valor); } } No* inserirnew (No *raiz, int valor){ if (raiz == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; return novo; } else { if (valor < raiz->conteudo) raiz->esq = inserirnew (raiz->esq, valor); if (valor > raiz->conteudo) raiz->dir = inserirnew (raiz->dir, valor); return raiz; } } int alturaArv (No * no) { if(raiz == NULL || raiz->dir == NULL && raiz->esq == NULL){ return 0; } else{ int esq = 1 + alturaArv(raiz->esq); int dir = 1 + alturaArv(raiz->dir); if(esq > dir) return esq; else return dir; } } int tamanho(No *raiz){ if (raiz == NULL) return 0; else return 1 + tamanho (raiz->esq) + tamanho (raiz->dir); } void Imprimir (No *raiz){ if (raiz != NULL){ Imprimir ( raiz-> esq); printf ("%d ", raiz->conteudo); Imprimir ( raiz-> dir); } } int main (){ int op, valor; ArvBinaria arv; arv.raiz = NULL; No *raiz = NULL; do{ printf ("\n0 - Sair\n1 - Inserir\n2 - Imprimir\n"); scanf ("%d", &op); switch (op){ case 0: printf ("\nSaindo...\n"); break; case 1: printf ("Digite um valor: "); scanf ("%d", &valor); arv.raiz = inserirnew (arv.raiz, valor); break; case 2: printf ("\nImpressao da arvore binaria:\n"); Imprimir (arv.raiz); printf ("\n"); printf ("Tamanho: %d\n", tamanho(arv.raiz)); printf ("Altura: %d\n", break; default: printf ("\n opção Invalida...\n"); } } while (op != 0); }
  16. @arfneto Beleza arfneto, eu fiz desse jeito e deu certinho a minha arvore so fiz alguns ajustei, mas a arvore esta dando o resultado certinho, se eu colocar 500 250 750 75 305 ficaria assim: 75 250 305 500 750 perfeito, agora o problema é que eu tenho que responder essas questões no exemplo de saída, agora estou trabalhando nisso... voce havia perguntado o que seria cheia e degenerada: arvore cheia é quando uma arvore binária, um nó tem sempre ou dois filhos ou nenhum, meu professor explicou, e degenerada é quando um nó tem um ou nenhum nó filho
  17. @arfneto Opaaa, me desculpa kkkkkkk, é que eu nao sei usar muito bem esse site, ainda estou apredendo a mandar as perguntas, mas muto obrigado, realmente da forma que colocou ficou fácil de mais de entender, mas enfim....Vou mandar o codigo que eu ja fiz ate agora, ainda estou no processo, logo logo ja tenho q entregar, to focado pra terminar logo mas ta difícil kkkk. Aqui esta, bem melhor agora de entender #include <stdio.h> #include <stdlib.h> typedef struct no{ int conteudo; struct no * esq, *dir; }No; typedef struct{ No *raiz; }ArvBinaria; void InserirEsq (No *no, int valor){ if (no->esq == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; no->esq = novo; } else { if (valor < no->esq->conteudo) InserirEsq (no->esq, valor); if (valor > no->esq->conteudo) InserirDir (no->esq, valor); } } void InserirDir (No *no, int valor){ if (no->dir == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; no->dir = novo; } else { if (valor > no->dir->conteudo) InserirDir (no->dir, valor); if (valor < no->dir->conteudo) InserirEsq (no->dir, valor); } } void inserir (ArvBinaria *arv, int valor){ if (arv->raiz == NULL){ No *novo = (No*)malloc(sizeof(No)); novo->conteudo = valor; novo->esq = NULL; novo->dir = NULL; arv->raiz = novo; } else { if (valor < arv -> raiz -> conteudo) InserirEsq (arv->raiz, valor); if (valor > arv -> raiz -> conteudo) InserirDir (arv->raiz, valor); } } void Imprimir (No *raiz){ if (raiz != NULL){ Imprimir ( raiz-> esq); printf ("%d ", raiz->conteudo); Imprimir ( raiz-> dir); } } int main (){ int i, n, valor; ArvBinaria arv; arv.raiz = NULL; printf ("Casos de testes: "); scanf ("%d", &n); for (i=0; i<=n; i++){ printf ("Digite sua Arvore: "); scanf ("%d", &valor); inserir (&arv, valor); } printf ("\nImpressao da arvore binaria:\n"); Imprimir (arv.raiz); }
  18. @arfneto Nao entendi muito bem o que quis dizer, no documento eu só coloquei o problema q eu estou tentando resolver...e em cima esta o que eu já fiz, só queria uma ajuda, alguma dica só isso
  19. Alguem poderia me dar uma força nesse exercicio? é sobre arvore binaria, estou tentando mas ta difricl de mais, eu fiz uma implementaçao ate agora mas to empacando <CODE> #include... int getIdx ( char * str, int si, int ei) { if (si> ei){ retorno - 1 ; Pilha * s = pilha_cria (); for ( int i = si; i <= ei; i ++) { if (str == ' ( ' ) pilha_push (s, str ); if else (str == ' ) ' ) { if ( pilha_top (s) == ' ( ' ) { pilha_pop (s); if ( pilha_vazia (s)) { pilha_libera (s); return i; } } } } pilha_libera (s); return - 1 ; } Run codes.docx
  20. Boa tarde grupo,alguem poderia me dar uma ajuda nesse codigo sobre pilha? nao estou conseguindo fazer intermediario.pdf
  21. @Mauro Britivaldo Cara, muito obrigado, deu certinho aqui, troquei certinho e funcionou, muito obrigado pela ajuda, deu pra dar uma estudada na logica tambem, nas partes que eu nao estava entendendo, obrigadoo ajudou muito!!!
  22. @Mauro Britivaldo Deu pra compreender bem amigo, vou tentar resolver de novo aqui, muito obrigado pela ajuda de vocês !!! Bora la de novo ksksksk
  23. @AdrianoSiqueira claroo, vou tentar colar aqui Essa é uma tarefa do meu prof de banco de dados, que esta quebrando minha cabeça, queria muito tentar entender mais ou menos a parte do codigo mesmo, porque a logica eu sei mais ou menos como é, mas nao consigo colocar o que eu sei no codigo Da pra ter uma pequena noção pelo meu codigo que fiz ate agora, uma parte do exerciio Exercicio Interediario Banco de dados.pdf
  24. @AdrianoSiqueira kkkkkkk acho que não fui muito claro, vou tentar explicar de novo amigo, A primeira linha da entrada contém um número inteiro t, que seria o número de casos de teste. Logo em baixo tem a primeira linha de cada caso de teste contém dois números inteiros N e M. tendo N como COMPRIMENTO de S e M o número de TENTATIVAS correspondentes. A segunda linha de cada caso de teste contém a sequência s que consiste em n letras do alfabeto. A terceira linha de cada caso de teste contém m números inteiros a1, a2, ..., am tal que o número de caracteres PRECIONADOS durante cada 1 tentativa. é isso o que eu tenho que fazer Então ficaria mais ou menos assim Entrada -- Saída 1 4 2 4 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 abca 13 Ficaria assim, no meu eu nao estou conseguindo ler os casos de testes, que teria quue ler esse "abca" duas vezes e marcar quantas vezes as letras se repetem, ele le so uma vez...Nao sei se ficou meio claro mas é isso, Obrigado pela atençao adicionado 0 minutos depois @Mauro Britivaldo Ai ai esse ta difícil ksksksks, respondi ali em cima amigo da uma olhadinha pra ver se entende mais ou menos

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!