단어 받아서 세는 프로그램인데 ㅜㅜ.. 모르겠어요..
글쓴이: 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를 버리네요. :(
댓글 달기