[英]how can i fix this runtime error for a simple code written in c?
我的代码通过将面积显示为零来向我显示错误的 output:
#include <stdio.h>
double calc(float rad);
void main(void) {
float rad;
printf("Enter the circle radius: \n");
scanf("%f",&rad);
printf("You entered: %f\n",rad);
printf("Area is %d\n",calc(rad));
if(calc(rad)>1000){
printf("Area is > 1000");
}
else{
printf("Area is < 1000");
}
}
double calc(float rad){
double area=3.14*rad*rad;
return area;
}
Output:
Enter the circle radius : 20
you entered 20.000000
area is 0
area > 1000
所需的 output:
Enter the circle radius : 20
you entered 20.000000
area is 1256.000000
area > 1000
错误的 output 是由于在printf
语句中使用%d
而不是%lf
表示双精度或%f
表示浮点数。 打开编译器警告-Wformat
将在编译期间突出显示此内容
#include <stdio.h>
double calc(float rad);
void main(void) {
float rad;
printf("Enter the circle radius: \n");
scanf("%f",&rad);
printf("You entered: %d\n",rad);
printf("Area is %f\n",calc(rad));
if(calc(rad)>1000){
printf("Area is > 1000");
}
else{
printf("Area is < 1000");
}
}
double calc(float rad){
double area=3.14*rad*rad;
return area;
}
这是正确的代码。 如果您想了解更多信息:
https://codeforwin.org/2015/05/list-of-all-format-specifiers-in-c-programming.html
https://www.cplusplus.com/reference/cstdio/printf/
https://aticleworld.com/format-specifiers-in-c/请先到最后一个链接go。我很抱歉任何不好的英语。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.