求助大佬,报错program received signal SIGFPE

P1319 压缩技术

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忘了删,害


|