正在加载图片...
编写求梯形7·若abh分别是12,3,结 # include<stdo.h》 若全部数据类型都是f|oat s=1/2*(a+b)h的结果又会 void maino 怎样? ·s=0.000000 int a.b. h: 因为1/2中的两个常数都是 整数,结果仍是整数,为0, float s, 再继续进行运算,结果仍为 printf( please inp 0。 scanf(od %d 要想得到正确结果,要 s=(a+b)2: s=(fo)1/2(a+b)h(强行 将1转换成 float类型)或 printf"s=%f\n s=1.0/2*(a+b)h因为第 个数据是实数类型,其他 的运算结果一律自动转换成 double类型)3 编写求梯形面积的程序 #include <stdio.h> void main() { int a,b,h; float s; printf(" please input a,b,h: "); scanf("%d%d%d", &a, &b, &h); s= (a+b)*h/2; printf(" s=%f\n", s); } • 若a,b,h分别是1,2,3,结 果会怎样? • s=4.000000 • 为什么? • 因为右边的数据都是整型数, 所以计算结果也是整型了。 • 要想得到正确结果就需要将 所有数据改为float类型。 • 若全部数据类型都是float, s=1/2*(a+b)*h的结果又会 怎样? • s=0.000000 • 因为1/2中的两个常数都是 整数,结果仍是整数,为0, 再继续进行运算,结果仍为 0。 • 要想得到正确结果,要 s=(float)1/2*(a+b)*h(强行 将1转换成float类型)或 s=1.0/2*(a+b)*h(因为第 一个数据是实数类型,其他 的运算结果一律自动转换成 double类型)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有