Ir ao conteúdo
  • Cadastre-se

Talyson Maia

Membro Pleno
  • Posts

    40
  • Cadastrado em

  • Última visita

Tudo que Talyson Maia postou

  1. @Lucca Rodrigues Eu consegui fazer a questão graças a sua ajuda e um pequeno pseudocódigo. Mas teve algumas partes que eu não entendi, você poderia me ajudar? #include <stdio.h> int vogal(char ch) { const char vogal[] = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}; for(int i = 0; i < 10; i++) if(ch == vogal[i]) return 1; return 0; } int main(){ char texto[50]; scanf("%[^\n]", texto); for(int a = 0; texto[a]; a++){ printf("%c", texto[a]); if(vogal(texto[a]) && !vogal(texto[a + 1]) && texto[a + 1] != ' ' && texto[a + 1]) printf("-"); } } 1° - Eu não entendi porquê o primeiro printf vem antes do if. Nessa atual posição dele não vai aparecer primeiro o nome e depois, em outra linha, os traços? 2° - Eu queria entender o porquê desse ''texto[a+1] no final do último if.
  2. @Lucca Rodrigues Essa parte envolve função, certo? Eu ainda não estudei função, seria a próxima aula da minha lista. Você fez um módulo só pra saber se é vogal, foi isso? Tentei fazer com as suas explicações, mas sem usar ''função'' já que não tenho conhecimento sobre o assunto. No entanto, não rodou #include <stdio.h> int main() { char palavra[100]; char vogal[] = {'a', 'e', 'i', 'o', 'u'}; scanf("%[^\n]", palavra); for (int i = 0; i < 5; i++) if (palavra == vogal[i]) { return 1; } else { return 0; } for (int i = 1; palavra[i]; i++) { if (vogal(palavra[i - 1]) && !vogal(palavra[i])) printf("-"); printf("%c", palavra[i]); } }
  3. Olá, boa noite. Eu estou aprendendo sobre manipulação de caracteres e strings. Eu vi uma questão no github mas não estou conseguindo responde-la. Tentei usar algumas ideias das questões anteriores que já até postei aqui (um for dentro de outro). A questão é o seguinte: Faça um programa que receba uma palavra e separe suas silabas levando em consideração o seguinte critério: se após uma vogal existir uma consoante, deve-se separar a sílaba. Entrada: Uma linha com um texto Saída: O mesmo texto com - entre as sílabas Exemplos: Entrada: Paralelepipedo Saída: Pa-ra-le-le-pi-pe-do Outro exemplo: Entrada: Eu sou o rei de Fup Saída: Eu sou o rei de Fu-p Estou tentando com esse código mas dá erro como se estivesse fora do vetor: #include <stdio.h> int main () { char palavra[100]; char vogal[] = {'a', 'e', 'i', 'o', 'u'}; while(scanf("%[^\n]", palavra) == 1) { for(int i = 0 ; palavra[i] ; i++) { if(palavra[i] == vogal[i] && palavra[i+1] != vogal[i]) { printf("-"); } printf("%c", palavra[i]); } } }
  4. @arfneto Caramba, nunca ia pensar em usar switch. Obrigado irmão, eu entendi muito bem agora. Gratidão!
  5. Olá, desde ontem eu estou tentando responder uma questão que tem no site do URI, mas não consegui fazer o código. Então, eu peguei um pseudocódigo que vi na internet, tentei traduzir e fiz a questão. No entanto, existem muitas informações na qual eu não entendi. questão: 1120 - Revisão de Contrato - URI Online Judge Resumindo a questão: Entrada 1. Uma linha que representa uma tecla quebrada (o digito que deve ser deletado do número). 2. Um numero; Saída: O número sem o digito digitado na primeira entrada Em caso de saída 000, deve sair somente um zero. Exemplos: Entrada 5 5000000 Saída 0 Entrada 5 5004000 saída 4000 O meu código: #include <stdio.h> #include <string.h> int main() { char a[10]; char b[1000]; scanf("%s%s", a, b); if (a[0] == '0' && b[0] == '0') return 0; int j = strlen(b); int k = 0; int l = 0; for (int i = 0; i < j; i++) { if (a[0] != b[i]) { if (b[i] != '0') k = 1; if (k == 1) { l = 1; printf("%c", b[i]); } } } if (l == 0) { printf("0"); printf("\n"); } } - Eu não entendi o porquê desse return 0 após o primeiro if; - Não entendi também essa parte: if (a[0] != b[i]) { if (b[i] != '0') k = 1; if (k == 1) { l = 1; printf("%c", b[i]); } } } if (l == 0) { printf("0"); printf("\n");
  6. Uma dúvida nessa parte: Se o menor foi 5, o indice não deveria ser 4? Já que vetor começamos do zero [0], [1], [2],...
  7. @devair1010 Fiz a mudança mas continuou com sem sair algum resultado mudei assim: for (int i = 1; i <= number; i++) { scanf("%s", text); Mas continua sem saídas, exemplo: --- O que digitei --- 3↵ aebaibaobaub↵ baeoxuoiazzzzzzz↵ oxau↵ ---O que está saindo: --- ↵ ↵ ↵ --- O que deveria sair:--- ae↵ uoia↵ au
  8. @arfneto Eu peguei as dicas acima e fiz o seguinte para responder a questão: #include <stdio.h> int main() { char text[51]; int number = 0; scanf("%d", &number); for (int i = 1; i <= number; i++) { scanf("%s", & text[i]); int counter = 0, biggest = 0; for (int j = 0; text[j]; j++) { if (text[j] == 'a' || text[j] == 'e' || text[j] == 'i' || text[j] == 'o' || text[j] == 'u') { counter++; if (counter > biggest) { biggest = counter; } } else { counter = 0; } } counter = 0; for (int j = 0; text[j]; j++) { if (text[j] == 'a' || text[j] == 'e' || text[j] == 'i' || text[j] == 'o' || text[j] == 'u') { counter++; if (counter == biggest) { for (int k = j - biggest + 1; k <= j; k++) { printf("%c", text[k]); break; } } } else { counter = 0; } } printf("\n"); } } O código roda, aparece a quantidade de linhas que deveria sair a resposta, mas não aparece as vogais. Vou mostrar um exemplo: --- Input --- 2↵ abdeiuofaoi↵ xaeioux O que está saindo: ↵ ↵ O que deveria sair: eiuo↵ aeiou Não estou conseguindo pensar em algo para resolver essa questão do printf. Acredito que o erro deve estar associado alguma chave, algum bloco...
  9. @arfneto Irmão, muito obrigado pelas dicas e a paciência. Vou levar esses conhecimentos comigo e melhorar cada vez mais na arte da programação. Me desculpe por apresentar um código pobre e confuso. Novamente eu agradeço muito pelas dicas!!!
  10. @JorgeGus Bacana, vou associar isso as dicas que os amigos deram acima. Muito obrigado @Midori Olá, muito obrigado. Vou tentar traduzir seu código e fazer com a mesma lógica. Muitissimo obrigado
  11. @arfneto Estou tentando trabalhar com uma variavel nova e com um contador, mas não consigo sair do canto e dessa vez nem mesmo sai alguma letra (antes saia um a em todos os testes). #include <stdio.h> int main() { int size = 0; char frase[50]; char aux; scanf("%d", &size); const char vogal[] = "aeiou"; for (int i = 0; i < size; i++) { scanf("%s", &frase[i]); char cont = 0; for (int j = 0; vogal[j]; j++) { if(frase[i] == j) { cont++; } } } printf("%s", cont); } Me perdoe a insistência e os erros bobos, eu realmente não sei como prosseguir. Estou me esforçando relendo sobre strings e vou iniciar ponteiros para ver se consigo a solução.
  12. @arfneto Como eu organizaria isso? Eu estou sem ideia. A variavel word seria a frase da entrada, digitada pelo usuário e nessa frase eu encontraria as vogais. @Midori Eu ainda não estudei ponteiro, por isso não consegui compreender bem sua resposta. Eu não entendi como voce só selecionou vogais usando isso e ainda conseguiu mostrar o que mais se repete.
  13. @devair1010 como eu faço para converter essa variavel em char? para assim rodar as letras
  14. Olá, estou tentando fazer um código no qual as saídas são somente vogais e elas devem estar juntas. Entrada: 1° linha: a quantidade de casos de teste(1 a 50). Uma linha por caso de teste contendo uma frase de até 50 caracteres, apenas com minúscula. Saida: Para cada caso de teste retorne uma linha contendo o subtexto com a maior quantidade de vogais juntas. Se existir empate, retorne o que aparece primeiro no texto. Exemplos de saída e entrada: --- Input --- 1↵ aeb↵ --- O que está saindo: a --- O que era pra sair: ae O meu código até o momento: #include <stdio.h> int main() { int size; char word[50]; scanf("%d", & size); char vogal[] = { 'a', 'e', 'i', 'o', 'u' }; for (int i = 0; i < size; i++) { scanf("%s", & word[i]); if (i == 'a' || i == 'e' || i == 'i' || i == 'o' || i == 'u') { word[i] = vogal[i]; } } for (int i = 0; i < size; i++) { printf("%c", vogal[i]); } }
  15. Seria legal você apresentar um código, pois a forma como você veio aqui só apresentando as questões meio que não vai aprender tanto. Mas vou deixar algumas dicas: 1) Faça um for para colocar as entradas dos vetores exp.: for(int i = 0 ; i < n ; i++) scanf("%d", &lista[i]); 2) faça um segundo for para colocar as saídas, dessa fez decrementando for(int i = 0; i < n ; i--) printf("%d", lista[i)

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!