解题思路:
1.用gets()去接收字符串是包含空格的,仅仅以回车为结束标志。这是重点

参考代码:

#include"stdio.h"
int main()
{
    char a[1000];
    int n,i;
    scanf("%d",&n);        //接收直接输出的行数n 
    while(gets(a)!=0)      //依次接收字符串a 
       {
        n--;               //n以内的,直接输出
        if(n>=0)    
        {    
            for(i=0;a[i]!='\0';i++)    //结束符前,一个一个输出
            printf("%c",a[i]);
            printf("\n");    //换行
            printf("\n");        
        }
        else    //n行一下,就要遇到空格就换行了
        {
            for(i=0;a[i]!='\0';i++)   //
                if(a[i]==' ')   //遇到空格换行
                {
                    printf("\n");
                    printf("\n");
                }    
                else printf("%c",a[i]); 不是空格就将这个字符输出
                printf("\n");
                printf("\n");
        }    
    }
    return 0;
}

看看大家还有什么不懂得,请在下方评论区留言

点赞(17)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 9 条评论

我没有名字 5年前 回复TA
我一直以为要全部输入才能输出。。。。。。。。。。。。。。输入一行输出一行这题一点意思都没有,简直颠覆了我的三观
zy 5年前 回复TA
gets(a)!=0和!=‘\0’作用一样吧
MrShuai 6年前 回复TA
@Liamcoder 嗯!要吃掉一个回车键
会飞的鱼Ll 6年前 回复TA
把你的改了一下,刚开始和你想法一样,但是没写出来,然后看了你的写法,好像有点问题,就改了一下。现在提交上去是对的
会飞的鱼Ll 6年前 回复TA
"\n");
                    
                	}    
                	else if(a[i]!=' ')
					    
						printf("%c",a[i]);// 不是空格就将这个字符输出
						    
            	}
            	puts("\n");
        }    
    }
    
    return 0;
}
会飞的鱼Ll 6年前 回复TA
#include"stdio.h"
int main()
{
    char a[1000];
    int n,i;
    scanf("%d",&n);
	getchar();        //接收直接输出的行数n 
    while(gets(a)!=0)      //依次接收字符串a 
       {
        n--;               //n以内的,直接输出
        if(n>=0)    
        {    
            for(i=0;a[i]!='\0';i++)    //结束符前,一个一个输出
            printf("%c",a[i]);
            printf("\n");    //换行
            printf("\n");        
        }
        else    //n行一下,就要遇到空格就换行了
        {
            for(i=0;a[i]!='\0';i++)   //
                {
					if(a[i]==' '&&a[i-1]!=' ')   //遇到空格并且前一个字符不是空格换行
                	{
                    puts(
来刷算法 6年前 回复TA
什么时候循环结束?
Liamcoder 7年前 回复TA
你这个代码要在第6行后面加一句getchar();才是对的
别止 7年前 回复TA
写了很多次了,全部都是格式错误,提交你的代码也是格式错误,不明白本题的坑到底在哪