富贵要加油 发表于 2020-10-17 16:27:51

c语言程序设计第三版课后习题

本题目要求计算下列分段函数f(x)的值:

输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10

输出样例1:
f(10.0) = 0.1

输入样例2:
0

输出样例2:
f(0.0) = 0.0

我的答案
#include<stdio.h>
int main()
{
    double x,result;
    scanf("%.1f",x);
    if(x!=0)
    result=1.0/x;
    else
    result=0;
    printf("f(%.1f) = %.1f",x,result);
    return 0;
}
请问为什么运算结果不对,感谢各位热心认真答题的大佬们

昨非 发表于 2020-10-17 16:32:04

你的f(x)是啥函数

富贵要加油 发表于 2020-10-17 16:35:30

昨非 发表于 2020-10-17 16:32
你的f(x)是啥函数

https://images.ptausercontent.com/1

富贵要加油 发表于 2020-10-17 16:36:33

https://images.ptausercontent.com/1

2269099035 发表于 2020-10-17 17:55:47

scanf里面是%lf跟&x,你改一下

富贵要加油 发表于 2020-10-17 22:58:32

2269099035 发表于 2020-10-17 17:55
scanf里面是%lf跟&x,你改一下

可以讲一下为什么scanf 里面要用%lf,%.1f不行吗,不也是保留一位小数吗

2269099035 发表于 2020-10-17 23:08:26

富贵要加油 发表于 2020-10-17 22:58
可以讲一下为什么scanf 里面要用%lf,%.1f不行吗,不也是保留一位小数吗

C语言的所有输入输出函数,都要遵守%d%s%c这些的格式。你的x是double,对应的就是%lf,%.1f的本质还是%f。所以,不会被double x所接受。

2269099035 发表于 2020-10-17 23:10:52

富贵要加油 发表于 2020-10-17 22:58
可以讲一下为什么scanf 里面要用%lf,%.1f不行吗,不也是保留一位小数吗

https://blog.csdn.net/bat67/article/details/52056057你可以看看这个
页: [1]
查看完整版本: c语言程序设计第三版课后习题