注册 登录
编程论坛 C语言论坛

萌新求助。给了三角形三边,求面积,为什么输出结果会错误,是哪里出现了问题。

鱼头豆腐汤 发布于 2020-10-22 00:28, 2001 次点击


#include<stdio.h>
#include<math.h>
int main(void)
{
int a,b,c,S,area;
printf("输入三边");
scanf("%d,%d,%d",&a,&b,&c);
S=(a+b+c)/2;
area=S*(S-a)*(S-b)*(S-c);
printf("该三角形面积为: %d/n",sqrt(area));
return 0;
}
6 回复
#2
风过无痕19892020-10-22 01:36
回复 楼主 鱼头豆腐汤

程序代码:

#include<stdio.h>
#include<math.h>
int main(void)
{
    float a,b,c;                                   // 三角形正常的三个不可能是整数
    double s,area;                                 // s、area 要求是 double 型,但出错不在此处
    printf("输入三边: ");
    scanf("%f%f%f",&a,&b,&c);                      // 出错在此,scanf()输入中除格式控制符外,不要添加任何的字符否则,容易出错。
                                                   
// 本例出错的原因是添加了逗号,于是输入时,将第一个赋给了变量a,
                                                   
// 将逗号赋给了变量b,将第二个数赋给了变量c,造成出错!
    s = (a + b + c) / 2.0;
    area = sqrt(s * (s - a) * (s - b) * (s - c));  // 既然变量名是area了,不如让它名符其实(将 sqrt 移过来)
    printf("该三角形面积为: %lf\n",area);          // sqrt输出是double型,area自然也就是double型,输出要用
                                                   
// %lf,注意:是大写字母L的小写字母,而不是数字1
    return 0;
}

#3
鱼头豆腐汤2020-10-22 07:40
回复 2楼 风过无痕1989
谢谢大佬,明白了
#4
鱼头豆腐汤2020-10-22 07:55
回复 2楼 风过无痕1989
明白了

[此贴子已经被作者于2020-10-22 08:32编辑过]

#5
风过无痕19892020-10-22 08:40
回复 4楼 鱼头豆腐汤
明白了就结一下帖子吧,那个分不是你出的,是系统给的,自己是得不到的,就给我吧,

有两个帖子哦

[此贴子已经被作者于2020-10-22 08:41编辑过]

#6
鱼头豆腐汤2020-10-22 12:07
回复 5楼 风过无痕1989
大佬咋结帖子. ,我第一次上论坛,还不太会
#7
鱼头豆腐汤2020-10-22 12:09
回复 5楼 风过无痕1989
显示零分贴不用结贴啊
1