问题及代码:
/*
*Copyright(c)2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:陈文青
*完成日期:2014年10月16日
*版本号:v1.0
*
*问题描述:多分段函数求值
*输入描述:一个整型x
*程序输出:整型y
*/
#include <iostream>
#include<cmath> //使用数学函数时要包含头文件cmath
using namespace std;
int main()
{
double x,y;
int t; //变量声明,整型t,switch语句不能用浮点数
cout<<"x=";
cin>>x; //输入一个整数 x
t=(x<2)+(x<6)+(x<10); //表达式
switch(t)
{
case 0:
y=1/(x+1);
break; //语句1
case 1:
y=sqrt(x+1);
break; //语句2
case 2:
y=x*x+1;
break; //语句3
case 3:
y=x;
break; //语句4
}
cout<<"y="<<y<<endl; //输出整型y
return 0;
}
运行结果:
知识点总结:
学会利用switch解决多分段函数求值
学习心得:
1,switch语句不能用浮点数double,所以第一遍运行程序的时候,code blocks提示error,自己却怎么也找不出错误,最后在兄弟的提示下,成功纠正错误。
2,构造switch中表达式的时候 务必确认语句对应的case值。我在编程过程中,第一次编程的时候,switch语句的顺序完全颠倒了,但是code blocks不会提示error,幸好在调试过程中及时发现错误,并及时改正。