两个搞不明白的问题?

chwhang 2003-08-19 10:24:07
1。
#include <math.h>
main()
{float area(float x,float y,float z);
float a,b,c,d;
printf("please input three udge :\n");
scanf("%f,%f,%f",&a,&b,&c);
d=area(a,b,c);
if(a+b>c&&a+c>b&&b+c>a)
printf("triangle area is %f\n",d);
else printf("this tape isn't triangle.");
}

float area(float x,float y,float z)
{
float w,q;
q=x+y+z;
w=sqrt((q-x)*(q-y)*(q-z));
return(w);
}

在TC调试时没有warnings和errors.但运行输出3 4 5后
就出来一句:floating point error:domain.
请问是什么意思呀?上面的编程有错吗?
2。
main()
{
int s=1;
printf("%d%d%d",s,++s,s--);
printf("%d%d%d",s,s++,s--);
}
运行的结果是:
111
101
真搞不懂是什么意思呀?请问他的计算先后是怎样?
...全文
28 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostAdz 2003-08-19
  • 打赏
  • 举报
回复
楼上都说完了,而且都正确
yang8210 2003-08-19
  • 打赏
  • 举报
回复
第一:输入格式不匹配
第二:计算顺序从右到左
ppm07 2003-08-19
  • 打赏
  • 举报
回复
scanf("%f,%f,%f",&a,&b,&c);改成scanf("%f%f%f",&a,&b,&c);就可以了。

cacf10 2003-08-19
  • 打赏
  • 举报
回复
1、看看你的scanf(),里边要求的输入格式是3,4,5(一定要有逗号!!)
quickball 2003-08-19
  • 打赏
  • 举报
回复
第二个:
参数从右向左进栈,s--先取得值1,然后作--,s--表达式的值是0;++s先做++,++s表达式的值是1,s的值也就是1了;最后,s的值输出1。
第二个printf意思是一样的。
ZhangYv 2003-08-19
  • 打赏
  • 举报
回复
1. 你输入 3,4,5 看看?
2. 自右向左
vico2 2003-08-19
  • 打赏
  • 举报
回复
yang8210(yang) is right
GhostAdz 2003-08-19
  • 打赏
  • 举报
回复
给别人结帐吧 呵呵
chwhang 2003-08-19
  • 打赏
  • 举报
回复
thank you to everyboby.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧