c 语言除法,最后打印的 1.0/x 和 y 为什么不一样(输入10)
#include <stdio.h>int main()
{
int x,y;
scanf("%d",&x);
if (x == 0)
{
y = 0;
}
else
{
y = 1.0/x;
}
printf("%.1f %.1f %.1f",x,1.0/x,y);
return 0;
} 本帖最后由 还不够好 于 2021-1-27 19:11 编辑
把 x,y 类型改为 float 后变成这样了,。。。这是个啥,各位大佬帮帮忙解答一下{:5_100:}
图片↓↓↓↓↓↓↓↓ https://s3.ax1x.com/2021/01/27/szGrkD.jpg 本帖最后由 一世轻尘 于 2021-1-27 19:29 编辑
第二个程序的x是浮点型,把%d改为%f
第一个程序可以这样改printf("%.1f %.1f",(float)x,1.0/x);
y的值改不了一定是0,因为你一开始定义的y为整型,所以1.0/10后一定是0 #include<stdio.h>
int main()
{
float x,y;
scanf("%f",&x);
if(x==0)
{
y=0;
}
else
{
y=1.0/x;
}
printf("%.1f %.1f %.1f",x,1.0/x,y);
return 0;
}
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS D:\code> cd "d:\code\" ; if ($?) { gcc test.c -o test } ; if ($?) { .\test }
10
10.0 0.1 0.1
页:
[1]