#include <stdio.h>
#define NONBLANK 'a'
main()
{
int c,lastc;
lastc=NONBLANK;
while((c=getchar())!=EOF)
{
if (c!=' ')
putchar(c);
if (c==' ')
if(lastc!=

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Tika

    15人对此回答表示赞同

    如果c是空格,看lastc,其初始值不等于空格,输出字符c(第一个空格),让lastc等于空格值
    循环
    如果新输入的c是空格,看lastc,lastc等于上个c的值(c的旧值为空格),所以不执行输出字符c,让lastc等于空格值

    这样只要是连续的空格都只会输出一个空格

    以上字符型跟int类型比较或者赋值给int类型时,都要先对char型进行int类型提升
    展开
    15
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • Elijah

    1人对此回答表示赞同

    楼主你好。第二个if语句作用是,如果c是空格的话,在这个前提下,如果lastc不是空格则输出c,对于lastc的初始值为a那么第一次执行时if条件满足,所以输出了一个c也就是空格,然后把空格赋值给lastc。 接下来进入while的第二次循环,假设这次读的还是空格,那么又到了第二个if语句, 这时候判断lastc是不是空格了,有了上一次的赋值,此时if(lastc!=' ')中的条件不满足,则不执行putchar(c),lastc仍然为空格,接下来重复。解释的应该清楚吧?
    展开
    1
    0回复
    发布于 5年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部