c程序设计语言习题 1-9
问题: 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格来代替
我的答案:
#include <stdio.h>
#define CHAR ' '
int main()
{
int c, i=0;
while((c = getchar()) != EOF)
if (c == CHAR) {
++i;
} else if(c != CHAR && i>0) {
putchar(CHAR);
putchar(c);
i = 0;
} else
putchar(c);
}
书上的答案(if 实现):
#include <stdio.h>
#define NONBLANK 'a'
int main()
{
int c, lastc;
lastc = NONBLANK;
while ((c = getchar()) != EOF) {
if (c != ' ')
putchar(c);
if (c == ' ')
if (lastc != ' ')
putchar(c);
lastc = c;
}
}
书上的答案(逻辑运算符 || 实现):
#include <stdio.h>
#define NONBLANK 'a'
int main()
{
int c, lastc;
lastc = NONBLANK;
while ((c = getchar()) != EOF) {
if( c != ' ' || lastc != ' ')
putchar(c);
lastc = c;
}
}
转载请注明:大后端 » C 程序设计语言 习题 1-9 答案