c语言逻辑错误指的是,C语言逻辑语句问题集锦

1.与语句

(1)true情况

bool ret;

int dollar;

ret = dollar > 2000;

int car = 3;

printf("你的存款有:");

scanf("%d", &dollar);

if((true) && ((car = 2) > 1)){

printf("ojbk");

}

printf("汽车数量%d", car);

return 0;

0f59c8589a83af105bbb387df7ab18a8.png

(2)false情况

int main(void){

bool ret;

int dollar;

ret = dollar > 2000;

int car = 3;

printf("你的存款有:");

scanf("%d", &dollar);

if((false) && ((car = 2) > 1)){

printf("ojbk");

}

printf("汽车数量%d", car);

return 0;

0029d4e59b545cfa5b8ed121f511b419.png

2.或语句

(1)true情况

bool ret;

int dollar;

ret = dollar > 2000;

int car = 3;

printf("你的存款有:");

scanf("%d", &dollar);

if((true) || ((car = 2) > 1)){

printf("ojbk");

}

printf("汽车数量%d", car);

return 0;

91b714c3678be792331a0d3b4584691b.png

(2)false情况

bool ret;

int dollar;

ret = dollar > 2000;

int car = 3;

printf("你的存款有:");

scanf("%d", &dollar);

if((false) || ((car = 2) > 1)){

printf("ojbk");

}

printf("汽车数量%d", car);

return 0;

5c0aac0fe2a0f486ce736a4338a83663.png

一.与的情况:

b:初始化不符合假设条件;要求输入数值

int a;

int b = 200;

printf("请输入a值:");

scanf("%d",&a);

printf("请输入b值:");

scanf("%d",&b);

if((a > b) && (b > 200)){

printf("合格指标");

}

else{

printf("返工");

}

printf("b = %d",b);

return 0;

之前在b初始化了200,但是在后面有输入了b的值,所以之前的初始化便失去效果,可以删除掉。

打印的b值始终为输入的b值

b:初始化不符合假设条件;假设条件为300

int a;

int b = 200;

printf("请输入a值:");

scanf("%d",&a);

if((a > b) && ((b = 300) > 200)){

printf("合格指标");

}

else{

printf("返工\n");

}

printf("b = %d",b);

return 0;

b被初始化成200,没有再次输入b。

前项符合则b为300;前项不符合则b为200

b:初始化不符合假设条件;要求输入数值;假设条件300

int a;

int b = 200;

printf("请输入a值:");

scanf("%d",&a);

printf("请输入b值:");

scanf("%d",&b);

if((a > b) && ((b = 300) > 200)){

printf("合格指标");

}

else{

printf("返工\n");

}

printf("b = %d",b);

return 0;

因为b在初始化之后又有输入,所以这里的初始化又没有了作用,可删除掉此行代码。

前项符合则b为300;前项不符合则b为输入值

二 非语句

b:初始化不符合假设条件;假设条件为300

int main (void){

int a;

int b = 200;

printf("请输入a值:");

scanf("%d",&a);

if((a > b) || ((b = 300) > 200)){

printf("合格指标");

}

else{

printf("返工");

}

printf("b = %d",b);

return 0;

始终满足条件语句 前项错误则b为300;前项正确则b为200

b:初始化不符合假设条件;要求输入数值;假设条件为300

int a;

int b = 200;

printf("请输入a值:");

scanf("%d",&a);

printf("请输入b值:");

scanf("%d",&b);

if((a > b) || ((b = 300) > 200)){

printf("合格指标");

}

else{

printf("返工");

}

printf("b = %d",b);

return 0;

b的初始化没有作用可以删除掉

始终满足条件语句。 前项错误则b为300;前项正确则b为输入值

b初始化不符合假设条件;要求输入数值

int a;

int b = 200;

printf("请输入a值:");

scanf("%d",&a);

printf("请输入b值:");

scanf("%d",&b);

if((a > b) || (b > 200)){

printf("合格指标");

}

else{

printf("返工");

}

printf("b = %d",b);

return 0;

输出b的数值始终为输入b的数值,不管是否符合条件语句

总结:1.若b 既被初始化,又要被输入数值,则初始化的代码就失效了,就是没用的可以删除了。

2.条件语句中的(b = 300)已经保证条件中的一项满足了。若输入另一项后最终满足了条件语句,则输出的b为300;若输入另一项后没有满足条件语句,则输出的b值:输入值(先考虑)—>初始化值(再考虑)

三,其他逻辑语句

#include int main(void){

char name[32];

int allowance;

int all;

int face;

int service;

int happy;

printf("请输入你的名字:");

scanf("%s", name);

printf("请输入你的颜值:");

scanf("%d", &face);

allowance = strcmp(name,"Charlie") > 0 ? 100 : 59;

all = allowance + face >75 ? 90 : 75;

if(all = 90){

printf("请进入商务舱\n");

}

else{

printf("请进入经济舱\n");

}

service = (allowance*3, face*=2,all = ++face);

printf("你的服务指数为%d\n",service);

happy = ++service;

printf("你的愉快指数为%d\n",happy);

return 0;

}

我们知道逗号运算符括号里只输出最后一个逗号后的内容。如service = (allowance3, face=2,all = ++face); 最终的service = all ,all = ++face。但是只输出不代表只运算,里面用逗号隔开的内容都会被运算,只是输出最后一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值