[英]How can I get rid of zeros, if decimal is entered it prints decimal, but if whole number is entered it prints .00?
This program prints overlapping of two intervals.该程序打印两个间隔的重叠。 But the problem is, if I enter, for example numbers: 1.1 -1.1 1.1 1.1, it prints out the whole number.
但问题是,如果我输入例如数字:1.1 -1.1 1.1 1.1,它会打印出整数。 I've tried writing %1.1f in last printf command, but it turned out to be even worse, because then, if I enter 1 2 1 1, it prints out 1.0 and 4.0.
我尝试在最后一个 printf 命令中编写 %1.1f,但结果更糟,因为如果我输入 1 2 1 1,它会打印出 1.0 和 4.0。 How can I get the proper print if I enter decimale or int?
如果输入小数或整数,如何获得正确的打印?
#include <math.h>
int main() {
float a,b,c,x,derivative;
printf("Input coefficients a, b i c: ");
scanf("%f %f %f",&a,&b,&c);
if((a<(-10)) || (a>10) || (b<(-10)) || (b>10) || (c<(-10)) || (c>10)){
printf("Coefficients a, b i c do not belong in range of (-10,10).");
return 1;
}
printf("Input point x: ");
scanf("%f",&x);
derivative=(2*a*x)+b+(c*0);
printf("First derivation in point x=%.f je %.f.",x,derivative);
return 0;
}
You can use the "%g"
format specifier to display floating-point numbers in the shortest possible way:您可以使用
"%g"
格式说明符以最短的方式显示浮点数:
printf("First derivation in point x=%g je %g",x,derivative);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.