zhangjunxian 发表于 2020-9-5 15:09:12

求助关于scanf函数问题

#include <stdio.h>

int main()
{
          float a,b;
          
          printf("请输入华氏度;");
                scanf("%d", &a);
               
                b = (a - 32) * 5 / 9;
               
                printf("转换为摄氏度是;%.2f", b);
               
                return 0;
}

为什么这里的scanf("%d", &a);要改成scanf("%f", &a);不然输入很小的整数得到的答案都是-17.78 %d不是读取一个十进制整数吗为什么会这样

sunrise085 发表于 2020-9-5 15:19:18

本帖最后由 sunrise085 于 2020-9-5 15:20 编辑

你定义的a是float类型的数据,为什么要读取一个int类型数据给a?
那是有问题的,最终a=0

zhangjunxian 发表于 2020-9-5 15:34:55

sunrise085 发表于 2020-9-5 15:19
你定义的a是float类型的数据,为什么要读取一个int类型数据给a?
那是有问题的,最终a=0

#include <stdio.h>

int main()
{
          int a;
                float b;
          
          printf("请输入华氏度;");
                scanf("%d", &a);
       
                b = (a - 32) * 5 / 9;
               
                printf("转换为摄氏度是;%.2f", b);
               
                return 0;
}
那我这样修改的话为什么我输入45 正常输出的应该是7.22 但是 现在输出的结果是7.00 我输入44 得到的结果为6.00

sunrise085 发表于 2020-9-5 15:41:37

zhangjunxian 发表于 2020-9-5 15:34
那我这样修改的话为什么我输入45 正常输出的应该是7.22 但是 现在输出的结果是7.00 我输入44 得到的结 ...

int类型的数据进行加减乘数结果只能是int类型的数据
b = (a - 32) * 5 / 9;
这一行是先进行右边的运算得到一个int类型的数据,然后再强制类型转换为浮点数赋值给b

zhangjunxian 发表于 2020-9-5 15:43:03

sunrise085 发表于 2020-9-5 15:41
int类型的数据进行加减乘数结果只能是int类型的数据
b = (a - 32) * 5 / 9;
这一行是先进行右边的运算 ...

谢谢

zhangjunxian 发表于 2020-9-5 16:15:21

sunrise085 发表于 2020-9-5 15:41
int类型的数据进行加减乘数结果只能是int类型的数据
b = (a - 32) * 5 / 9;
这一行是先进行右边的运算 ...

#include <stdio.h>

int main()
{
          double a,b;
               
          printf("请输入华氏度;");
                scanf("%f", &a);
       
                b = (a - 32) * 5 / 9;
               
                printf("转换为摄氏度是;%.2f", b);
               
                return 0;
}
那为什么我定义 a b 为double 类型 得到的结果和 int 是一样的 呢 还是得到 a = 0

sunrise085 发表于 2020-9-5 16:35:12

zhangjunxian 发表于 2020-9-5 16:15
那为什么我定义 a b 为double 类型 得到的结果和 int 是一样的 呢 还是得到 a = 0

{:5_104:}{:5_104:}
你还是好好学习一下基础吧
搞清楚有哪些数据类型,什么数据类型的格式化字符是什么
double类型的格式化字符是%f吗?

zhangjunxian 发表于 2020-9-5 16:48:11

sunrise085 发表于 2020-9-5 16:35
你还是好好学习一下基础吧
搞清楚有哪些数据类型,什么数据类型的格式化字符是什么 ...

{:5_109:}嗯
页: [1]
查看完整版本: 求助关于scanf函数问题