kba 0 Denunciar post Postado Abril 29, 2012 Implemente um programa em C que receba como entrada um texto qualquer e: a)Conte o número de ocorrências da letra ‘A’ b)Conte o número de ocorrência do grupo de caracteres “XYZ“ c)Recrie o texto dado de forma que do mesmo sejam eliminados todos os espaços em branco Este programa roda, mas quando digita a frase e dá enter o cursor fica piscando. Onde será que está o erro, porque eu não o encontro. Muito obrigada pela atenção. Referente ao post anterior eu não sabia utilizar o site, desculpe alguma coisa. Segue código do mesmo: #include <stdlib.h> #include <stdio.h> #include <string.h> #include <iostream> using namespace std; int main() { char frase[30],letraa_frase ='a', grupo_frase='xyz',espaco_frase=' '; int i,j,tamanho_frase,cont_letraa,cont_grupo,cont_espaco,cont_frase; printf("\n"); printf("\nDigite uma frase de no maximo 30 letras:\n\n"); scanf("\n%s\n",&frase); printf("\n"); tamanho_frase = strlen(frase); for(i=0;i<tamanho_frase;i++) { cont_frase++; if(frase == letraa_frase) { cont_letraa++; } else { if(frase == grupo_frase) { cont_grupo++; } else { if(frase == espaco_frase && frase != ' ') { for(j=i;j<espaco_frase;j++) { cont_espaco++; } } } } } printf("\nQuantidade de letras na frase:%d\n",cont_frase); printf("\nQuantidade de letras (a) na frase:%d\n",cont_letraa); printf("\nQuantidade do grupo (xyz) na frase:%d\n",cont_grupo); printf("\nQuantidade de letras na frase sem espaco:%d\n",cont_espaco); printf("\nFrase sem espaco:%s\n",espaco_frase); printf("\n"); system("PAUSE"); return EXIT_SUCCESS; } Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Abril 29, 2012 kba, Primeiro, se a tua intenção é implementar um código em C.Não deve utilizar: #include <iostream> using namespace std; Pois são recursos disponíveis apenas em C++. IOSTREAM, é a biblioteca de entrada e saída padrão do C++. E a linha using namespace std;, define que você quer trabalhar com os objetos presentes na STL do C++. Se a sua intenção era de implementar em C++, sugiro que estude mais os conceitos básicos da linguagem. if(frase == grupo_frase) Você não pode comparar uma cadeia de caracteres desta forma. Esta tentando comparar "xyz", com apenas um caractere da string digitada. Utilize strcmp do C ou estude as strings de C++ para utilizar os métodos disponíveis nesta classe. http://www.cplusplus.com/reference/clibrary/cstring/ if(frase == letraa_frase) { cont_letraa++; } Você utiliza a variável cont_letraa, para comparar e encontrar a letra 'a' na frase. Se você incrementá-la não estará comparando por 'a' no próximo laço do for. Seu código está misturando C com C++. Tentei compilá-lo em C,utilizando o CodeBlocks. Apresentou muitos erros de sintaxe e até uma exception no windows. Sugiro que você pense e desenhe o algorítmo no papel e depois parta para a programação, assim torna o aprendizado mais facilitado. DICA: Utilize a TAG CODE para postar seus código. Assim poderá deixá-los mais mais compreensíveis para quem quiser ajudá-la. Espero ter ajudado, FLW! :grin: Compartilhar este post Link para o post Compartilhar em outros sites