WYHfighting @ 2021-01-07 14:05:30
#include<stdio.h>
int count=0;
int row;
void print(int len,int n)
{
int i;
for(i=0;i<len;i++)
{
printf("%d",n);
count++;
if(count%row==0) printf("\n");
}
}
int main(){
int sum=0,number=0,i,j,row,a[201]={0},num=0;
scanf("%d",&row);
for(i=0;sum!=(row*row);i++)
{
scanf("%d",&a[i]);
sum+=a[i];
num++;
}
for(i=0;i<num;i++)
{
print(a[i],number);
number=1-number;
}
return 0;
}
第十二行的if(count%row==0) printf("\n");这里,调试到这一步就会报错,如果把这一行注释掉程序就能正常运行,这一行我想表达的作用就是换行. 万分感谢!
by WYHfighting @ 2021-01-07 14:06:26
出错的地方在void print() {第三行}
by w23c3c3 @ 2021-01-07 14:09:14
@WYHfighting 你输入的row是主函数里面的row,但是在print里面的row却是全局变量row,全局变量初值是0,所以这样就会除以0
by WYHfighting @ 2021-01-07 15:11:29
@w23c3c3 懂了,谢谢你!主函数里的row忘了删,害