| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1386 人关注过本帖
标题:★求助看看这个函数错在哪里?★在线等!
只看楼主 加入收藏
bianchengfeng
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-3-1
收藏
 问题点数:0 回复次数:10 
★求助看看这个函数错在哪里?★在线等!
#include<stdio.h>
#include<math.h>
double
sum(double a[20]);[size=5]
main()
{
   
double a[20]={0,0,1};
   
int i,sum=0;
   
for(i=1;i<18;i++)
        
a[i+2]=a[i+1]+a[i];
   
printf("sum=%f\n,sum(a[20])");

}

double sum(double a[20])
//该函数用于a[20]的各项平方根之和,看看错在哪里。
{
   
int i;
   
double sum;
   
for(i=0;i<20;i++)
        
sum+=sqrt(a[i]);
   
return sum;
}
[/size]
搜索更多相关主题的帖子: 函数 include math double 
2008-05-15 19:49
bianchengfeng
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-3-1
收藏
得分:0 
帮帮忙啊!急!!
2008-05-15 20:05
bianchengfeng
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-3-1
收藏
得分:0 
为什么没有人帮忙啊?
2008-05-15 20:17
lynette
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-12
收藏
得分:0 
主函数中不应该定义sum,将sum=0去掉即可
2008-05-15 20:26
lynette
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-12
收藏
得分:0 
还有,你写的printf函数中引号放的地方不对,估计是你粗心写错的吧^_^
2008-05-15 20:31
bianchengfeng
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2008-3-1
收藏
得分:0 
可是还是有错误啊
2008-05-15 20:38
liaojuncong
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-4-26
收藏
得分:0 
#include<stdio.h>
#include<math.h>
#define N 20
double sum(double a[]);
main()
{
    double a[N]={0,0,1};
    int i;
    for(i=1;i<18;i++)
        a[i+2]=a[i+1]+a[i];
    printf("sum=%f\n",sum(a));

}

double sum(double a[])
{
    int i;
    double sum=0;
    for(i=0;i<20;i++)
        sum+=sqrt(a[i]);
    return sum;
}
2008-05-15 20:39
liaojuncong
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-4-26
收藏
得分:0 
#include<stdio.h>
#include<math.h>
#define N 20
double sum(double a[],int n);
main()
{
    double a[N]={0,0,1};
    int i;
    for(i=1;i<18;i++)
        a[i+2]=a[i+1]+a[i];
    printf("sum=%f\n",sum(a,N));

}

double sum(double a[],int n)
{
    int i;
    double sum=0;
    for(i=0;i<20;i++)
        sum+=sqrt(a[i]);
    return sum;
}
2008-05-15 20:42
光影门徒
Rank: 2
等 级:论坛游民
帖 子:103
专家分:28
注 册:2008-4-24
收藏
得分:0 
你的错误关键出在数组做函数的实参时,要把数组的首地址传递被函数。
  还有你的SUM()函数中的sum没有定义,要在SUM()中定义sum或者把sum定义为全局变量。
  最后还有上面的提到的 printf("sum=%f\n,sum(a[20])");中的引号问题。
改了下,代码如下:
#include<stdio.h>
#include<math.h>
double sum(double a[20]);
void main()
{
    double a[20]={0,0,1};
    int i;
   
    for(i=1;i<18;i++)
        a[i+2]=a[i+1]+a[i];
    printf("sum=%f\n",sum(a));

}

double sum(double a[20])//该函数用于a[20]的各项平方根之和,看看错在哪里。
{
    int i;
    double sum=0;
    for(i=0;i<20;i++)
        sum+=sqrt(a[i]);
    return sum;
}

多看少说,重在学习!
2008-05-15 22:12
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
回复 1# 的帖子
你的sum函数中的sum没有赋初值!
所以sum+=sqrt(a[i])就有了问题了!
你的main函数和sum函数的变量sum是两个不同的局部变量!
main函数中可以不要!
在sum函数中的变量sum的的定义改成double sum=0就可以了!

或者直接把sum设成全局变量!
2008-05-16 20:03
快速回复:★求助看看这个函数错在哪里?★在线等!
数据加载中...
 
   



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

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