| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:宏的使用,求助一个小题!
只看楼主 加入收藏
y2157
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-11
收藏
 问题点数:0 回复次数:6 
宏的使用,求助一个小题!

小弟初来乍到,有一题向师兄们请教.
题目:三角形的面积公式为area=sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2. a,b,c为三角形的三条边,定义两个带参的宏,一个用来求s,另一个用来求AREA.写程序,在程序中用带实参的宏名来求面积AREA.
#include<stdio.h>
#include<math.h>
#define S(a,b,c) ((a+b+c)/2)
#define AREA(a,b,c) (sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)*(S(a,b,c)-b)*(S(a,b,c)*(S(a,b,c)-c)))
mian()
{
float a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("%8.3f\n",AREA((a,b,c););
else
printf("input error");
}
上面是我的答案,但是运行不了,我找了半天也找不出哪里出错,麻烦师兄们帮我看一下到底是哪出错了.

搜索更多相关主题的帖子: include 三角形 
2007-04-11 14:58
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
先不说别的,MAIN写错了,printf("%8.3f\n",AREA((a,b,c);); 多了个";"

雁无留踪之意,水无取影之心
2007-04-11 15:07
zhoulikelvjj
Rank: 1
等 级:新手上路
帖 子:85
专家分:0
注 册:2007-4-10
收藏
得分:0 

第一,不是mian(),是main()
第2,printf("%8.3f\n",AREA((a,b,c););
AREA(a,b,c)多了括号跟分号!
宏定义最后少2括号。是5个括号!

2007-04-11 15:11
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
#include<stdio.h>
#include<math.h>
#define S(a,b,c) (a+b+c)/2
#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c)) //你写的不符合公式
void main()
{
float a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("%8.3f\n",AREA(a,b,c)); //少了个";",多了个"(";
else
printf("input error");
}

雁无留踪之意,水无取影之心
2007-04-11 15:11
y2157
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-11
收藏
得分:0 

#include<stdio.h>
#include<math.h>
#define S(a,b,c) ((a+b+c)/2))
#define A(a,b,c) (sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)*(S(a,b,c)-b)*(S(a,b,c)*(S(a,b,c)-c)))
void main()
{
float a,b,c;
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
printf("%8.3f\n",A(a,b,c));
else
printf("input error");
}
我按照你们说的改了,还是调试不了啊
2007-04-11 15:24
lgh198168
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-7-4
收藏
得分:0 
回复:(y2157)#include#include

你那个#define A(a,b,c) (sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)*(S(a,b,c)-b)*(S(a,b,c)*(S(a,b,c)-c)))有错误.
在好好检查下.

2007-04-11 16:01
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

我在四楼已经给你全部更正了,你自己对比一下


雁无留踪之意,水无取影之心
2007-04-11 16:04
快速回复:宏的使用,求助一个小题!
数据加载中...
 
   



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

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