C语言求梯形面积!

main()
{
float a,b,h,s;
printf("input a,b,h:");
scanf("%f,%f,%f",&a,&b,&h);
s=(a+b)*h/2;
printf("a=%f,b=%f,h=%f,s=%f",a,b,h,s);
}

这个程序为什么得不到结果的!
问题出在哪里!

其实你后面都没错,就是前面漏了头文件。给你推荐个万能头文件:#include<bits/stdc++.h>

已经编译成功的代码如图:

运行后:


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-17


1、直接根据如下梯形面积公式来进行程序的设计:
S=(a+b)*h/2,其中,S表示梯形面积;a和b分别表示梯形的上底和下底,h表示梯形的高。

2、具体实现方法可以参考如下程序:

#include<stdio.h>
void main()
{
    double a, b, h;  // 定义梯形的上底、下底和高
    printf("请输入梯形的上底、下底和高:");
    scanf("%lf%lf%lf", a, b, h);  // 接收用户输入的梯形的上底、下底和高
    printf("梯形面积为:%lf", (a+b)*h/2); // 根据梯形面积公式计算并输出梯形面积
}

第2个回答  2008-12-29
你这个程序没错,错的是你的输入问题
如果你在输入的时候,在a,b,c之间加个逗号就没问题了
比如
2,3,4 得到结果是10本回答被提问者采纳
第3个回答  2008-12-29
函数调用有误,将
scanf("%f,%f,%f",&a,&b,&h);
改成
scanf("%f%f%f",&a,&b,&h);
就可以了。
第4个回答  2008-12-29
有结果的:
要注意,
你的scanf的格式为:
scanf("%f,%f,%f",&a,&b,&h);
所以你必须这么输入才是有效输入:
3.5,4.2,4.6
相似回答