줄마다 각 첫 단어에 카운터가 올라가는데...
티나
질문 제목 : 줄마다 각 첫 단어에 카운터가 올라가는데...입력받은 여러 줄의 문자열에서 각 단어의 카운터를 세는건데 각 줄이 늘 때마다 그 전에 있던 줄들의 첫단어의 카운터가 올라갑니다.질문 내용 :
먼저 문제소스예요
#include stdio.h
#include string.h
#define max_word 99
int main(void)
{
int i, j, ml=0, f[max_word]={0};
char line[99][99], *de= , *cc;
char *word[max_word];
int word_cnt=0;
printf(입력을 하고 새로운 줄에 컨트롤z후 엔터를 누르세요\n);
while(gets(line[ml++]))
for(i=0;iml;i++)
{
cc=strtok(line[i], de);
while(cc!=null)
{
for(j=0;jword_cnt;j++)
{
if(strcmp(cc, word[j])==0)
{
f[j]++;
break;
}
}
if(j==word_cnt)
{
if(word_cnt=max_word)
{
printf(overflow\n);
return 0;
}
word[j]=cc;
f[j]=1;
word_cnt++;
}
cc=strtok(null, de);
}
}
for(j=0;jword_cnt;j++)
{
printf([%s] [%d개]\n, word[j], f[j]);
}
return 0;
}
여러줄에 걸쳐 표준입력을 하고 입력을끝내면 각 단어의 개수를 출력하도록 되있습니다.
그런데 어떨때마다 개수가 안맞길래 유심히 봤더니
만약 2줄의 입력이었다면
첫번째 줄의 첫 단어의 개수가 원래개수보다 1개 높게 출력됩니다.
3줄의 입력이었다면
첫번째 줄의 첫단어의 개수가 원래 개수보다 2개 높게, 두번째 줄의 첫단어의 개수가 원래보다 1개 높게
4줄의 입력이면
첫번째건 3개 높게, 2번째건 2개 높게 3번째건 1개 높게 나와요.
어디를 고쳐야 되나요?
if(strcmp(cc, word[j])==0)
{
f[j]++;
break;
}
이 부분에서 비교해서 같아서 0이 나와서 ++한다는건데 마지막cc에 저장되는 거랑 다르지... 않나요?
줄 넘어가면 그 줄첫 단어랑 word[0](첫줄 첫번째 단어)랑 비교되지 않나요?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2654768 | 사전만들기 입니다. | 여우By | 2024-05-13 |
2654716 | c언어 고수님들 답좀적어주세요 급합니다 ㅠㅠ | 한말글 | 2024-05-13 |
2654688 | c언어 ㅠㅠ 너 무 어려 워요 ㅠ 도와주세요!! | 별빛 | 2024-05-13 |
2654659 | 구구단 소스 궁금한 점 도움 부탁드립니다! (2) | 미련곰팅이 | 2024-05-12 |
2654633 | 오류가 무었인가요..? (2) | 단순랩퍼 | 2024-05-12 |
2654603 | 어디가 잘못된지를 모르겠습니다. 한 번 봐주세요...ㅠ (2) | 글고운 | 2024-05-12 |
2654574 | 소스 추가좀 부탁드립니다. (등수 출력) | 크리미걸 | 2024-05-12 |
2654550 | 피보나치수열. (3) | 중독적 | 2024-05-11 |
2654521 | c초보 빙고관련게임... | 달콤이 | 2024-05-11 |
2654491 | 10진수를 2진수로 바꾸는법 (8) | 아잉 | 2024-05-11 |
2654412 | 빅오를 구하고 싶어요~ | 애기 | 2024-05-10 |
2654381 | 혼자 연구하는 c/c++ 질문 | 아잉 | 2024-05-10 |
2654352 | 행렬크기를 scanf로 입력받을수도 있나요..? | VanilLa | 2024-05-10 |
2654293 | 첫시작값과 끝값의 사이에 존재하는 정수들의 합을 구하는 것 (5) | 해긴 | 2024-05-09 |
2654185 | 64bit 환경에서 자료형의 크기가 좀궁그해요(완료) 더궁금한게 생겻어요(추가) (2) | 빈길 | 2024-05-08 |
2654152 | 확장자 exe로 변경 (1) | 한 | 2024-05-08 |
2654128 | c언어 간단하게 자판기만들려는데 ㅜㅜ | 유1혹 | 2024-05-08 |
2654074 | 배열에 들어있는값을 포인터에 옮기고 싶어요.. | 소라 | 2024-05-07 |
2654043 | 이차원 배열에 있는 값들 더하기.. | 선아 | 2024-05-07 |
2654011 | c언어 대문자소문자, 소문자대문자 변형하기, | 샤르 | 2024-05-07 |