Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kba

Conferir codigo se esta certo

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.