sdufezqh @ 2023-10-25 07:39:56
#include<stdio.h>
int main()
{
int i=0,n,j,m,l;
scanf("%d",&n);
for(i=0;i<n*n;)
{
scanf("%d %d",&m,&l);//为实现0,1交替,我一次性输入两个数
if(m==NULL)//如果第一个数是空,直接结束程序运行
return 0;
else if(n==NULL)//如果第二个数是空,只进行第一个数
{
for(j=0;j<m;j++)//输出m(刚才输入第一个数)个0
{
printf("0");
i++;
if(i==n)
{
printf("\n");//如果位数超过n,换行
i=0;//重新计数
}
}
return 0;//结束程序运行
}
else//两个数都不是空,输出m个0,n个1,道理同上,不跳出循环
{
for(j=0;j<m;j++)
{
printf("0");
i++;
if(i==n)
{
printf("\n");
i=0;
}
}
for(j=0;j<l;j++)
{
printf("1");
i++;
if(i==n)
{
printf("\n");
i=0;
}
}
}
}
return 0;
}
by sdufezqh @ 2023-10-25 07:42:56
谢谢大家
by Bai_Kking @ 2023-10-25 08:54:39
@sdcjdxzqh1 换行和重新计数那里有点问题,因为
#include<bits/stdc++.h>
int main()
{
int i=0,n,j,m,l;
int cnt=0;
scanf("%d",&n);
for(i=0;i<n*n;)
{
scanf("%d %d",&m,&l);//为实现0,1交替,我一次性输入两个数
if(m==NULL)//如果第一个数是空,直接结束程序运行
return 0;
else if(n==NULL)//如果第二个数是空,只进行第一个数
{
for(j=0;j<m;j++)//输出m(刚才输入第一个数)个0
{
printf("0");
i++,cnt++;
if(cnt==n)
{
printf("\n");//如果位数超过n,换行
cnt=0;//重新计数
}
}
return 0;//结束程序运行
}
else//两个数都不是空,输出m个0,n个1,道理同上,不跳出循环
{
for(j=0;j<m;j++)
{
printf("0");
i++,cnt++;
if(cnt==n)
{
printf("\n");
cnt=0;
}
}
for(j=0;j<l;j++)
{
printf("1");
i++,cnt++;
if(cnt==n)
{
printf("\n");
cnt=0;
}
}
}
}
return 0;
}
by Bai_Kking @ 2023-10-25 08:56:24
@sdcjdxzqh1 除此之外还有一点问题,给你一个数据吧~
input:
5 0 5 2 1 2 5 2 1 2 5
output:
11111
00100
11111
00100
11111
by Bai_Kking @ 2023-10-25 09:22:27
@sdcjdxzqh1 还有问题:
当输入有0的时候会直接 return 0
后面输入的数量不确定,准确来说是奇偶性不确定
by Bai_Kking @ 2023-10-25 09:31:50
可以看一下我的代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
int i=0,cnt=0;//i:记录当前输入第i个的数值
scanf("%d",&n);
while(scanf("%d",&m)!=EOF){//可以理解为一直输入,直到没有可以输入为止
if(i%2==0){//判断该输出0还是输出1
for(int j=1;j<=m;j++){
printf("0");
cnt++;
if(cnt==n){
printf("\n");
cnt=0;
}
}
}
else{
for(int j=1;j<=m;j++){
printf("1");
cnt++;
if(cnt==n){
printf("\n");
cnt=0;
}
}
}
i++;//每次个数+1
}
return 0;
}
by sdufezqh @ 2023-10-25 09:42:37
@Bai_Kking 谢谢,我改一改,麻烦您了
by sdufezqh @ 2023-10-25 15:49:20
@Bai_Kking 谢谢您,我改明白了