C语言计算分段函数问题
「已注销」 人气:2C语言计算分段函数
修改后的代码如下:
#include<stdio.h> int main(void) { double x,y;//定义两个双精度实型变量 printf("Enterx(x>=0):\n");//输入提示 scanf("%lf",&x); //调用scanf函数输入数据 if(x<=15){ y=4*x/3; } else{ y=2.5*x-10.5; } printf("f(%f)=%.2f\n",x,y); //输出结果 return 0; }
简单分段函数用多路分支与if else 级联的写法
一、简单分段函数
f(x)= -1 ( X<0 ) 0 (X=0) 2x (X>0)
二、代码
1、多路分支代码
int main() { int i; double x,y; scanf("%lf",&x); i=1*(x<0)+2*(x==0)+3*(x>0); switch(i) { case 1:y=-1;printf("%0.2f\n",y);break; case 2:y=0;printf("%0.2f\n",y);break; case 3:y=2*x;printf("%0.2f\n",y);break; } return 0; }
2、级联if else 代码
#include <stdio.h> #include <stdlib.h> int main() { double x,f; scanf("%lf",&x); if (x<0){ f=-1; } else if(x==0){ f=0; } else if(x>0){ f=2*x; } printf("%0.2f",f); }
代码思路及注意事项
1、switch()里是可以运行整数型,在分段函数f(x)中无法保证x,y为整数型,则需要引入中间变量,将分段函数的条件转换为整数型
2、当x小于0时,i的值为1,则case 1里内容对应分段函数第一段;以此类推,最后一个条件可用case3,也可用dafault代替。
三、代码及运行结果
1、多路分支
2、if else 级联
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容