第26讲项目3-分段函数求值switch语句版

任务和代码:

/*
*Copyright (c)2017,CSDN学院
*All rights reserved.
*文件名称: main.c
*作 者: 伍志鹏
*完成日期: 2017年9月11日
*版本号: v1.0
*
*问题描述:  从键盘输入x的值(要求为整型),根据公式1计算并输出x和y的值。要求用switch语句完成。
*
*   (x,x<2)
* y=(x*x+1, 2<=x<6)
*   (sqrt(x+1),6<=x<10)
*   (1/(x+1),x>=10)
*程序输出:  y的值
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int x,y,t;
    printf("请输入x的值:");
    scanf("%d",&x);
    t=(x<2)+(x<6)+(x<10);
    if(x<0){
        t=4;
    }
    switch(t)
    {
        case 1:    //仅(x<10)为真时
            y=sqrt(x+1);
            break;
        case 2:    //(x<6) (x<10)为真时
            y=x*x+1;
            break;
        case 3:    //(x<2) (x<6)(x<10)全为真时
            y=x;
            break;
        case 4:    //当x<0时候,y的值也为0
            y=0;
            break;
        default:    //(x<2) (x<6)(x<10)没有一个为真时,即x>=10
            y=1/(x+1);
    }
    printf("y的值是:%d\n",y);
    return 0;
}

运行结果:


总结:

程序中使用了新的方法来进行运算,t是用来做为函数的该选择哪一个公式,而且t的值是对条件判断有比较好的用处;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章