| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 786 人关注过本帖
标题:哎呀 究竟是哪儿错了啊!!!!
只看楼主 加入收藏
zh77
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:84
专家分:22
注 册:2011-8-5
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:16 
哎呀 究竟是哪儿错了啊!!!!
#include<stdio.h>
void main(){
    double s,m;
    s=f1(3)+f2(3)+f3(2);
    m=f3(10);
    printf("%lf\n%lf\n",s,m);
}

int f1(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i;
    }

    return s;
}

int f2(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i*i;
    }

    return s;
}

double f3(int n){
    int i;
    double s=0;

    for(i=1.0;i<=n;i++){
        s=s+1.0/i;
    }

    return s;
}
是f3函数错了    要算1/1+1/2+1/3...+1/n.怎么改啊  ?为什么错啊?
谢谢!
搜索更多相关主题的帖子: double 
2011-08-08 21:43
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
收藏
得分:0 
如果你只是要得到算1/1+1/2+1/3...+1/n的程序的话,那你个样写很是麻烦!
下面是我写的,你研究研究吧!
#include<stdio.h>
void main()
{
int i,n;
float f=0;
printf("输入n的值!\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
    f+=1/i;
printf("%.2f",f);
}
2011-08-08 22:10
zkdlyf168
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2011-4-17
收藏
得分:0 
#include<stdio.h>

double f1(int n){
    double i,s=0;
    for(i=1;i<=n;i++){
        s=s+(double)i;
    }

    return s;
}

double f2(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i*i;
    }

    return s;
}

double f3(int n){
    int i;
    double s=0;
    for(i=1;i<=n;i++){
        s=s+1.0/i;
    }

    return s;
}

void main(){
    double s,m;
    s=f1(3)+f2(3)+f3(2);
    m=f3(10);
    printf("%lf\n%lf\n",s,m);
}
2011-08-08 22:11
zkdlyf168
Rank: 2
等 级:论坛游民
帖 子:11
专家分:13
注 册:2011-4-17
收藏
得分:0 
上面是我刚给改的,具体代码自己看看吧..
2011-08-08 22:12
a597910538
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2011-5-21
收藏
得分:0 
你的程序我现在是仔细的看了下,有些东西是没有必要写的,比如f1、f2这两个函数!至于你的程序为什么会出错,是因为只你的主函数运行是找不到你自定义的函数f1、f2、f3,我有两种方法可以解决你的问题!   不过这是大的方向,细节问题你自己找找!
方案一:将你的自定义函数放到#include<stdio.h>下面
#include<stdio.h>

{
    int f1(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i;
    }

    return s;
}

int f2(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i*i;
    }

    return s;
}

double f3(int n){
    int i;
    double s=0;

    for(i=1.0;i<=n;i++){
        s=s+1.0/i;
    }

    return s;
}

void main()
{   double s,m;
    s=f1(3)+f2(3)+f3(2);
    m=f3(10);
    printf("%lf\n%lf\n",s,m);
}
方案二:引用你自定义的函数
#include<stdio.h>
#include"f1"    //这就是对你自定义函数的引用
#include"f2"
#include"f2"
void main(){
    double s,m;
    s=f1(3)+f2(3)+f3(2);
    m=f3(10);
    printf("%lf\n%lf\n",s,m);
}

int f1(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i;
    }

    return s;
}

int f2(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i*i;
    }

    return s;
}

double f3(int n){
    int i;
    double s=0;

    for(i=1.0;i<=n;i++){
        s=s+1.0/i;
    }

    return s;
}
2011-08-08 22:26
木偶然
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-6-12
收藏
得分:2 
没有函数声明,有两种方法解决
1、在主函数之前加函数声明
int f1(int n);
int f2(int n);
double f3(int n);
2、f1、f2、f3函数在主函数之前定义。
2011-08-08 22:37
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
程序代码:
#include <stdio.h>

double fun (int n)
{
    if (n == 1)
        return 1.0;
    return 1.0 / n + fun (n - 1);
}

void main()
{
    int n;
    double sum;
    printf ("输入n:\n");
    scanf ("%d", &n);
    sum = fun (n);
    printf ("值为:%f\n", sum);
}
用递归比较清楚

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-08-08 22:55
风生钧起
Rank: 4
来 自:江西
等 级:业余侠客
帖 子:383
专家分:246
注 册:2011-7-26
收藏
得分:0 
回复 2楼 a597910538
你程序逻辑有问题

墨一世红颜倾醉己    霁天谁与话风流

修仙``````````````````````````````````````````````
2011-08-09 00:24
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
#include<stdio.h>
int f1(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i;
    }

    return s;
}

int f2(int n){
    int i,s=0;

    for(i=1;i<=n;i++){
        s=s+i*i;
    }

    return s;
}

double f3(int n){
    int i;
    double s=0;

    for(i=1;i<=n;i++){
        s=s+1.0/i;
    }

    return s;
}
void main(){
    double s,m;
    s=f1(3)+f2(3)+f3(2);
    m=f3(10);
    printf("%lf\n%lf\n",s,m);
}

2011-08-09 08:04
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:2 
没有函数声明,函数声明共有3种方法:
     1.整型或者字符型函数可以不进行函数声明;
     2.被调用函数在主调函数之前定义;
     3.被调函数在主调函数之前进行过声明;

算法,数据结构,windows核心编程.
2011-08-09 08:42
快速回复:哎呀 究竟是哪儿错了啊!!!!
数据加载中...
 
   



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

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