C语言问题!我的程序实现的功能是无论输入的数的正负,都可以进行四舍五入的取整!代码如下!编译没报错!
发布网友
发布时间:2022-04-24 01:30
我来回答
共2个回答
热心网友
时间:2022-04-24 02:59
#include <stdio.h>
#include <math.h>
double myround(double x);
void main()
{
double x;
printf("Please input a double number!\n");
scanf("%Lf", &x);/*这里用%Lf代替%f,表明x存的是double类型的值*/
printf("%Lf", myround(x));/*输出最好用double 类型的输出%Lf*/
}
double myround(double x)
{
if (x > 0) {
if (x + 0.5 < ceil(x))
return floor(x);
else
return ceil(x);
}
else if (x < 0){
if (x + 0.5 > ceil(x))
return ceil(x);
else
return floor(x);
}
else
return x;
}追问对是对了 但是我有疑问啊 %lf成!%f就不成 为啥?scanf("%Lf", &x);/*这里用%Lf代替%f,表明x存的是double类型的值*/
printf("%Lf", myround(x));/*输出最好用double 类型的输出%Lf*/
追答呵呵,这可能是C语言里的一个规定吧,我也说不出为啥,知道怎么用就行了。
热心网友
时间:2022-04-24 04:17
没报错还有啥问题