正在加载图片...
float z: if(x>y) Z-X: else z-y, return z; 了提示:如何发现问题? 编译、链接该程序,系统未报告任何错误信息,但是运行该程序时,正确输入两个实数 之后,输出结果却出现问题:打印输出的最大值的小数部分丢失,主要原因在于函数的返回 值类型和函数类型不一致,max()函数的类型为int类型,而函数返回值z变量的类型为oat 类型,当两者类型不一致时,系统以函数类型为准,所以max(a,b)的函数结果是一个it类型 的数据,该函数结果赋值给变量c,最终导致最大值的小数部分丢失。 改正程序后的运行结果示例如图5.1.3所示。 可'C:\e-programsing\5\Debugipg5102.ok.exe回冈 情输入两个实数,中间用逗号分隔:3.2.6.7 两个数的最大值为:6.?886gg Press any key to continue 4 图5.1.3pg5102_ok.cpp的运行结果 二、程序扩展 1.打开c:lc-programming5pg5201.cpp,该程序是通过调用函数来实现求两个整数的最大 值问题。该源程序内容如下: #include <stdio.h> void main(void) int a,b,d; int max(int x,int y); printf("请输入两个整数,中间用逗号分隔:"); scanf("%d,%d",&a,&b); -86-float z; if (x>y) z=x; else z=y; return z; } 提示:如何发现问题? 编译、链接该程序,系统未报告任何错误信息,但是运行该程序时,正确输入两个实数 之后,输出结果却出现问题:打印输出的最大值的小数部分丢失,主要原因在于函数的返回 值类型和函数类型不一致,max( )函数的类型为 int 类型,而函数返回值 z 变量的类型为 float 类型,当两者类型不一致时,系统以函数类型为准,所以 max(a,b)的函数结果是一个 int 类型 的数据,该函数结果赋值给变量 c,最终导致最大值的小数部分丢失。 改正程序后的运行结果示例如图 5.1.3 所示。 图 5.1.3 pg5102_ok.cpp 的运行结果 二、程序扩展 1.打开 c:\c-programming\5\pg5201.cpp,该程序是通过调用函数来实现求两个整数的最大 值问题。该源程序内容如下: #include <stdio.h> void main(void) { int a,b,d; int max(int x,int y); printf("请输入两个整数,中间用逗号分隔:"); scanf("%d,%d",&a,&b); - 86 -
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有