编写程序代码,用 scanf 输入一个浮点数,使用 多分支if语句 实现计算如下表达式,并输出对应公式的计算结果

img


解答一下怎么编写代码编写程序代码,用 scanf 输入一个浮点数,使用 多分支if语句 实现计算如下表达式,并输出对应公式的计算结果


#include <stdio.h>
#include <math.h>

int main()
{
    float x, rst;
    scanf("%f", &x);
    if (x < 0)
        rst = x * x + 1;
    else if (x >= 0 && x < 5)
        rst = sqrt(3 * x + 1);
    else
        rst = log(x);
    printf("%f", rst);
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7514307
  • 这篇博客也不错, 你可以看下输入函数scanf的特殊用法、gets以及gets的替代函数的功能
  • 除此之外, 这篇博客: 程序设计与算法 | (3) 输入输出与运算符、表达式中的 用scanf读入不同类型的变量 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 用scanf可以一次读入多个类型不同的变量,只要输入的各项之间用空格分隔即可。

    #include <cstdio> 
    #include <iostream> 
    using namespace std; 
    int main()
    {
    int n; char c; float f;
    scanf("%d%c%f",&n,&c,&f); //依次输入一个整数,一个字符, 再一个小数,则它们会被分别放入n,c,m; &n代表“取n的地址” ; %c表示等待输入一个字符;%f表示等待输入一个float小数
    printf("%d %c %f",n,c,f); //%f用于输出double或float类型的值,默认保留小数点后面6位
    return 0;
    }
    

    在这里插入图片描述

    输入字符类型数据时(%c),不会跳过空格(空格也会被当作字符读入),输入其他类型的数据时,会跳过空格。

    #include <iostream> 
    #include <cstdio> 
    using namespace std; 
    int main()
    {
    	int n; char c; float f;
    	scanf("%d%c%f",&n,&c,&f);
    	printf("%d %c %f",n,c,f);
    	return 0;
    }
    

    在这里插入图片描述
    %c不会跳过空格,此时他会读入一个空格到c中,再读入f时,对应输入是’k’,导致出错。