if (j > i-1) { s++; aa[n] = i; } 中 aa[n] = i; n什么意思?


#include<stdio.h>
#define MAX 100
int fun(int lim, int aa[])
{
    int i, j = 0, s = 0, n = 0;
    for (i = 2; i <lim; i++)
    {

        for (j = 2; j <= i; j++)
        {
            if (i % j == 0)break;

        }
        if (j > i-1)
        {
            s++;
            aa[n] = i;

        }
    }
    return s;
}
int main()
{
    int aa[MAX];
    int lim, s;
    scanf("%d", &lim);
    s = fun(lim, aa);
    printf("%d", s);
    printf("\n");
    return 0;
}

n是数组x下标,取数组n下标对应的位置的变量,赋值或者取值

img

这个代码是干什么的

n 是数组的下标,这里应该是 aa[n++] = i; ,也可以少用一个变量,修改如下,供参考:

int fun(int lim, int aa[])
{
    int i, j = 0, s = 0, n = 0;
    for (i = 2; i <lim; i++)
    {

        for (j = 2; j <= i; j++)
        {
            if (i % j == 0)break;

        }
        if (j > i-1)
        {
            //s++;
            aa[s++] = i;//aa[n] = i;

        }
    }
    return s;
}