c语言,从键盘输入3个整数作为一个三角形的3条边长,并保存到3个变量a、b、c中,计算并输出该三角形的面积。三角形面积的计算公式为
时间: 2024-05-20 18:15:48 浏览: 110
:S = √[p(p-a)(p-b)(p-c)],其中p为半周长,即p = (a+b+c)/2。
代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int a, b, c;
double p, s;
printf("请输入三角形的三条边长:");
scanf("%d%d%d", &a, &b, &c);
p = (a + b + c) / 2.0;
s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("该三角形的面积为:%.2f\n", s);
return 0;
}
相关问题
用c语言编程输入三个边长判断是否为三角形
以下是用C语言编写的程序,可以输入三个边长并判断它们是否可以构成一个三角形:
```c
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三个整数表示三角形的边长:\n");
scanf("%d%d%d", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
printf("可以构成一个三角形\n");
} else {
printf("不能构成一个三角形\n");
}
return 0;
}
```
程序先提示用户输入三个整数,然后使用`scanf()`函数读取输入值并存储到变量`a`、`b`和`c`中。接下来使用条件语句`if...else`判断这三个数是否可以构成一个三角形,如果可以,则输出“可以构成一个三角形”,否则输出“不能构成一个三角形”。
有n(n≥4)个正整数,存放在数组a中,设计一个算法从中选出3个正整数组成周长最长的三角形,输出该最长三角形的周长,若无法组成三角形则输出0。c语言
为了在C语言中解决这个问题,我们可以采用一种称为“两指针”的策略。首先对数组按照从大到小排序,然后遍历数组,对于每个元素,维护两个指针i和j,分别指向当前元素左侧和右侧的未选元素。我们逐步调整这两个指针,直到找到满足三角形条件的三个数。
算法步骤如下:
1. 将数组a按降序排列。
2. 初始化最大周长变量`max perimeter`为0,左指针`left`为0,右指针`right`为n - 1。
3. 循环直到`left < right`:
a. 计算当前候选三角形三边之和:`sum = a[left] + a[right] + a[i]`。
b. 如果`sum > max perimeter`,更新`max perimeter`为`sum`,同时保存这组边长。
c. 检查是否构成三角形:如果`a[left] + a[i] > a[right]`且`a[right] + a[i] > a[left]`,则`i++`(向右移动),否则`right--`(向左移动)。
4. 返回`max perimeter`,如果最终结果为0,则表示无法组成三角形。
以下是简化版的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, *a;
// 输入数组长度和元素
scanf("%d", &n);
a = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 排序数组
qsort(a, n, sizeof(int), compare);
int max_perimeter = 0, left = 0, right = n - 1;
while (left < right) {
int sum = a[left] + a[right] + a[*(a + i)]; // 注意这里的指针计算
if (sum > max_perimeter) {
max_perimeter = sum;
}
// 检查三角形条件
if (a[left] + a[*(a + i)] > a[right]) {
i++;
} else {
right--;
}
}
// 输出结果
if (max_perimeter == 0) {
printf("0\n");
} else {
printf("%d\n", max_perimeter);
}
free(a);
return 0;
}
// 辅助函数用于数组排序
int compare(const void* a, const void* b) {
return (*(int*)b - *(int*)a);
}
```
阅读全文
相关推荐













