运行两次,倒数第三个位置没变,结果却变了?

来源:3-9 三目运算符

宝慕林9803269

2021-07-21 15:43

#include <stdio.h>

int main()

{

    double money =12      ; 

    double cost =11.5       ;  

    printf("小编能不能打车回家呢:"); 

    printf("%c\n",money>=cost?'y':'n');

    printf("%c\n",(money>=cost)?'y':'n');

    

    printf("%c\n",(money>cost)||(money=cost)?'y':'n');

    printf("%c\n",(money=cost)||(money>cost)?'y':'n');

    printf("%c\n",((money>cost)||(money=cost))?'y':'n');

    

    printf("%c\n",(money>cost)&&(money=cost)?'y':'n');

    printf("%c\n",(money=cost)&&(money>cost)?'y':'n');

    printf("%c\n",((money>cost)&&(money=cost))?'y':'n');

    


    

    

    return 0;

}

#include <stdio.h>

int main()

{

    double money =12      ; 

    double cost =11.5       ;  

    printf("小编能不能打车回家呢:"); 

    printf("%c\n",money>=cost?'y':'n');

    printf("%c\n",(money>=cost)?'y':'n');

    

    printf("%c\n",(money>cost)||(money=cost)?'y':'n');

    printf("%c\n",((money>cost)||(money=cost))?'y':'n');

    

    printf("%c\n",(money>cost)&&(money=cost)?'y':'n');

    printf("%c\n",(money=cost)&&(money>cost)?'y':'n');

    printf("%c\n",((money>cost)&&(money=cost))?'y':'n');

    


    

    

    return 0;

}


写回答 关注

2回答

  • 宝慕林9803269
    2021-07-22 14:14:26

    复制上半部分,把格式改标准,删除第11行会改变倒数第三行的打印结果。好恐怖,不是n了。删除第10和第12都没事。

  • weixin_慕丝3003608
    2021-07-21 22:14:58

    (money>cost)&&(money=cost)

    '&&'意思是前后条件都要满足,所以原因就很简单了

    宝慕林980...

    这是倒数第三行\n: printf("%c\n",(money>cost)&&(money=cost)?'y':'n'); 问题中下面int main()运行结果倒数第三个是y。 上面的int main()运行结果倒数第三个是n。 我的问题是: printf("%c\n",(money>cost)&&(money=cost)?'y':'n');这个运行结果为什么不确定。

    2021-07-22 09:28:16

    共 2 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926022 学习 · 20793 问题

查看课程

相似问题