Tôi đang học C từ k & r làm ngôn ngữ đầu tiên và tôi chỉ muốn hỏi, nếu bạn nghĩ rằng bài tập này đã được giải quyết đúng cách, tôi biết rằng nó có thể không hoàn chỉnh như bạn muốn thích, nhưng tôi muốn xem, vì vậy tôi biết tôi đang học C đúng.K & R Chương 1 - Bài tập 22 giải pháp, bạn nghĩ sao?
Cảm ơn
/* Exercise 1-22. Write a program to "fold" long input lines into two or
* more shorter lines, after the last non-blank character that occurs
* before then n-th column of input. Make sure your program does something
* intelligent with very long lines, and if there are no blanks or tabs
* before the specified column.
*
* ~svr
*
* [NOTE: Unfinished, but functional in a generic capacity]
* Todo:
* Handling of spaceless lines
* Handling of lines consisting entirely of whitespace
*/
#include <stdio.h>
#define FOLD 25
#define MAX 200
#define NEWLINE '\n'
#define BLANK ' '
#define DELIM 5
#define TAB '\t'
int
main(void)
{
int line = 0,
space = 0,
newls = 0,
i = 0,
c = 0,
j = 0;
char array[MAX] = {0};
while((c = getchar()) != EOF) {
++line;
if(c == NEWLINE)
++newls;
if((FOLD - line) < DELIM) {
if(c == BLANK) {
if(newls > 0) {
c = BLANK;
newls = 0;
}
else
c = NEWLINE;
line = 0;
}
}
array[i++] = c;
}
for(line = 0; line < i; line++) {
if(array[0] == NEWLINE)
;
else
printf("%c", array[line]);
}
return 0;
}
Có lẽ bạn nên giải quyết bài tập về nhà của mình ssignments? –
@Phil: tôi nghĩ rằng anh ấy đã làm ... điều đó hoặc khối mã khổng lồ đã được nôi. – Shog9
@Phil, có nhiều tiền lệ cho những người hỏi câu hỏi về bài tập về nhà miễn là họ đã nỗ lực. Và bạn không thực sự biết rằng đó là bài tập về nhà, @svr có thể là tự học. Điều này chắc chắn là tốt hơn so với các chú hề vừa cắt và dán câu hỏi bài tập về nhà của họ đúng nguyên văn. – paxdiablo