第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的值是對條件判斷有比較好的用處;

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