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

Ajuda Em Programa


Guest to aprendendo

Pergunta

Guest to aprendendo

tenho que fazer uma função que receba como parametro uma letra qualquer eo nome de um arquivo .a funçõa deve retornar o numero de vezes que a letra fornecida se encontra no arquivo especificado .

estou tentando fazer mais como estou aprendendo estou com dificuldades. eu fiz esta parte alguém pode me ajuda .oque esta errado

#include<stdio.h>

#define tam 30

int letras(char c,char nome[tam])

{

FILE *arq1=fopen(nome,"r");

int cont;

if(arq1 == NULL)

printf("Erro!\n");

else

{

while(!feof(arq1))

{

fscanf(arq1,"%c",&c);

// if(arq1 == c)

cont++;

return cont;

}

fclose(arq1);

}

}

main ()

{

int i,s;

char nome[tam],c;

for(i=0;i<tam;i++)

{

printf("entre com uma palavra");

scanf("%s",&nome);//gets(nome);

printf("entre com uma letra");

scanf("%c",&c);

if(nome== c)

s=letras(c,&nome[tam]);

printf("vezes %d",s);

}

}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Fiz uma aqui....

short BuscaLetra(char Letra, char *NomeArq)
{
  FILE *Arquivo;
  char Linha[100] = {0};
  int TamLinha = 0, Cont = 0, Ocorrencias = 0;

  Arquivo = fopen(NomeArq, "r");
  if (!Arquivo)
  {
    printf("Falha ao abrir o arquivo");
    return(1);
  }

  while (!feof(Arquivo))
  {
    fgets(Linha, 100, Arquivo);
    TamLinha = (strlen(Linha) - 1);
    for (Cont = 0; Cont <= TamLinha; Cont++)
    {
      if (Letra == Linha[Cont])
      {
        Ocorrencias++;
      }
    }
  }
  return(Ocorrencias);
}

Falow!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Além de observar a solução do amigo acima, tem alguns erros no seu código.

Na função letras, inicialize a variável cont com zero:

...
int cont = 0;
...
Na mesma função, declare uma variável char f e observe onde ficará o retorno da função. O loop deverá ficara assim:
while( !feof( arq1 ) )
{
    fscanf( arq1, "%c", &f );
    
    if ( f == c )
        cont++;
}

fclose(arq1);
return cont;
Na função main tire o loop for. A leitura da string nome pode ser:
gets( nome );
Depois de ler o caractere c com scanf coloque
fflush( stdin );
Na hora de chamar a função letras, faça-o da seguinte forma
s = letras( c, nome );
Assim, o seu código deverá ficar
#include <stdio.h>
#include <conio.h>

#define tam 30

int letras( char c, char nome[] )
{
    FILE *arq1 = fopen( nome, "r" );
    int cont = 0;
    char f;

    if( arq1 == NULL )
        printf( "Erro!\n" );
    else
    {
        while( !feof( arq1 ) )
        {
             fscanf( arq1, "%c", &f );

             if ( f == c )
                 cont++;
        }

    fclose( arq1 );
    return cont;
    }
}

main ()
{
    int i,s;
    char nome[tam],c;

    printf("entre com uma palavra: ");
    gets(nome);

    printf("entre com uma letra: ");
    scanf("%c",&c);

    fflush( stdin );

    s=letras(c,nome);

    printf("vezes %d",s);

    getch();
}

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...