就用 if else if 来写就行吧
float f(int x)
{
int y;
if (x <= -5)
y = 2x -1;
else if (x> -5 && x<=0)
y =
//…
return y;
}
// main 函数打印
printf("%.2f", f(x));
编程时常常需要判定一系列的条件,一旦其中某个条件为真就立刻停止。
如何做到呢?
例2-4 程序:判断 n 是大于 0 还是 等于 0 还是小于 0
使用 if else
if(n < 0){
printf("n < 0");
}else{
if(n == 0){
printf("n = 0");
}
else{
printf("n > 0");
}
}
使用 else if
if(n < 0){
printf("n < 0");
}
else if(n == 0){
printf("n == 0");
}
else{
printf("n > 0");
}
这样写可以避免 if else 嵌套,从而提高了书写和理解的难易度。
级联式 if 语句书写形式:
if(表达式){
语句;
}
else(表达式){
语句;
}
else{
语句;
}
问题解答:
可以使用C语言中的数组和if语句来解决这个问题。
首先定义一个数组,如下所示:
int num[4];
接着,使用scanf函数输入四个数,存储到数组中:
scanf("%d %d %d %d", &num[0], &num[1], &num[2], &num[3]);
然后,使用if语句处理这些数,判断每个数是否符合特定的条件,并返回四个值:
if (num[0] > 10) { // 处理num[0] } else { // 处理num[0] }
if (num[1] < 20) {
// 处理num[1]
} else {
// 处理num[1]
}
if (num[2] == num[3]) {
// 处理num[2]和num[3]
} else {
// 处理num[2]和num[3]
}
最后将处理完的值返回即可。
完整的代码如下:
int main() {
int num[4];
scanf("%d %d %d %d", &num[0], &num[1], &num[2], &num[3]);
if (num[0] > 10) {
// 处理num[0]
} else {
// 处理num[0]
}
if (num[1] < 20) {
// 处理num[1]
} else {
// 处理num[1]
}
if (num[2] == num[3]) {
// 处理num[2]和num[3]
} else {
// 处理num[2]和num[3]
}
// 返回四个值
printf("%d %d %d %d", num[0], num[1], num[2], num[3]);
return 0;
}
需要注意的是,在处理每个数之前都需要先判断该数是否符合特定的条件,以此来确定处理的方式。同时也可以根据实际需求来修改if语句中的条件和处理方式。
这样写,供参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
float fun(int x)
{
float y = 0;
if (x <= -5)
y = 2 * x - 1;
else if (x > -5 && x <= 0)
y = 4 * x + 1;
else if (x > 0 && x < 5)
y = x / 2.0 - 1;
else if (x >= 5)
y = x + 3;
return y;
}
int main()
{
int x, flg = 0;
char str[64], * p;
gets(str);
p = strtok(str, ",");
while (p) {
x = atoi(p);
printf(flg++ ? ",%g" : "%g", fun(x));
p = strtok(NULL, ",");
}
return 0;
}