编写函数aea(a,b,c),返回以a,b,c为三边的三角形面积。输入三角形三边,利用该函数求出三角形面积。要求程序中对输入的三边值做合法性判断
时间: 2024-06-13 09:04:53 浏览: 139
可以使用以下代码实现该功能:
```c
#include <stdio.h>
#include <math.h>
float aea(float a, float b, float c) {
float s = (a + b + c) / 2;
float area = sqrt(s * (s - a) * (s - b) * (s - c));
return area;
}
int main() {
float a, b, c;
printf("请输入三角形的三边长:\n");
scanf("%f %f %f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
float area = aea(a, b, c);
printf("三角形的面积为:%f\n", area);
} else {
printf("输入的三边长度不合法!\n");
}
return 0;
}
```
相关问题
3.运用函数重载的知识,编写重载函数aea0和perimO,分别计算圆、长方形的 面积和周长,并在主函数中测试结果,其中圆半径用单精度浮点型变量来存储, 长方形的长和宽用整型变量来存储。(要求:必须用C+-+程序完成,主函数负责 输入输出的工作,重载函数只负责运算并返回结果。用#define 预处理指令将PI 字母的值设置为3.14,单精度计算结果保留2位小数。提示:保留小数位数需包 含标准函数库文件的代码为:#include-iomanip-,C+实现保留两位小数的格式 控制的代码为:fixeds<-setprecision(2)。C++
以下是实现代码:
```c++
#include <iostream>
#include <iomanip>
#define PI 3.14 // 定义圆周率
using namespace std;
// 计算圆的面积
float aera0(float r) {
return PI * r * r;
}
// 计算圆的周长
float perim0(float r) {
return 2 * PI * r;
}
// 计算长方形的面积
int aera0(int l, int w) {
return l * w;
}
// 计算长方形的周长
int perim0(int l, int w) {
return 2 * (l + w);
}
int main() {
float r = 2.5; // 定义圆的半径
int l = 5, w = 3; // 定义长方形的长和宽
cout << "圆的面积:" << fixed << setprecision(2) << aera0(r) << endl;
cout << "圆的周长:" << fixed << setprecision(2) << perim0(r) << endl;
cout << "长方形的面积:" << aera0(l, w) << endl;
cout << "长方形的周长:" << perim0(l, w) << endl;
return 0;
}
```
输出结果:
```
圆的面积:19.63
圆的周长:15.70
长方形的面积:15
长方形的周长:16
```
protobuf 反序列化 以下数据 0xACED00057A0000021C0A060806100318004AE102080012486F72672E64726F6F6C732E636F72652E6D61727368616C6C696E672E696D706C2E53657269616C697A61626C65506C616365686F6C6465725265736F6C76657253747261746567791A9202ACED0005737200136A6176612E7574696C2E41727261794C6973747881D21D99C7619D03000149000473697A6578700000000777040000000774005273683434312C737A303237342C313030343436352C73683534322C333038342C313030333832372C333238322C313030333137372C313030353639362C313030363036332C313030363237302C677A30323074005273683434312C737A303237342C313030343436352C73683534322C333038342C313030333832372C333238322C313030333137372C313030353639362C313030363036332C313030363237302C677A30323074000474727565740005656E2D554B7400095461736B204E616D657400013174000CE680BBE983A8E4BC9AE8AEA17852AD0108F590D40110FAD9421A0A48756D616E205461736B20002A110A074163746F72496410001A04000000002A0F0A05757365727310001A04000000012A130A09536B69707061626C6510001A04000000022A100A064C6F63616C6510001A04000000032A120A085461736B4E616D6510001A04000000042A120A085072696F7269747910001A04000000052A120A084E6F64654E616D6510001A04000000063209737072696E672D726D38064010
这是一个经过Java的标准序列化(Java Serialization)后的数据,不是Protobuf格式的数据。如果想要使用Protobuf进行反序列化,需要先将数据序列化成Protobuf格式。如果你有原始的对象,可以使用Protobuf重新序列化并进行反序列化。如果没有原始对象,则无法使用Protobuf进行反序列化。
阅读全文