줄마다 각 첫 단어에 카운터가 올라가는데...
티나
질문 제목 : 줄마다 각 첫 단어에 카운터가 올라가는데...입력받은 여러 줄의 문자열에서 각 단어의 카운터를 세는건데 각 줄이 늘 때마다 그 전에 있던 줄들의 첫단어의 카운터가 올라갑니다.질문 내용 :
먼저 문제소스예요
#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](첫줄 첫번째 단어)랑 비교되지 않나요?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2704529 | 메모리 동적 할당 관련해서 질문 있습니다~ | 궁수자리 | 2025-08-11 |
2704497 | int double char 같은것좀 좀만 더 가르쳐 주세요 (6) | 로지 | 2025-08-10 |
2704473 | 구조체 배열 초기화 질문 | 꽃은별 | 2025-08-10 |
2704445 | 배열과 조건문에 관한질문 (3) | 찬솔큰 | 2025-08-10 |
2704417 | 이진 트리 깊이 값 구하는것 질문입니다. | 푸른잎 | 2025-08-10 |
2704391 | 자료 유형에 관련된 문제입니다. (2) | 늘솜 | 2025-08-09 |
2704365 | c언어 문제안되서물어봅니다 (3) | 맑은가람 | 2025-08-09 |
2704338 | 다항식의 뺄셈에 대해 질문드립니다... (1) | 여자 | 2025-08-09 |
2704311 | 센서를 이용한 라인 주행인데 명령어좀 알려주세요 ㅠ_ㅠ (3) | 초록이 | 2025-08-09 |
2704284 | 배열for문;; (3) | 은솜 | 2025-08-08 |
2704255 | readline(int fd, char *buf, int nbytes)함수를 구현하는법좀..ㅠㅠ | 파라나 | 2025-08-08 |
2704196 | 간단한 c언어좀 만들어주세요 (2) | 슬S2아 | 2025-08-08 |
2704118 | 성적에서 등수 구하기 (4) | 딥레드 | 2025-08-07 |
2704062 | 알고리즘 알려주세요 | 나리 | 2025-08-06 |
2704035 | 답은 나오는데 과정에서 `` 약간 이상합니다.ㅎㅎ 답만나와버려요 | 핫블랙 | 2025-08-06 |
2703979 | 문자열 EEPROM 작성 방법 문의드립니다. | 그녀는귀여웠다 | 2025-08-06 |
2703954 | 키보드를 입력하면 캐릭터를 움직이기 질문 (7) | 좋아해 | 2025-08-05 |
2703924 | 계속 에러가... (4) | 눈꽃 | 2025-08-05 |
2703897 | 배열의 최댓값과 최솟값 차이 구하기 (1) | 하늬 | 2025-08-05 |
2703869 | C언어 질문입니다 급해용!!! ㅠㅠ (2) | 덕이 | 2025-08-05 |