第1个回答 2020-09-07
#include<stdio.h>
#include<math.h>
int
main(void)
{
double
a,b,c;
double
x1,x2,x3,y1,y2,y3;
double
cosa,sina,square;
printf("请输入第一个点\n");
scanf("%lf,%lf",&x1,&y1);
printf("请输入第二个点\n");
scanf("%lf,%lf",&x2,&y2);
printf("请输入第三个点\n");
scanf("%lf,%lf",&x3,&y3);
/*
注意:
对于double类型来说
当用scanf给double类型赋值时
转换说明符应该是%lf,
或者%lf
而不是%f,
而是用printf给double
类型输出时,
则可以是用%f作为转换
说明符,
不过因此会缺失精度.
也就是类型反向提升
(类型降级)
所以为了准确度考虑,
建议是用%lf
*/
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
cosa
=
(b*b+c*c-a*a)/(2*b*c);
sina
=
sqrt(1-cosa*cosa);
square
=
b*c*sina/2;
/*
此处三角形面积公式为s
=
b*c*sina/2
*/
/*
而不是a*b*sina/2,
这点是值得注意的
*/
printf("三角形的面积为:%.2lf\n",
square);
/*
square的类型是double,
因此使用%lf输出
*/
return
0;
}
/*
程序测试,
粗体
代表输入
*/
请输入第一个点
0,0
请输入第二个点
3,0
请输入第三个点
3,4
三角形的面积为:6.00
第2个回答 2020-03-02
#include<stdio.h>
void
mian()
{
float
s,s1;
printf("输入原始知工资道数");
csanf("%f",&s);
if(s<=500)
s1=s;
else
s1=s/100;
switch(s)
{
case
5:
s1=500+(s-500)*0.05;
break;
case
10:
s1=500+(1000-500)*0.05+(s-1000)*0.08;
break;
case
20:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(s-2000)*0.1;
break;
default:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(3000-2000)*0.1+(s-3000)*0.15;
break;
}
printf("实发工专资数是属:%f",s1);
}
第3个回答 2010-05-17
#include<stdio.h>
void mian()
{
float s,s1;
printf("输入原始工资数");
csanf("%f",&s);
if(s<=500)
s1=s;
else
s1=s/100;
switch(s)
{
case 5:
s1=500+(s-500)*0.05; break;
case 10:
s1=500+(1000-500)*0.05+(s-1000)*0.08;
break;
case 20:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(s-2000)*0.1;
break;
default:
s1=500+(1000-500)*0.05+(2000-1000)*0.08+(3000-2000)*0.1+(s-3000)*0.15;
break;
}
printf("实发工资数是:%f",s1);
}