c - C 中的质数到数组中

标签 c arrays

我尝试执行一个函数来对数组进行排序并仅显示素数。但我的数组的所有元素都是随机数,问题是该函数只显示负素数,而不是像 7 和 3 这样的正素数,我该怎么办才能解决这个问题

int prime_arr(int size, int *arr, int *sort_arr)
{
    int i, j, k = 0, flag;
    for (i = 0; i < size; i++)
    {
        flag = 0;
        for (j = 2; j < arr[i]/2; j++)
        {
            if (arr[i] % j == 0){
                flag = 1;
                break;
            }
        }
        if (flag == 0){
            sort_arr[k++] = arr[i];
        }
    }
    return j;
}

最佳答案

我发现代码有 3 个问题: 1. 你应该返回k,而不是j。 k 是 sort_arr 的大小 2. 你应该循环直到arr[i]/2,不能小于该值(参见下面代码中的<=) 3. 你不处理负数。将循环更改为以下内容:

for (j = 2; j <= abs(arr[i])/2; j++)

如果没有打印您的值的代码,我不确定您到底在寻找什么,但希望解决这些问题可以解决您的问题。

关于c - C 中的质数到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039332/

相关文章:

c - 如何继续搜索我的数组?

c - -mx32 GCcflags是否(正确)实现?

javascript - 循环函数javascript中未定义的数组

javascript - 在 javascript 中添加新元素时,拼接数组中第一个添加的对象

java - 为什么未填充此数组?

c - C 中有 setbase() 的等价物吗?如何在c中将基数设置为十进制、十六进制或八进制?

c - 我如何摆脱这个已经尝试了一天的错误?

c - 如何创建用户定义的头文件?希望我能在 C/C++ 中得到它

javascript - 二十一点 javascript 游戏无限循环

javascript - 使用数组和对象形成对象数组