Ir para conteúdo
Fórum Script Brasil
  • 0

PROGRAMA NÃO FUNCIONA COMO ESPERADO


dneto

Pergunta

OLÁ!

ESCREVI O SEGUINTE PROGRAMA:

#include <stdio.h>
int main(void)
{
char palavra[50];
int i;
char caractere;
int quantidade;
printf ("Por favor, escreva algo:\n");
scanf ("%c", &palavra);
printf ("Por favor, digite um caractere:\n");
scanf ("%c", &caractere);
for (i = 0; i < 50; i++){
if (palavra == caractere) {
quantidade = 1 + quantidade;
}
}
printf ("O numero de %c em %c e: %d.", caractere, palavra, quantidade);
system("pause");
return 0;
}

ELE NÃO APRESENTA ERRO ALGUM, MAS QUANDO EXECUTO DIGITO UMA PALAVRA, MAS ELE JÁ FINALIZA, NEM ESPERA EU DIGITAR O CARACTERE E MUITO MENOS INFORMA QUANTOS DAQUELE CARACTERE EXISTE NA PALAVRA.

ENFIM, ELE NÃO EXECUTA CADA INSTRUÇÃO. APÓS A PALAVRA DIGITADA ELE JÁ FINALIZA, SEM EXECUTAR INSTRUÇÃO PAUSADO POR INSTRUÇÃO, SEM DAR A OPORTUNIDADE DE DIGITAR CADA DADO SOLICITADO.

COMO FAÇO PARA ESSE PROGRAMA FUNCIONAR COMO ESPERO?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

você tem problemas com o buffer... eu já to cansado de escrever mil linhas explicando isso todo o tempo, todos temos problemas com o buffer, recomendo você ler este tema aqui abaixo, leia e acompanhe a duvida de cada usuário, ao terminar de ler esse tópico você vai entender o porque falha seu programa, não ler esse tópico será sua ruína como programador, esse problema sempre existirá e você nunca vai saber o por quê. http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/
 

Se tiver duvidas pode perguntar aqui mesmo, mas leia e preste atenção em todo o conteúdo. Acho que alguém deveria postar um tópico desses aqui neste fórum, é sem duvida a maior fonte de duvidas dos programadores iniciantes.

Sorte

Link para o comentário
Compartilhar em outros sites

  • 0

Yo Brother, Beleza?

Notei alguns problemas no seu código e corrigi.

Adicionei um comentário em cada linha que corrigi ^^

Espero ter ajudado.

 

__________________________________________________________

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
char palavra[50];
int i;
char caractere;
int quantidade = 0; // Sempre que usar uma variável contadora, você deve inicializá-la com 0, caso contrario ela iniciará com o que chamamos de "lixo de memória", que pode ser qualquer valor aleatório.

printf ("Por favor, escreva algo:\n");
fflush(stdin); //Essa função serve para evitar problemas com buffer, recomendado usar sempre antes de salvar uma string.
gets(palavra); //Comando para atribuir uma palavra inteira à uma variável. Pois o %c usando anteriormente, salva apenas Caractere e não Palavra.

printf ("Por favor, digite um caractere:\n");
scanf ("%c", &caractere);

for (i = 0; palavra != '\0'; i++) //Em vez de percorrer os 51 espaços definidos(0-50), você pode colocar a condição buscando pelo que indica o final da palavra, que pode acontecer bem antes de 51 caracteres. O que indica final da string, é o '\0', assim ele só vai verificar até o final da palavra ou frase, digitada.

{
if (palavra == caractere) { //Uma palavra é um vetor com letras em cada posição. Logo, você deve verificar cada posição e verificar se é igual a letra inserida
quantidade = 1 + quantidade;
}
}

printf ("O numero de %c em %s e: %d.", caractere, palavra, quantidade); // Como palavra é string e não caractere, você deve printar utilizando %s e não %c.

system("pause"); // Caso o system("pause") esteja causando problema, você pode tentar incluir a biblioteca <conio.h> e usar o comando getch();
return 0;
}
 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...