C 程序设计语言 习题 1-9 答案

全栈 shanhuhai 1622℃

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 答案

喜欢 (1)or分享 (0)