C语言关于计算三角形面积的
#include<stdio.h>#include<stdlib.h>#include<math.h>intsum(inta,intb,intc);intmain(){i...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sum(int a,int b,int c);
int main()
{
int a,b,c,n,i;
double S;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
S=sum(a,b,c);
printf("%.4lf",S);
}
else
printf("-1");
}
return 0;
}
int sum(int a,int b,int c)
{
double s,S;
s=(a+b+c)/2.0;
S=sqrt(s*(s-a)*(s-b)*(s-c));
return S;
}
我输入3 4 5时的答案为什么会跟4 5 6的答案一样,就是说我把n输入为2,第一组输3 4 5,第二组输4 5 6,为什么答案都是6.0000,求解 展开
#include <stdlib.h>
#include <math.h>
int sum(int a,int b,int c);
int main()
{
int a,b,c,n,i;
double S;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
S=sum(a,b,c);
printf("%.4lf",S);
}
else
printf("-1");
}
return 0;
}
int sum(int a,int b,int c)
{
double s,S;
s=(a+b+c)/2.0;
S=sqrt(s*(s-a)*(s-b)*(s-c));
return S;
}
我输入3 4 5时的答案为什么会跟4 5 6的答案一样,就是说我把n输入为2,第一组输3 4 5,第二组输4 5 6,为什么答案都是6.0000,求解 展开
3个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int sum(int a,int b,int c);
int main()
{
int a,b,c,n,i;
double S;
scanf("%d",&n);//这里是要求下来的组数
for(i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);//每三个一组实现求一个三角形的面积
if(a+b>c&&a+c>b&&b+c>a)
{
S=sum(a,b,c);//调用下列函数
printf("%.4lf",S);//打印了一个三角形的面积
}
else
printf("-1");//如果不出立就会打-1
}
return 0;
}
int sum(int a,int b,int c)
{
double s,S;
s=(a+b+c)/2.0;
S=sqrt(s*(s-a)*(s-b)*(s-c));//这里用的是海伦公式求的
return S;
}
你的程序写的很好。没什么大的错误.
我也执行了啊。
没出错啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <math.h>
#include <stdio.h>
double sum(int a,int b,int c);//函数类型要改为double,否则返回值是整形,结果肯定会有错的,
int main()
{
int a,b,c,n,i;
double S;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
S=sum(a,b,c);
printf("%.4lf",S);
}
else
printf("-1");
}
return 0;
}
double sum(int a,int b,int c) //函数类型要改为double,否则返回值是整形,结果肯定会有错的,
{
double s,S;
s=(a+b+c)/2.0;
S=sqrt(s*(s-a)*(s-b)*(s-c));
return S;
}
#include <stdio.h>
double sum(int a,int b,int c);//函数类型要改为double,否则返回值是整形,结果肯定会有错的,
int main()
{
int a,b,c,n,i;
double S;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
S=sum(a,b,c);
printf("%.4lf",S);
}
else
printf("-1");
}
return 0;
}
double sum(int a,int b,int c) //函数类型要改为double,否则返回值是整形,结果肯定会有错的,
{
double s,S;
s=(a+b+c)/2.0;
S=sqrt(s*(s-a)*(s-b)*(s-c));
return S;
}
更多追问追答
追问
恩,按你的说是对的,谢谢,还想请问下就是如何让我把数全部输入进去后,它再一起出答案呢?而不是我输一组,他出一组
追答
你这是ACM上的题么?如果是ACM上的题这样写就可以提交了,没有必要全部输入然后再输出。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询