| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:求哪位高手帮忙修改一下这个程序
只看楼主 加入收藏
康冬亮
Rank: 1
来 自:成都
等 级:新手上路
帖 子:32
专家分:2
注 册:2010-8-14
结帖率:85.71%
收藏
 问题点数:0 回复次数:8 
求哪位高手帮忙修改一下这个程序
#include <stdio.h>
double f1(double x)
{
 return (x*x);
}
double f2(double x,double y)
{
 return (x*y);
}
 void fun(int i,double x,double y)
{
  if(i==1)
  return double f1(x);
  else
  return double f2(x,y);  
}
void main()
{
  double x1=5,x2=3,r;
  r=fun(1,x1,x2);
  r+=fun(2,x1,x2)
  printf("\nx1=%f,x1*x1+x1*x2=%f\n\n",x1,x2,r);
}
2010-08-23 12:37
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
void fun(int i,double x,double y)
{
  if(i==1)
  return double f1(x);
  else
  return double f2(x,y);  
}

这个函数让我很不解,御坂奇怪地回答

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-23 12:44
燕强
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:78
专家分:188
注 册:2010-8-11
收藏
得分:0 
以下是引用康冬亮在2010-8-23 12:37:13的发言:

#include
double f1(double x)
{
 return (x*x);
}
double f2(double x,double y)
{
 return (x*y);
}
 void fun(int i,double x,double y)
{
  if(i==1)
  return double f1(x);
  else
  return double f2(x,y);  
}
void main()
{
  double x1=5,x2=3,r;
  r=fun(1,x1,x2);
  r+=fun(2,x1,x2)
  printf("\nx1=%f,x1*x1+x1*x2=%f\n\n",x1,x2,r);  //你这里有三个要转换输出的变量,而只有两个转换格式%f,,出错
}
你看看加一个%f试试。
2010-08-23 12:53
康冬亮
Rank: 1
来 自:成都
等 级:新手上路
帖 子:32
专家分:2
注 册:2010-8-14
收藏
得分:0 
回复 3楼 燕强
  你说的很对   但这不是主要错误    return double f1(x);这里有错误  但不知道为什么?
2010-08-23 13:07
康冬亮
Rank: 1
来 自:成都
等 级:新手上路
帖 子:32
专家分:2
注 册:2010-8-14
收藏
得分:0 
回复 2楼 御坂美琴
是想定义一个函数。下面主函数里有引用,但是有错误但不知道为什么?
2010-08-23 13:09
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
return double f1(x);
返回double f1(x). 但是 这个double f(x) 这个类型很明显不是void类型。
参考答案一:
returan double f1(x);
改成  f1(x);
参考答案二:
#include <stdio.h>
double f1(double x)
{
return (x*x);
}
double f2(double x,double y)
{
return (x*y);
}
double fun(int i,double x,double y)
{
  if(i==1)
   return f1(x);
  else
   return f2(x,y);
}
void main()
{
  double x1=5.0,x2=3.0,r;
  r=fun(1,x1,x2);
  r+=fun(2,x1,x2);
  printf("\nx1=%f,x1*x1+x1*x2=%f\n\n",x1,x2,r);此句借楼上同仁一笔

  }


[ 本帖最后由 do8do8do8 于 2010-8-23 14:09 编辑 ]

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-08-23 13:54
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:0 
回复 6楼 do8do8do8
楼主语法错误太多了,认真检查下
2010-08-23 14:17
康冬亮
Rank: 1
来 自:成都
等 级:新手上路
帖 子:32
专家分:2
注 册:2010-8-14
收藏
得分:0 
回复 6楼 do8do8do8
十分感谢你  你说的很对   谢谢帮忙
2010-08-24 16:25
康冬亮
Rank: 1
来 自:成都
等 级:新手上路
帖 子:32
专家分:2
注 册:2010-8-14
收藏
得分:0 
回复 7楼 ggyy4k
   找到错误了   哈哈。。。
2010-08-24 16:26
快速回复:求哪位高手帮忙修改一下这个程序
数据加载中...
 
   



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

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