学校实验,怎么都找不出错哪了。求帮助
/*调试下列程序,使之具有如下功能: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;//这里不懂返回值怎么回事,求细说*/
}