无法添加到 "C" 中的数组

Not Able To Add To Array In "C"

我有一个程序用于计算特定数字的质数,然后我必须将它放入一个数组中以便对这些数字进行一些数学运算;但是,我 运行 遇到了无法将收集到的素数放入数组中的问题。

当前代码

#include <stdio.h>
#include "pairs.h"
#define SIZE 1000

int main(){
    int n, m, count, i=0, res = 0;
    char prime[SIZE];

    scanf("%d %d", &n, &m);


    // while(count >= 1){
    //     // count = getchar();
    //     // prime[i++] = count;
    for(count = n; count >= 2; count--){
        if(primed(count) == 0){
            prime[i++] = count;
        }

    }
    printf("%s",prime);
    return 0;

}

int primed(int num){
    int primes;
    for(primes = 2; primes<=num/2; primes++){
        if (num % primes != 0){
            continue;
        }
        else{
            return 1;
        }
    }
    return 0;
}

我希望将for循环中收集的数字添加到数组中

嗯,你的代码有效,问题是你没有很好地打印数组,试试这个打印数组的代码,它与你想要放入的元素类型相同,所以 int prime[SIZE]:

int j;
for(j = 0; j < i; j++)
    printf("%d ", prime[j]);
printf("\n");

请注意,当您从最后一个元素开始计算时,数字将以相反的顺序排列,因此如果您输入 10,您将得到:

7 5 3 2 

您用于打印数组的 %s 用于打印字符串(以字符“\0”结尾的字符数组)。如果要打印所有其他类型的数组,则必须使用循环并打印每个元素。