帮忙挑错,简单的编程

来源:百度知道 编辑:UC知道 时间:2024/05/09 03:43:30
求梯形面积,问题出在哪啊:
#include<stdio.h>
#include<conio.h>
main(){
float a,b,h,s;

scanf("%f,%f,%f\n",&a,&b,&h);

s=(1/2)*(a+b)*h;

printf("s=%f\n",s);
getch();
}

#include<stdio.h>
#include<conio.h>
main(){
float a,b,h,s;

scanf("%f%f%f",&a,&b,&h);

s=(0.5)*(a+b)*h;

printf("s=%f\n",s);
getch();
}
scanf的格式不对,
1/2的结果是0,
要么这样写1.0/2.0

把1/2改成1.0/2或者1/2.0

恩,ls的是对的,因为1/2等于0,c语言中两个整数相除功能类似于只要整数部分。

应该改成这样
#include<stdio.h>
#include<conio.h>
int main(int argc, char**argv)
{
float a,b,h,s;

scanf("%f,%f,%f",&a,&b,&h);

s=(a+b)*h/2;

printf("s=%f\n",s);
getch();
return 0;
}

因为你在运行(1/2)的时候,因为1默认是整形的,所以它会默认转整形,所以(1/2) = 0.5转成整形的时候就是0,所以算出来的都是0.00000