当我呼叫getinfo()
时,我得到一个带有1位数值的常数值8,带有2位数值的9,带有3位数值的10。等等。在函数中,值按预期打印,但是当尝试读取main方法中的值时,值如上所述。
有关为何发生这种情况的任何想法?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
float radius = 0;
float height = 0;
float cylvolume = 0;
float spherevolume = 0;
displaymyinfo();
radius = getinfo();
printf("\n r = %f", radius);
height = getinfo();
printf("\n h = %f", height);
cylvolume = compute_cylinder_volume(radius, height);
spherevolume = compute_sphere_volume(radius);
printf("h = %f", height);
printf("\n A cylinder with radius %f and height %f = %f cubic inches", radius, height, cylvolume);
printf("\n Volume of sphere with radius: %f is %f cubic inches", radius, spherevolume);
_getch();
return 0;
}
int displaymyinfo(){
printf("*********************\n");
printf("*Info was here *\n");
printf("*and here*\n");
printf("*even here *\n");
printf("*********************\n");
return 0;
}
float getinfo(){
float y = 0;
do{
printf("\n Enter a number: ");
scanf("%f", &y);
} while (y <= 0);
printf("%f", y);
return (y);
}
float compute_cylinder_volume(float r,float h){
float vol = 0.0;
vol = 3.14 * r * r * h;
return vol;
}
float compute_sphere_volume(float rad){
float vol = 0.0;
vol = 4.0 / 3.0 * 3.14 * rad * rad * rad;
return vol;
}
答案 0 :(得分:2)
该行
radius = getinfo();
在定义函数getinfo()
之前出现。 C,作为一种有用的语言,将假定您打算定义一个返回整数的函数。你定义它以便稍后返回一个浮点数的事实不会阻止它出现这种信念。
添加
float getinfo();
高于main()
的某个地方(或将main()
移到底部)。