第二十七讲:switch语句(项目二十七:分段函数(switch版))

方法一:构造范围的倍数表达式完成
1.任务和代码:

/*
*文件名称:fan_daun2.c
*作    者:末子灬秋风
*完成时间:2020年3月12日
*版本   号:vc++6.0
*
*问题描述:(x<2)y=x;(2<=x<6)y=x*x+1;(6<=x<10)根号下x+1;(x>=10)1/x+1;
*程序输出:输出y值
*/
#include<stdio.h>	//包含文件
#include<math.h>	//调用sqrt()函数时有用

//主函数
int main()
{
	int x,t;
	double y;
	//输入
	printf("请输入一个整数x:");
	scanf("%d",&x);
	//构造表达式
	t=x/2;
	//if单分支结构
	if(x<0)
	{
		t=0;
	}
	//switch分支结构
	switch(t)
	{
		case 0:		
			y=x;	//x<2
			break;
		case 1:
		case 2:
			y=x*x+1;	//x>=2&&x<6
			break;
		case 3:
		case 4:
			y=sqrt(x+1);	//x>=6&&x<10
			break;
		default:
			y=1.0/(x+1);	//x>=10
			break;
	}
	//输出
	printf("函数的结果为:y=%.2lf\n",y);
	//空一行
    printf("\n");    
    return 0;
}

2.运行结果:
在这里插入图片描述
方法二:利用构造特殊的表达式,通过判断小条件的真假来完成
1.任务和代码:

/*
*文件名称:fan_daun3.c
*作    者:末子灬秋风
*完成时间:2020年3月12日
*版本   号:vc++6.0
*
*问题描述:(x<2)y=x;(2<=x<6)y=x*x+1;(6<=x<10)根号下x+1;(x>=10)1/x+1;
*程序输出:输出y值
*/
#include<stdio.h>	//包含文件
#include<math.h>	//数学库

//主函数
int main()
{
	int x,t;
	double y;
	//输入
	printf("请输入一个整数x:");
	scanf("%d",&x);
	//构造表达式
	t=(x<2)+(x<6)+(x<10);	//判断每个小条件的真假,即0还是1
	//switch分支结构
	switch(t)
	{
		case 3:		
			y=x;	//x<2(全为真,即1+1+1=3)
			break;
		case 2:
			y=x*x+1;	//x>=2&&x<6(一假两真,即0+1+1=2)
			break;
		case 1:
			y=sqrt(x+1);	//x>=6&&x<10(两假一真,即0+0+1=1)
			break;
		case 0:
			y=1.0/(x+1);	//x>=10(全为假,即0+0+0=0)
			break;
	}
	//输出
	printf("函数的结果为:y=%.2lf\n",y);
	//空一行
    printf("\n");    
    return 0;
}

2.运行结果:
在这里插入图片描述

三,知识点总结:
1.C语言程序的基本结构
2.调用数学库的函数
3.switch语句的基本运用
4.通过构造特殊的表达式来简化程序,提高效率。

四,心得:switch的用法很多变,要有想象力,善于思考简便的方法简化计算。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值