当前位置: 代码迷 >> C语言 >> [求助]求助2道题目写了2天了
  详细解决方案

[求助]求助2道题目写了2天了

热度:111   发布时间:2006-11-11 14:08:09.0
[求助]求助2道题目写了2天了
#include<stdio.h>
#include<math.h>
{
int a,b,c;
float area,s,x;
printf("Plesae input a,b,c");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2.0;
x=s*(s-a)*(s-b)*(s-c);
area=sqrt(x);
printf("area=%f\n",area);
}
else
printf("error!");
}


不知道错哪里今年大1而且是大专寒不过还是有点志向和野心的……刚刚学到IF语句和SWITH开关语言这道题目是要我输入a,b,c代表三角形的3条边然后看是否能构成三角形,可以的话输出area=sqrt(s*(s-a)*(s-b)*(s-c))我忘了这是什么了书没带回家不过是要输出这个area,sqrt是根号键盘打不出老师说用这个代替……也不知道有没有打错,然后就是如果不能构成三角形就输出错误,这程序自己搞了2天了都不知道错哪里也找不到老师……这年头老师都是幽灵一下课就消失了希望各位老大帮帮忙告诉我错哪里!谢谢!
搜索更多相关的解决方案: 大专  include  三角形  而且  

----------------解决方案--------------------------------------------------------
第2题输入3个整数然后按由小到大排列
#include<stdio.h>
{
int x,y,z,a,b,c;
scanf("%d,%d,%d,"&x,&y,&z);
if(x>y>z)
a=x,b=y,c=z;
if(x>z>y)
a=x,b=z,c=y;
if(y>x>z)
a=y,b=x,c=z;
if(y>z>x)
a=y,b=z,c=x;
if(z>x>y)
a=z,b=x,c=y;
if(z>y>x)
a=z,b=y,c=x;
printf("%d,%d,%d",a,b,c);
}

好象是麻烦了点不过这是我的做法我感觉因该可以,可是事实总是残酷的……虽然后来老师公布了做的方法可是我想知道我的做法到底能不能做希望各位老大不惜笔墨帮助新人啊!谢谢!
----------------解决方案--------------------------------------------------------
这个有错嘛???
我有点忘了。
有没有个直角三角形是3:4:5的呀?
----------------解决方案--------------------------------------------------------
哦对了我们学校用的是TC2.0,不知道大家都用什么……感觉好老都是DOS的东西。
----------------解决方案--------------------------------------------------------
对啊3,4,5可以构成三角形的
----------------解决方案--------------------------------------------------------

这些是你故意没写的吗?
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,c;
float area,s,x;
printf("Plesae input a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2.0;
x=s*(s-a)*(s-b)*(s-c);
area=sqrt(x);
printf("area=%f\n",area);
}
else
printf("error!");

return 0;
}


----------------解决方案--------------------------------------------------------

晕~貌似不是直角的。那我没发现有什么错误。你的sqrt的确就是根号了!


----------------解决方案--------------------------------------------------------
以下是引用zhanghuan_10在2006-11-11 14:19:15的发言:

这些是你故意没写的吗?
#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,c;
float area,s,x;
printf("Plesae input a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2.0;
x=s*(s-a)*(s-b)*(s-c);
area=sqrt(x);
printf("area=%f\n",area);
}
else
printf("error!");

return 0;
}

int main(void)
return 0;
老大这是什么东西啊?我真的不知道啊……


----------------解决方案--------------------------------------------------------
有啊。输入的数字之间要加逗号啊。其余的运行没有错误啊!
----------------解决方案--------------------------------------------------------
以下是引用qinyinqigg在2006-11-11 14:16:52的发言:
第2题输入3个整数然后按由小到大排列
#include<stdio.h>
{
int x,y,z,a,b,c;
scanf("%d,%d,%d,"&x,&y,&z);
if(x>y>z) 这边是不可以这样比的~首先是x>y如果成立它的值就成了1,然后再是1和z比较,难免会出现问题。所以LZ以后要注意了!
a=x,b=y,c=z;
if(x>z>y)
a=x,b=z,c=y;
if(y>x>z)
a=y,b=x,c=z;
if(y>z>x)
a=y,b=z,c=x;
if(z>x>y)
a=z,b=x,c=y;
if(z>y>x)
a=z,b=y,c=x;
printf("%d,%d,%d",a,b,c);
}

好象是麻烦了点不过这是我的做法我感觉因该可以,可是事实总是残酷的……虽然后来老师公布了做的方法可是我想知道我的做法到底能不能做希望各位老大不惜笔墨帮助新人啊!谢谢!


----------------解决方案--------------------------------------------------------

  相关解决方案