为什么没有返回结果
#include<stdio.h>
int main()
{
int fun(int n,int y[]);
int i,x,j,m,n;
int y[100];
scanf("%d",&x);
fun(n,y);
printf("%d",n);
for(j=0;j<n;j++);
y[j]=i;
printf("%d",y[j]);
return 0;
}
fun(int n,int y[])
{
int i,j,x,k;
for(i=2;i<=x;i++)
{k=1;
for(j=2;j<=i-1;j++)
{
if(i%j==0)
k=0;
}
if(k==1)
n++;
}
return n;
}
程序错的太多了,按你的改好的(只是参考,可以运行及有结果)
#include<stdio.h>
int main()
{
int fun(int n,int y[]);
int i,x,j,m,n;
int y[100];
scanf("%d",&x);
n=fun(x,y); //你这里完全不对
printf("%d
",n);//输出分行
for(j=0; j<n; j++) //这个循环不正确
{
// y[j]=i; 这个赋值没理由
printf("%d ",y[j]);
}
return 0;
}
int fun(int n,int y[]) //返回值要
{
int i,j,x,k;
x=n; //x要赋值
n=0; //n清0
for(i=2; i<=x; i++)
{
k=1;
for(j=2; j<=i-1; j++)
{
if(i%j==0)
k=0;
}
if(k==1)
y[n++]=i; //这里赋值
}
return n;
}
不是函数,是主程序,哪来的返回结果?
语法拼错了。所以就没有返回。