C语言 基础求助

来源:百度知道 编辑:UC知道 时间:2024/05/14 03:38:50
写了一个求 梯形面积的小程序 可运行起来 答案不对 请找下错
main()
{
int s,a,b,h;
scanf("%d,%d,&d",&a,&b,&h);
s=(a+b)*h/2;
printf("%d",s);
getch();
}
main()
{
float a,b,h,s;
scanf("%f,%f,&",&a,&b,&h);
s=(a+b)*h/2;
printf("%f",s);
getch();
}
还是不行

/*求梯形面积*/
#include <stdio.h> /*文件包含*/
main()
{
int up,bot,high; /*定义了上底、下底和高为
整形变量*/
float area; /*定义了面积为实型变量*/
up=3; /*上底等于3*/
bot=5; /*下底等于5*/
high=4; /*高等于4*/
area=(up+bot)*high/2.0; /*计算梯形面积*/
printf("area=%f\n,area); /*在屏幕上显示面积的
值*/
}

main()
{
int s,a,b,h; //建议用float或者double
scanf("%d,%d,&d",&a,&b,&h); //&d?笔误?
s=(a+b)*h/2;
printf("%d",s);
getch();
}

s不应该是int型的。应该是float型。
(a+b)*h/2得到的结果肯定不是int型的。如果强制转换成int的话就会出现错误的结果。

s应该为float类型的