Programação em C - ajuda no código, coisa simples..?

Eu tenho este pequeno programa para fazer mas tou com alguma dificuldade em faze-lo

O programa pede ao utilizador uma palavra e duas letras, depois o programa irá procurar quantas vezes é que essas palavras aparecem na palavra inicialmente introduzida e que conte quantas vezes é que essa mesma letra aparece.

A minha ideia é fazer um ciclo for que encontra uma letra (da palavra) igual a uma letra introduzida, mas nao estou a conseguir faze-lo

este é o meu código:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

char palavra[10];

char l1[1], l2[1];

char p1, p2;

int conta1, conta2;

char aux, aux2;

printf("Introduza uma palavra (max 9 letras) ");

scanf("%s", palavra);

printf("\nIntroduza uma letra:");

scanf("%s", &l1);

printf("\nIntroduza uma segunda letra:");

scanf("%s", &l2);

aux=l1[0];

aux2=l2[0];

for(int x=0; x<=strlen(palavra); x++)

{

while(aux==palavra[x])

conta1++;

while(aux2==palavra[x])

conta2++;

}

printf("a letra %s aparece %d veze(s)", l1, conta1);

printf("a letra %s aparece %d veze(s)", l2, conta2);

system("pause");

}

uma ajuda??

Update:

Obrigado pela ajuda vector =D

Comments

  • Olá!!!programa feito!!! tinha alguns problemas como aquele while lá gora ta legal ^.^ aí está!

    #include <stdio.h>

    #include <stdlib.h>

    #include <string.h>

    #include <conio.h>

    using namespace std;

    int main(int argc, char *argv[])

    {

    char palavra[10];

    char l1, l2;

    char p1, p2;

    int conta1=0, conta2=0;

    char aux, aux2;

    printf("Introduza uma palavra (max 9 letras) ");

    scanf("%[a-z A-Z 0x0d]", palavra);

    printf("\nIntroduza uma letra:");

    l1=getche();

    printf("\nIntroduza uma segunda letra:");

    l2=getche();

    aux=l1;

    aux2=l2;

    for(int x=0; x<=strlen(palavra); x++)

    {

    if(aux==palavra[x])

    conta1++;

    if(aux2==palavra[x])

    conta2++;

    }

    printf("\na letra %c aparece %d veze(s)", l1, conta1);

    printf("\na letra %c aparece %d veze(s)\n", l2, conta2);

    system("PAUSE");

    return EXIT_SUCCESS;

    }

    compilado no Dev-Cpp ok?

    see ya!!! qualquer coisa de um toke!!!

    obs:... \gota, deram ctrl+c ctrl+v no meu código.... affff

    (obs: se tiver +1, pode passar, mas não se esqueça dos meus pontinhos....)

  • Faz tempo que não programo em C, mas basicamente seu código está correto.

    Qual a mensagem de erro que retorna?

    Ao longo das linhas, peça que imprima o conteúdo das variáveis, para se ter a certeza de que de fato está armazenando.

    P.S.: Eu estava dando uma olhadinha melhor e percebi que não tem a "main", então ele entra em loop infinito.

    Vá lá... corija isso que resolve o seu problema.

    #include <iostream>

    using namespace std;

    int main(){

    char palavra[10];

    char l1, l2;

    int conta1=0, conta2=0;

    printf("Introduza uma palavra (max 9 letras) ");

    scanf("%s", palavra);

    fflush(stdin);

    printf("\nIntroduza uma letra:");

    scanf("%c", &l1);

    fflush(stdin);

    printf("\nIntroduza uma segunda letra:");

    scanf("%c", &l2);

    fflush(stdin);

    for(int x=0; x<=strlen(palavra); x++)

    {

    if(l1==palavra[x])

    conta1++;

    if(l2==palavra[x])

    conta2++;

    }

    printf("a letra `%c` aparece %d veze(s)\n", l1, conta1);

    printf("a letra `%c` aparece %d veze(s)\n", l2, conta2);

    system("pause");

    return 0;

    }

Sign In or Register to comment.