단어 받아서 세는 프로그램인데 ㅜㅜ.. 모르겠어요..
글쓴이: kknd345 / 작성시간: 목, 2004/11/18 - 10:06오후
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char word[200][30];
int count_word[200]={0};
int word_number=0;
int select_word( FILE* open )
{
char temp;
int i=0;
temp= getc(open);
if( temp == EOF )
return 0;
while( temp != ' ' && temp != '\n' )
{
if( temp != '.' && temp != ',' )
{
word[word_number][i]=temp;
i++;
}
temp= getc(open);
if( temp == EOF )
return 0;
}
for( i=0; i< word_number; i++)
{
if( strcmp( word[word_number],word[i] ) == 0 )
{
count_word[i]++;
return 1;
}
}
word_number++;
return 1;
}
void main(void)
{
FILE* open;
open=fopen("week11_44.txt","r");
while( 1 )
{
if( select_word( open ) == 0 )
break;
}
printf("%s :",word[0]);
printf("%d\n",count_word[0]);
printf("%s :",word[1]);
printf("%d\n",count_word[1]);
printf("%s :",word[2]);
printf("%d\n",count_word[2]);
printf("%s :",word[3]);
printf("%d\n",count_word[3]);
}
단어는 중복없이 정확하게 다 받아 오는것 같은데...
밑에 코드가 잘못 되어서 단어가 몇개 있는지 모르겠네요.
띄우고 개행한것은 카운트에 들어가는데
바로 개행한것은 카운트에 안 들어가요.
for( i=0; i< word_number; i++)
{
if( strcmp( word[word_number],word[i] ) == 0 )
{
count_word[i]++;
return 1;
}
}
word_number++;
return 1;
도와주세요
다른 방법도 상관없어요.
Forums:


예제파일[code:1]is is is is is nike ni
예제파일
출력이
5
3
3
1
원래는
5
4
4
2 되어야 하는데요 ㅜㅜ..
문제는 정확하게
텍스트 파일에서 단어를 파싱하여 각 단어가 몇 번씩 나왔는지 세는 프로그램을 작성하라. 목록이 다 만들어지면 정렬한 후 결과를 출력한다.
1%의 가능성이면 충분하다!
최선을 다하자!
처음으로 nike가 나왔을 때, 그 nike가 is와 다르다는 걸 판단하
처음으로 nike가 나왔을 때, 그 nike가 is와 다르다는 걸 판단하고는 그냥 nike를 버리네요. :(
댓글 달기