|
|
- /*计算直角三角形的斜边*/
- #include <math.h>
- double xiebian(double zhibian1,double zhibian2)
- {
- return(sqrt(zhibian1*zhibian1+zhibian2*zhibian2));
- }
- main()
- {
- double b1[3],b2[3];/*这里用double定义的数组*/
- int i,j;
- printf("please enter the long:\n");
- for(i=0;i<3;i++)
- scanf("%f%f",&b1[i],&b2[i]);
- printf("%s%20s%20s%20s\n","直角三角形","直角边1","直角边2","斜边长");
- for(j=1;j<4;j++)
- {
- printf("%d%25.3f%17.3f%18.3f",j,b1[j-1],b2[j-1],xiebian(b1[j-1],b2[j-1]));
- printf("\n");
- }
- }
复制代码
- [fydream@fydream c语言]$ gcc -lm -o fydream exercise5-15.c
- exercise5-15.c:20:10: warning: no newline at end of file
- [fydream@fydream c语言]$ ./fydream
- please enter the long:
- 3 4
- 4 5
- 5 6
- 直角三角形 直角边1 直角边2 斜边长
- 1 0.000 0.000 0.000
- 2 0.000 0.000 0.000
- 3 0.000 0.000 0.000
- [fydream@fydream c语言]$
复制代码
但是我把定义数组的类型改成float就没有问题了:
- /*计算直角三角形的斜边*/
- #include <math.h>
- double xiebian(double zhibian1,double zhibian2)
- {
- return(sqrt(zhibian1*zhibian1+zhibian2*zhibian2));
- }
- main()
- {
- float b1[3],b2[3];/*这里和上面那个区分,这里改为float类型就很正常了,为什么?*/
- int i,j;
- printf("please enter the long:\n");
- for(i=0;i<3;i++)
- scanf("%f%f",&b1[i],&b2[i]);
- printf("%s%20s%20s%20s\n","直角三角形","直角边1","直角边2","斜边长");
- for(j=1;j<4;j++)
- {
- printf("%d%25.3f%17.3f%18.3f",j,b1[j-1],b2[j-1],xiebian(b1[j-1],b2[j-1]));
- printf("\n");
- }
- }
复制代码
- [fydream@fydream c语言]$ gcc -lm -o fydream exercise5-15.c
- exercise5-15.c:20:10: warning: no newline at end of file
- [fydream@fydream c语言]$ ./fydream
- please enter the long:
- 3 4
- 4 5
- 5 6
- 直角三角形 直角边1 直角边2 斜边长
- 1 3.000 4.000 5.000
- 2 4.000 5.000 6.403
- 3 5.000 6.000 7.810
- [fydream@fydream c语言]$
复制代码
请问这是为什么?难道是gcc的原因,还是我的那里有错误呀?情指教,谢谢! |
|