#include<stdio.h> float S(float a,float b, float c) { float s; s=(a+b+c)/2.0; printf("s=%f\n",s); return s; } float S1(float s) { float a,b,c,area; s=S(a,b,c); area=s*(s-a)*(s-b)*(s-c); return area; } int main() { float area,a,b,c,s; scanf("%f%f%f",&a,&b,&c); area=S1(s); printf("area=%f\n",area); return 0; }
时间: 2024-04-03 12:33:25 浏览: 55
这段代码的作用是计算三角形的面积。代码中定义了两个函数S和S1,S函数用于计算三角形的半周长,S1函数用于计算三角形的面积。在main函数中,通过scanf函数获取用户输入的三角形的三条边长,然后调用S1函数计算出三角形的面积,并输出结果。需要注意的是,代码中的S函数并没有正确计算三角形的半周长,因为在计算半周长时需要使用a、b、c三个参数的值,但是S函数中并没有传入这些参数的值,因此计算结果是不正确的。
相关问题
这代码有什么错误#include<stdio.h> #include<math.h> float triangle_area(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,area; printf("请输入三角形的三边长:"); scanf("%f %f %f",&a,&b,&c); area=triangle_area(a,b,c); printf("三角形面积为:%f",area): return 0; }
这段代码中存在一个语法错误。在最后一行的 printf 语句中,冒号(:)应该被替换为分号(;)。修改后的代码如下:
```c
#include <stdio.h>
#include <math.h>
float triangle_area(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, area;
printf("请输入三角形的三边长:");
scanf("%f %f %f", &a, &b, &c);
area = triangle_area(a, b, c);
printf("三角形面积为:%f", area);
return 0;
}
```
除此之外,代码看起来没有其他问题。
#include<iostream> #include<stdio.h> float sun(); int main() { float first,second; first=123.23; second=99.09; printf ("%f",sum (first,second)) ; } float sum (a,b) float a,b; { return a+b; }
这段代码有一个问题,就是函数声明和函数定义的参数类型不一致。在函数定义中,参数应该写成 `float a, float b`。修改后的代码如下:
```
#include<iostream>
#include<stdio.h>
float sum(float, float);
int main() {
float first, second;
first = 123.23;
second = 99.09;
printf("%f", sum(first, second));
}
float sum(float a, float b) {
return a + b;
}
```
修改后的代码可以正确地计算并输出两个数的和。
阅读全文