首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

学校实验,如何都找不出哪里错了。求帮助

2013-01-05 
学校实验,怎么都找不出错哪了。求帮助/*调试下列程序,使之具有如下功能:fun函数是一个判断整数是否为素数的

学校实验,怎么都找不出错哪了。求帮助
/*调试下列程序,使之具有如下功能:fun函数是一个判断整数是否为素数的函数,使用该函数求1000以内的素数平均值。写出调试过程。*/
#include "stdio.h"
void main()
{ int a=0,k;   /* a保存素数之和 */
float av;   /* av保存1000以内素数的平均值 */
for (k=2;k<=1000;k++)
if (fun(k))   /* 判断k是否为素数 */
a+=k;
av=a/1000;
printf("av=%f\n",av);
}

fun(int n)    /* 判断输入的整数是否为素数 */
{ int i,y=0;
for(i=2;i<n;i++)
if (n%i==0) y=1;
else y=0;
return y;/这里不懂返回值怎么回事,求细说*/
}

[解决办法]
感觉你的程序有问题,我修改了下,如下


int fun(int n);    //在main函数前申明自定义的函数
void main()
{
int i,a=0,k;   /* a保存素数之和 */
float av;  /* av保存1000以内素数的平均值 */
for (i=0,k=2;k<=1000;k++)
{
if (fun(k))   /* 判断k是否为素数 */
{
a+=k;    //记下素数的和
i++;     //记下素数的数量
}
}
av=(float)a/i;
printf("av=%f\n",av);

system("pause");
}

int fun(int n)    /* 判断输入的整数是否为素数 */

int i,y=0;
for(i=2;i<n;i++)
{
if (n%i==0) 
{
    y=0;
    break;
}
else
    y=1;

}
return y;//这里不懂返回值怎么回事,求细说*/
}

fun函数返回y
当y为0时,说明n%i==0,即n能被2到n-1中的一个数整除,n就不为素数
y为1时,就说明它为素数了

热点排行