C程序设计(第四版) 谭浩强 习题4.3
习题 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1) a + b > c && b == c
(2) a || b + c && b - c
(3) !(a >b) && !c || 1
(4) !(x = a) && (y = b) && 0
(5) !(a + b) + c - 1 && b + c/2
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法1:使用switch语句
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 3, b = 4, c = 5, n, x, y, v;
printf("Please enter number:");
scanf("%d", &n);
switch(n){
case 1: v = a+b>c && b == c; break;
case 2: v = a||b+c && b-c; break;
case 3: v = !(a>b) && !c||1; break;
case 4: v = !(x=a) && (y=b) && 0; break;
case 5: v = !(a+b)+c-1 && b+c/2; break;
default: printf("Error!\n"); break;
}
if (n >=1 && n <=5)
printf("v%d value is %d\n", n, v);
system("pause");
return 0;
}
方法2:使用函数的模块化设计
#include <stdio.h>
#include <stdlib.h>
void value(int x); //定义公式值判断函数
int a = 3, b = 4, c = 5, x, y; //定义全局变量
int main()
{
int n;
printf("Please enter number:");
scanf("%d", &n);
value(n);
system("pause");
return 0;
}
//公式值判断函数
void value(int x)
{
int v;
switch(x){
case 1: v = a+b>c && b == c; break;
case 2: v = a||b+c && b-c; break;
case 3: v = !(a>b) && !c||1; break;
case 4: v = !(x=a) && (y=b) && 0; break;
case 5: v = !(a+b)+c-1 && b+c/2; break;
default: printf("Error!\n"); break;
}
if (x >=1 && x <=5)
printf("v%d value is %d\n", x, v);
}