浮点异常核心已弃用-非平方数查找器

问题描述

我有问题。我已经花了好几个小时了,我终于以为我有了草稿,我解决了我犯的一些错误,但是现在当我运行它时,它会键入“ Floating point exception(core dumped)”。我能够解决其他一些问题,但我认为我必须从头开始才能克服这个问题,我不知道是什么原因造成的,我想知道这里是否还有更多知识渊博的人可以看看并尝试找出可能的错误。我的程序应该找到非平方数-不能被整数平方整除的数字。它首先找到要除以的平方,然后将非平方数候选数除以指定的整数。然后输入找到的所有数字。我认为我很可能在使用指针时犯了一个错误,我还没有完全掌握这些指针,并且很可能仍然无法解决相关问题。

#include <stdio.h>
#include <limits.h>
#include <math.h>
#include <stdlib.h>

int isNonSq (int a,int sqr) {
    int b=0.75*a;
    for (int i=2;i<b;i++) {
        if (a%sqr[i]==0) return 0;
    }
    return 1;
}

int main ( void ) {
    int a;
    int * resNum;
    int * sqr;
    while (!feof(stdin)) {
        if (scanf(" %d",&a)!=1||a<=0) {
            printf("Nespravny vstup.\n");
            return 0;
        } else {
            int b,c=1;
            b=0.75*a;
            resNum=(int)malloc(a*sizeof(resNum));
            sqr=(int)malloc(a*sizeof(*sqr));
            for (int i=2;i<sqrt(a);i++)
                sqr[i]=pow(i,2);
            for (int i=1;i<b;i++) {
                if (isNonSq(i,sqr)) {
                    resNum[c]=i;
                    c++;
                }
            }
        }
    }
    for (int i=1;i<a;i++) {
        printf(" %d",resNum[i]);
    }
    printf("\n");
    free(resNum);
    free(sqr);
    return 0;
}

解决方法

这可能是由于NaN或无穷大而发生的,我建议您使用gdb来了解运行已编译的c代码时发生的情况。 https://www.cs.swarthmore.edu/~newhall/unixhelp/howto_gdb.php

祝你好运!

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...