| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 647 人关注过本帖
标题:C自己编的一个程序。千丝万缕不知道错在哪儿?求大家帮助!
只看楼主 加入收藏
方一鸣
Rank: 2
等 级:论坛游民
帖 子:74
专家分:13
注 册:2011-8-31
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:6 
C自己编的一个程序。千丝万缕不知道错在哪儿?求大家帮助!
3.程序设计题
请编写函数fun,其功能是:计算并输出3到m之间所有素数的平方根之和。
例如,若主函数从键盘给m输入50后,则输出为s=63.665791。
注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。
#include <math.h>
#include <stdio.h>
double fun(int m)
{

}
main()
{
 int m;
 double s;
 FILE *out;
 printf("\n\nInput m:  ");
 scanf("%d",&m);
 s=fun(m);
 printf("\n\ns=%f\n\n",s);
 out=fopen("outfile.dat","w");
 for(m=0;m<10;m++)
 fprintf(out,"%f\n",fun(m+80));
 fclose(out);
}

我的结果是:

#include <math.h>
#include <stdio.h>
double fun(int m)
{
    int i,j,k=0;
    int *a;
    float *b;
    float s=0.0;
   
    for(i=3;i<=m;i++)
    {
    for(j=2;j<=i;j++)
    {
    if(i%j==0)
        break;
    if(j>=i)
        a[k++]=i;
    }
    }
    for(i=0;i<k;i++)
        a[i]=sqrt(b[i]);
    for(i=0;i<k;i++)
        s=s+b[i];
    return s;

}
main()
{
 int m;
 double s;
 FILE *out;
 printf("\n\nInput m:  ");
 scanf("%d",&m);
 s=fun(m);
 printf("\n\ns=%f\n\n",s);
 out=fopen("outfile.dat","w");
 for(m=0;m<10;m++)
 fprintf(out,"%f\n",fun(m+80));
 fclose(out);
}

请问我错在那儿了呢?
搜索更多相关主题的帖子: 程序设计 include double 平方根 
2011-09-07 22:53
方一鸣
Rank: 2
等 级:论坛游民
帖 子:74
专家分:13
注 册:2011-8-31
收藏
得分:0 
int i;
    float k,s=0.0;

    for(i=3;i<=m;i++)
        k=sqrt(i);
    for(i=2;i<=k;i++)
    {    if(m%i==0)
            break;
        if(i>=k+1)
            s+=sqrt(i);
    }
        return s;
2011-09-07 23:02
方一鸣
Rank: 2
等 级:论坛游民
帖 子:74
专家分:13
注 册:2011-8-31
收藏
得分:0 
貌似我编了两个错误的  致命打击呀
2011-09-07 23:03
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:2 
double fun(int m)
{
    int i,j,k=0;
    int a[100];
    float s=0.0;
   
    for(i=3;i<=m;i++)
    {
    for(j=2;j<=i;j++)
    {
    if(i%j==0)
        break;
    if(j>=i)
        a[k++]=i;
    }
    }
   /* for(i=0;i<k;i++)
        a[i]=sqrt(b[i]);
    for(i=0;i<k;i++)
        s=s+b[i];
  */
for(i=0;i<k;i++)
        s=s+sqrt(a[i]);
    return s;
}
应该是这样的,a要定义数组,不是指针

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-09-07 23:27
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
s应该是double,刚刚没有看到

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-09-07 23:28
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:2 
回复 楼主 方一鸣
哪位帮我把下面代码,换行下,手机无法换行! #include<math.h> double fun(int m ) { int i,j,k;声明 double sun=0;初始化 for(i=3;i<=m;i++)m的范围 for(j=2;j<(int)sqrt((double)i);j++)除了一和本身,不能被整除 if((int)sqrt((double)i)==0) {k=0;不能整除 break;跳出内循环 } else {k=1; continue;}否则战停 if(k==1) sun+=sqrt((double)m);范围内素数的平方根都加起来 return sum;返回值 }

[ 本帖最后由 A13433758072 于 2011-9-8 14:45 编辑 ]

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-08 00:17
方一鸣
Rank: 2
等 级:论坛游民
帖 子:74
专家分:13
注 册:2011-8-31
收藏
得分:0 
o
2011-09-08 19:01
快速回复:C自己编的一个程序。千丝万缕不知道错在哪儿?求大家帮助!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067357 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved