你得在现在的代码块外面再套一层循环。
定义一个测试用例组数变量T,scanf输入T的值,然后用for循环执行T遍代码块就可以测试T组数据了
既然是倍数的灯关闭或打开,你就没有必要用for循环逐个比较,可以用while循环只取倍数值进行比较
#include <stdio.h>
int main()
{
char lamp[100000] = {0};
int T,n,k,i,j,c;
scanf("%d",&T);
for(i=0;i<T;i++)
{
memset(lamp,0,sizeof(lamp));
scanf("%d%d",&n,&k);
for(j=1;j<=k;j++)
{
c=j;
while(c<=n)
{
if(lamp[c-1] == 1)
lamp[c-1] = 0;
else
lamp[c-1] = 1;
c += j;
}
}
for(j=0;j<n;j++)
if(lamp[j] == 1)
printf("%d ",j+1);
printf("\n");
}
return 0;
}