现在的位置: 首页 > 03 分支结构 > 正文

if 语句的基本结构(分段函数)

2013年11月16日 03 分支结构 ⁄ 共 19字 ⁄ 字号 if 语句的基本结构(分段函数)已关闭评论

【问题:分段函数】

有一个函数

y={ x      x<1
    | 2x-1   1<=x<10
    \ 3x-11  x>=10

写一段程序,输入x,输出y。 说明:x 和 y 都是整数。

if语句有三种结构, 最简单的是

1
2
3
if (表达式) {
    语句块;
}
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main()
{
    int a, b, max;
    scanf("%d%d", &a, &b);
    max = a;
    if (b>max) {
        max = b;
    }
    printf("%d\n", max);
    return 0;
}

稍微复杂一点的是

1
2
3
4
5
if (表达式) {
    语句块;   
}  else {
    语句块;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main()
{
    int a, b, max;
    scanf("%d%d", &a, &b);
    if (a>b) {
    	max = a;
    } else {
    	max = b;
    }
    printf("%d\n", max);
    return 0;
}

更加复杂的是

1
2
3
4
5
6
7
8
9
if (表达式) {
    语句块;    
}  else if (表达式) {
    语句块;    
} else if (表达式) {
    语句块;    	
} else  (表达式) {
    语句块;    	
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main()
{
    int x, y;
    scanf("%d",&x);
    if(x<1) {
        y=x;
    }
    else if(x<10) {
        y=2*x-1;
    }
    else {
        y=3*x-11;
    }
    printf("%d\n",y);
    return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(int argc, char *argv[])
{
    int x, y;
    scanf("%d",&x);
    if(x<1)
        y=x;
    if(x>=1&&x<10)
        y=2*x-1;
    if(x>=10)
        y=3*x-11;
    printf("%d",y);
    return 0;
}

也可以简化一下判断,如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(int argc, char *argv[])
{
    int x, y;
    scanf("%d",&x);
    if(x<1)
        y=x;
    else if(x<10)
        y=2*x-1;
    else
        y=3*x-11;
    printf("%d\n",y);
    return 0;
}

抱歉!评论已关闭.