红豆泥! 2021-05-24 08:54 采纳率: 85%
浏览 253
已结题

请大家帮忙改一下代码,怎么做到输出结果之间以空格分隔,第一个输出项之前和最后一个输出项之后不要空格

#include<stdio.h>
#include<string.h>
 
bool light[10000];
int main(){
	int n,k,i,j;
	while (scanf("%d %d",&n,&k)!=EOF)
		{
		for(i=2;i<=k;i++)
		{
			for(j=2;j<=n;j++)
			{
				if(j%i==0) light[j]= !light[j];
			}
		}
		for(i=2;i<=n;i++)
		{
			if(light[i]!=0) printf("%d ",i);
		}
			printf("\n");
	}
	return 0;
}

样例输入

7 3

20 5

样例输出

2 3 4

2 3 5 9 12 14 20

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-05-24 09:14
    关注

    代码修改如下:如有帮助,请采纳一下,谢谢。

    
    #include<stdio.h>
    #include<string.h>
    bool light[10000];
    int main(){
    	int n,k,i,j;
    	while (scanf("%d %d",&n,&k)!=EOF)
    	{
    		for(i=2;i<=k;i++)
    		{
    			for(j=2;j<=n;j++)
    			{
    				if(j%i==0) light[j]= !light[j];
    			}
    		}
    		for(i=2;i<=n;i++)
    		{
    			if(light[i]!=0) 
    			{
    				if (i < n)
    				{
    					printf("%d ",i);
    				}else
    					printf("%d",i);
    				
    			}
    		}
    		printf("\n");
    	}
    	return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日