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

Ajuda em indice Remissivo


KeoughxD

Pergunta

Seguinte To com um trabalho na facu pra fazer porem quebrei a mao to programando com 1 mao so e preciso fazer um programa q vale 5 pontos eu fazendo ele fecho 2 materias , bom o programa e o seguinte :

E um indice Remissivo .. e oque é isso ??

>>

Escreva um programa em C, para construir um índice remissivo a partir de um arquivo lido em disco. Este arquivo conterá apenas letras e espaços em branco. As palavras do índice remissivo deverão ser armazenadas em um vetor de palavras em ordem alfabética crescente. Cada posição do vetor de palavras está dividida em dois campos:

a) O primeiro, denominado palavra, deverá guardar a palavra;

B) O segundo campo, denominado início, deverá guardar a posição onde está armazenado o primeiro elemento da lista de linhas.

Tal lista contém as linhas nas quais uma palavra do índice remissivo aparece no texto lido. Uma vez construído o índice, escreva funções para realizar as seguintes operações e, apresentar resultados na tela:

i) Mostrar todo o conteúdo do índice;

ii) Mostrar todas as linhas nas quais aparece uma palavra informada pelo usuário;

iii) Mostrar a palavra mais frequente no texto;

iv) Mostrar a linha na qual uma palavra informada pelo usuário, aparece com mais frequência.

Para a implementação, considere as estruturas:

# define MAX 100

typedefstructelem {

charpalavra[20];

intinicio;

} t_elem;

Typedefstruct no {

intlinha;

intprox;

} t_no;

t_elem palavras[MAX];

t_no lista[MAX];

========

>>

Bom eu estou fazendo mas esta dando alguns erros e eu to meio confuso oque eu fiz de errado estou no 1º ano e preciso de dicas de pessoas + experientes na área ..

aqui ta meu código:

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <ctype.h>

# define MAX 100

typedef struct elem{

char palavra[20];

int inicio;

}t_elem;

typedef struct no{

int linha;

int prox;

}t_no;

t_elem palavras[MAX];

t_no lista[MAX];

FILE *fp;

void conta_palavras()

{

char ch,forma_palavra[20];

int i=0,lin=1,k=0,cont=0,x,existe=0,j=0;

if ((fp=fopen("tekxto.txt","r"))==NULL)

printf("Erro ao abrir o arquivo!!");

else

{

while ((ch=getc(fp))!=EOF)

{

if (ch!=' ')

{

if(isalpha(ch))

forma_palavra[i++]=ch;

}

cont++;

for(x=0; x<=cont;x++)

{

if (strcmp(forma_palavra,palavras[x].palavra) == 0)

{

existe=1;

break;

}

}

if (ch!='\n' && existe==0)

{

forma_palavra='';

lista[j++].linha = lin;

palavras[k].inicio++-1;

strcpy(palavras[k++].palavra,forma_palavra);

}

else

lin++;

} }}

main()

{

void conta_palavra();

getch();

}

:ninja: :ninja: :ninja:

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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