3개의 댓글이 있습니다.
-
-
riceluxs1t -
물론 저도 처음 시작을 할 때 비슷하게 질문을 하긴 했지만 이런 질문을 보면 정말 난감합니다.. 코드를 주석과 함께 상세히 올려주시면 다른 사람들이 오답 케이스가 어디서 날지 찾는데 도움이 될 겁니다
9년 전 link
-
-
-
kyungsun.oh -
ㅋㅋ 저희는 채점머신 볼 수 있는 분이 답글 달아주시는 줄 알구.. ㅎ
근데 이거 입력 문자열이 아예 빈줄일 수도 있는건가요?예를들어
1
3hello-
world인 경우요?
9년 전 link
-
-
-
kyungsun.oh -
#include
#include
#include
#include#define MAXLEN 85 // 각 문장의 길이 (0~80)
#define MAXLINE 55 // 문장의 줄 수 (~50)int main(void) {
int T, tcase; // 기본변수 : 테스트케이스
int numLine, lenStr, lenWord, cntWord; // 추가변수 :
int i, j; // 부가변수 : 루프제어용
float average, sum;
char input[MAXLINE*MAXLEN], tmp[MAXLEN];setbuf(stdout, NULL); scanf("%d", &T); for (tcase=0; tcase<T; tcase++) { sum = lenWord = cntWord = 0; input[0] = '\0'; scanf("%d", &numLine); // 입력받고 getchar(); // numLine 뒤의 개행문자를 읽고 버림 for (i=0; i<numLine; i++) { gets(tmp);
// printf("[%s]", tmp);
lenStr = strlen(input);
if (input[lenStr-1]=='-' && isalpha(input[lenStr-2])) { // 현재 입력의 끝 두문자가 알파벳+'-'이면
input[lenStr-1] = '\0'; // 맨 끝의 '-'을 없앤 후
strcat(input, tmp); // 그 자리부터 tmp를 덧붙임
}
else { // 그렇지 않고 개행된 경우
input[lenStr] = '-'; // 현재 입력의 맨 끝에 '-'을 추가한 후
input[lenStr+1] = '\0'; // (다음 줄이 빈줄인 경우에도 개행되었음을 표시하게 됨)
strcat(input, tmp); // tmp를 덧붙임
}
}lenStr = strlen(input); for (i=0; i<=lenStr; i++) { if (isalpha(input[i])) lenWord++; else if (lenWord>0) { sum += lenWord; lenWord = 0; cntWord++; } }
// printf("[%s %.3f]\n", input, sum/cntWord);
printf("%.3f\n", sum/cntWord);
}return 0;
}도움 부탁드려요
테스트 케이스는
3hello-
world
3
hello-world
을 포함하여 제시된 예제들, 원문의 예제들 등을 해봤습니다.
9년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
tghbjhpark81
wordlength 문제를 풀고 있습니다
원문에 나오는 예제및 여러 경우를 대입해 보아도
답은 잘 나오고 있으나,
실제 재출하면 오답으로 나오고 있습니다.
도저히 오답 케이스가 떠오르지 않아 검색을 해보았지만,
원하는 답을 얻지 못하여 질문 남깁니다.
고수님들 답변 부탁드립니다.
미리 감사합니다
9년 전