搜索

C语言。这两个程序,为什么定义为float时可以输出正确结果,而定义x,y为...

发布网友 发布时间:2024-10-23 12:05

我来回答

6个回答

热心网友 时间:2024-10-23 14:16

#include<stdio.h>
void main()
{
double x,y;
printf("请输入x的值:\n");
scanf("%lf",&x);
if(x>=0)
y=3*x+6;
else
y=-x*x+2*x-8;
printf("y=%.2lf\n",y);
}

/*可以用了。double是按双精度输入输出。一般使用%lf进行格式控制,可以理解成longfloat。float对应的是%f,double对应的是%lf,这样用。二者输入的时候采取的格式不一样,内存中就有很大的不同。就好比float你用%d存一样。还是应该对应着来。但是平常的作业中double不经常用,一般float就可以满足要求了。*/

热心网友 时间:2024-10-23 14:17

你输入的值X是多少? 有没有超过范围?

热心网友 时间:2024-10-23 14:13

double类型的数据在读入和输出语句中的格式是“%lf”,而"%f"仅用于float类型。

热心网友 时间:2024-10-23 14:17

double类型输出语句中的格式是为“%lf”,而"%f"仅用于float类型,你少了一个“l”

热心网友 时间:2024-10-23 14:18

你把第二个%f换成%lf试试

热心网友 时间:2024-10-23 14:17

输入输出不能用%f。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top