有关一个c语言的自定义函数的一个返回值的问题;在线等

intfact(intn){inti,j;for(i=1;i<=10;i++){for(j=2;j<=i;j++){if(i%j==0)break;}if(i==j)}r... int fact(int n)
{
int i,j;
for(i=1;i<=10;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)break;
}if(i==j)
}return i;
}

就是这个自定义函数,我需要返回2 3 5 7,请问我该怎么做?
展开
 我来答
倒退不悔
2012-12-28 · 超过19用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:44.6万
展开全部

如果你想要结果在fact()子函数里输出,可以按下面这个程序来做

#include<stdio.h>

int fact(int n)

 int i,j; 

    for(i=1;i<=n;i++) 

 { 

  for(j=2;j<=i;j++) 

  {   

   if(i%j==0) break;

  }

  if(i==j)  printf("%d,",i);

 }

 


int main()

{

 int n,i;

    printf("input numbers:");

 scanf("%d",&n);

    fact(n);

 return 0;

}

 

如果你想要在主程序中输出

可以在子程序中定义数组保存,用指针传参,或者数组传参

expectances
2012-12-28 · TA获得超过4086个赞
知道小有建树答主
回答量:921
采纳率:50%
帮助的人:761万
展开全部
int fact(int n)
{
int i,j;
for(i=1;i<=10;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)break;
}
if(i==j)
printf("%d\n", i);//如果只是要打印,这样既可,如果要返回,你得用数组或者动态分配内存
}
}
更多追问追答
追问
这样只返回2 啊
追答
等下,我给你改下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2012-12-28 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
可以在main中定义一个全局变量数组int a[100];用a[0]保存素数的个数,a[i]保存第i个素数。在过程中每找到一个素数,就a[0]++;然后再保存这个数。
int fact(int n)
{
int i,j;
for(i=1;i<=10;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)break;
}
if(i % j != 0)
{
a[0]++;
a[a[0]]=i;
}
for(i=1;i<=a[0];i++)
printf(" %d",a[i]);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式