프로젝트 #1
void write_line(void)
{
int extra_spaces, spaces_to_insert, i, j;
extra_spaces = MAX_LINE_LEN - line_len;
for (i = 0; i < line_len; i++) {
if (line[i] != ' ')
putchar(line[i]);
else {
// spaces_to_insert = extra_spaces / (num_words - 1);
// 앞에 있는 단어들 사이의 공백이 뒤쪽의 공백보다 좁음
spaces_to_insert = (int) ceil(extra_spaces / (float) (num_words - 1));
// 앞에 있는 단어들 사이의 공백이 더 넓고, 뒤쪽의 공백이 더 좁음
for (j = 1; j <= spaces_to_insert + 1; j++)
putchar(' ');
extra_spaces -= spaces_to_insert;
num_words--;
}
}
putchar('\n');
}
#2
justify.c의 main 함수에서 다음 라인을 삭제
if (word_len > MAX_WORD_LEN)
word[MAX_WORD_LEN] = '*';
word.c의 read_word 함수의 가장 끝에 다음 두 줄을 추가
if (pos >= len)
word[pos - 1] = '*';
나머지는 프로젝트는 파일로만 저장함(각각 챕터 폴더 안에 프로젝트로)