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

问题描述

我有问题。我已经花了好几个小时了,我终于以为我有了草稿,我解决了我犯的一些错误,但是现在当我运行它时,它会键入“ 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;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)