#include<stdio.h>
#define EPS 1e-6
int main(void)
{
double i;
double k;
printf("Input i:");
scanf("%f", &i);
if(i<= EPS)
printf("%.2f", i);
else
k = -i;
printf("%.2f", k);
return 0;
}
,我是死活 看不出问题
这个代码求得是 任意输入一个 实数 然后 求其绝对值 可是我这 的结果死活都是零[face]emoji:029.png[/face]
(1)读取double数据,用%lf
(2)最下面的else需要加{},把k = -i; printf("%.2f", k);这两句放在{}中,否则k就是一个未初始化的变量。
代码修改如下:
#include<stdio.h>
#define EPS 1e-6
int main(void)
{
double i;
double k;
printf("Input i:");
scanf("%lf", &i);
if(i<= EPS)
printf("%.2f", i);
else
{
k = -i;
printf("%.2f", k);
}
return 0;
}
double类型用%lf控制
#include<stdio.h>
#define EPS 1e-6
int main(void)
{
double i;
double k;
printf("Input i:");
scanf("%lf", &i);
if(i>0)
printf("%.2lf", i);
else
k = -i;
printf("%.2lf", k);
return 0;
}
double型只能用%lf输入,float型用%f,否则结果就是0.但这个要求对输出没有约束。
另外你这代码逻辑是有问题的,当if(i<=EPS)时,你最后还是会执行printf("%.2lf",k);这是错误的,会多输出一个垃圾值
修改如下:
#include<stdio.h>
#define EPS 1e-6
int main(void)
{
double i;
double k;
printf("Input i:");
scanf("%lf", &i);
if(i<= EPS)
k = i;
else
k = -i;
printf("%.2lf", k);
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!