C语言中如何表示“真”和“假”? 系统如何判断一个量的“真”和“假”?
如果有一个逻辑表达式,若其值为“真”,系统会以 1表示,若其值为“假”,会以 0表示。但是在判断一个逻辑量的值时,系统会以 0作为“假”,以非 0作为“真”。例如
3 &&5的值为“真”,系统给出 3&&5的值为1。
本题若出现错误,欢迎纠错!
写出下面各逻辑表达式的值,设a=3,b=4,c=5
a + b > c && b == c
a || b + c && b - c
!(a > b) && !c || 1
!(x = a) && (y = b) && 0
!(a + b) + c - 1 && b + c / 2
待完善。
由键盘输入3个整数a、b、c,要求输出其中最大的数,请编写程序
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int a = 0;
int b = 0;
int c = 0;
int max = 0;
scanf("%d %d %d", &a, &b, &c);
if (a < b)
{
if (b < c)
max = c;
else
max = b;
}
else
{
if (a > c)
max = a;
else
max = c;
}
printf("%d", max);
return 0;
}
给出一个百分制的成绩,要求输出成绩等级’A’ ‘B’ ‘C’ ‘D’ ‘E’。90 分以上为 A,80~89 分为 B,70~79 分为 C,60~69 分为 D,60 分以下为 E。
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
float score = 0;
char level = 0;
scanf("%f", &score);
if (score <= 100 && score >= 0)
{
switch ((int)(score / 10))
{
case 10:
case 9:
level = 'A';
break;
case 8:
level = 'B';
break;
case 7:
level = 'C';
break;
case 6:
level = 'D';
break;
default:
level = 'E';
}
printf("level:%c", level);
}
else
{
printf("输出错误");
}
return 0;
}
这题最好输入的是浮点数,因为你的成绩不一定都是整数,有可能带个小数点比如说99.5
输入后,最好先用if-else判断分数的合法性,因为你的分数是不可能超过100(暂定满分100)或者是小于0分的
如果用switch语句,需要注意的是:switch语句中的表达式只能是整型和字符型,而不能是浮点型和字符串类型
那么如果我们非要用switch语句怎么办,很简单,只需要强制类型转换
强制类型转换是把变量从一种类型转换为另一种数据类型。例如,本题中的浮点型变量float如果想存储一个 int类型的值到switch语句判断,只需要把float类型强制转换为 int 类型。使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示:
(type_name) expression
↓
(int)(score / 10);
给1个不多于5位的正整数,要求:
①求出他是几位数
②分别输出每一位数字
③按逆序输出各位数字,例如原数321,应输出123
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int n = 0;
int count = 0;//位数
int m = 0;
int ten_thousand = 0;//万位
int thousand = 0;//千位
int hundred = 0;//白位
int ten = 0;//十位
int indiv = 0;//个位
scanf("%d", &n);
if (n <= 99999)
{
//计算位数
if (n > 9999)
count = 5;
else if (n > 999)
count = 4;
else if (n > 99)
count = 3;
else if (n > 9)
count = 2;
else
count = 1;
printf("count = %d\n", count);
//计算每个位数分别的数字是多少
ten_thousand = n / 10000;
thousand = (n / 1000) % 10;
hundred = (n / 100) % 10;
ten = (n / 10) % 10;
indiv = n % 10;
//逆序输出
switch (count)
{
case 5:
printf("%d%d%d%d%d", indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:
printf("%d%d%d%d", indiv, ten, hundred, thousand);
break;
case 3:
printf("%d%d%d", indiv, ten, hundred);
break;
case 2:
printf("%d%d", indiv, ten);
case 1:
printf("%d", indiv);
}
}
else
{
printf("超出题目要求");
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int n = 0;
int count = 0;
int m = 0;
scanf("%d", &n);
if (n <= 99999)
{
while (n != 0)
{
count++;
m = n % 10;
printf("%d", m);
n /= 10;
}
printf("\n");
printf("n的位数是:%d", count);
}
else
{
printf("超出了5位数要求");
}
return 0;
}