C语言,我这题错在哪

来源:百度知道 编辑:UC知道 时间:2024/05/07 05:35:22
题目要求编写int fun( int lim, int aa[MAX])函数,函数功能是求出等于或小于lim的所有素数并放在aa数组中,返回求出素数的个数
#include <stdio.h>
#include <conio.h>
#define MAX 100

int fun( int lim, int aa[MAX])
{int i,j,n=0;
for(i=2;i<=lim;i++)
for(j=2;j<i;j++)
if(i%j!=0&&i%2!=0)
a[n++]=i;
return n;
}

main()
{
int limit,i,sum;
int aa[MAX] ;
FILE *out;
printf("输入一个整数");
scanf(" %d", &limit);
sum=fun(limit, aa);
for(i=0 ; i < sum; i++)
{
if(i%10 == 0 && i !=0)
printf("\n");
printf("%5d", aa[i]);
}
sum=fun(28, aa);
out = fopen("out.dat", "w");
for(i=0 ; i < sum; i++)
fprintf(out, "%d\n", aa[i]);
fclose(out);
}

a[n++]=i;
这个a没有定义吧

素数不是一次取模不为零就是的。二是所有取模不为零。

int fun( int lim, int aa[MAX])
{
int i,j,n=0;
for(i=2;i<=lim;i++)
{
for(j=2;j<i;j++)
if(i%j!=0&&i%2!=0)continue;

a[n++]=i;
}
return n;
}

基本功能是求素数可是我没看出来这里有求素数的合法代码,这也不是VB,变量用之前一定要定义,可能是你打错了,