Ir para conteúdo

POWERED BY:

Arquivado

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

Patrick Kaz.

manipulação de arquivos

Recommended Posts

Não estou conseguindo fazer a contagem de letras A e M nos dois nomes que irá solicitar.

Alguem poderia me dar uma ajuda?

 

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <stdlib.h>

 

main(){

 

FILE *Masculino;

FILE *Feminino;

char n[100],s;

int i,m,f,consoantes=0,vogal=0;

Masculino= fopen("Masculino.txt","w");

Feminino = fopen("Feminino.txt","w");

if (Masculino==NULL||Feminino==NULL)

printf("\n\nerro");

else

{

for(i=0;i<2;i++){

system("cls");

printf("Informe o nome : ");

gets (n);

printf("Informe o ---o 'm' ou 'f' : ");

s=getche();

 

if (n=='a')

vogal++;

if(n=='m' )

consoantes++;

 

if (s=='m')

 

fprintf(Masculino,"%s\n",n);

else fprintf(Feminino,"%s\n",n);

 

}

 

fclose(Masculino);

fclose(Feminino);

 

}

printf("\n\n");

 

printf("Nomes Femininos salvos \"Masculino.txt\"\n\n");

printf("Nomes Femininos salvos \"Feminino.txt\"\n\n");

printf("\nContem %d a nos nomes\n",vogal);

printf("\nContem %d m nos nomes\n",consoantes);

 

system("pause");

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.
Cara, seu código está muito bagunçado. Tenha boas práticas de identação e organização que ajuda muito.

Dando uma arrumada...

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

main(){

    FILE *Masculino;
    FILE *Feminino;
    char n[100],s;
    int i,j,m,f,consoantes=0,vogal=0;

    Masculino= fopen("Masculino.txt","w");
    Feminino = fopen("Feminino.txt","w");

    if (Masculino==NULL||Feminino==NULL)
        printf("\n\nerro");
    else
    {
        for(i=0;i<2;i++){

            system("cls");
            printf("Informe o nome : ");
            gets (n);
            printf("Informe o ---o 'm' ou 'f' : ");
            s=getche();

            if (n[j]=='a')
                vogal++;
            if(n[j]=='m' )
                consoantes++;

            if (s=='m')
                fprintf(Masculino,"%s\n",n);
            else
                fprintf(Feminino,"%s\n",n);
       }

      fclose(Masculino);
      fclose(Feminino);
    }

    printf("\n\n");
    printf("Nomes Femininos salvos \"Masculino.txt\"\n\n");
    printf("Nomes Femininos salvos \"Feminino.txt\"\n\n");
    printf("\nContem %d a nos nomes\n",vogal);
    printf("\nContem %d m nos nomes\n",consoantes);

    system("pause");
}

O seu problema está na hora de fazer a contagem das vogais, justamente o local onde você colocou em vermelho. Você tem que criar um um loop pra ele percorrer todos os caracteres da string. No seu código ele só tá verificando 1 caractere da string, o 1ª ou o 2º caractere, dependendo do valor que 'i' tiver no momento. Crie um for que em volta do local vermelho e coloque pra percorrer a string toda.

OBS: Leia o tópico fixo sobre o uso do System().

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado CITH com sua explicação consegui a solução do meu problema fiz apenas uma alteração em vez de ele informar quantos m tem nas leituras dos nomes mudei para c, pois no momento que solicitar o genero feminino ou masculino se informar m(masculino) ele estará contando um m a mais.

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

main(){

    FILE *Masculino;
    FILE *Feminino;
    char n[100],s;
    int i,j,m,f,consoantes=0,vogal=0;

    Masculino= fopen("Masculino.txt","w");
    Feminino = fopen("Feminino.txt","w");

    if (Masculino==NULL||Feminino==NULL)
        printf("\n\nerro");
    else
    {
        for(i=0;i<2;i++){

            system("cls");
            printf("Informe o nome : ");
            gets (n);
            printf("Informe o ---o 'm' ou 'f' : ");
            s=getche();
            
           for(j=0;j<n[i];j++)
		   {
          	
            if (n[j]=='a')
                vogal++;
            if(n[j]=='c' )
                consoantes++;
           }
            if (s=='m')
                fprintf(Masculino,"%s\n",n);
            else
                fprintf(Feminino,"%s\n",n);
       }

      fclose(Masculino);
      fclose(Feminino);
    }

    printf("\n\n");
    printf("Nomes Femininos salvos \"Masculino.txt\"\n\n");
    printf("Nomes Femininos salvos \"Feminino.txt\"\n\n");
    printf("\nContem %d a nos nomes\n",vogal);
    printf("\nContem %d c nos nomes\n",consoantes);

    system("pause");
}

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.