鱼C论坛

 找回密码
 立即注册
查看: 992|回复: 1

[已解决]求各位大捞帮忙看看这个题的编程的错误出现在哪里?

[复制链接]
发表于 2019-11-11 01:35:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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



#include<stdio.h>
void main();
{
  int a,b,c;
  double d,e,f,g,h;
  
    a=3;
    b=4;
    c=5;
    d=a+b>c && b= =c;
    e=a||b+c && b-c;
    f=!(a>b)&& !c ||1;
    g=!(x=a) && (y=b)&& 0;
    h=!(a+b)+c-1 && b+c/2;
     
    printf"(a=%d,b=%d,c=%d,d=%lf,e=%lf,f=%lf,g=%lf,h=%lf",a,b,c,d,e,f,g,h);
   
    return  0;

  }
最佳答案
2019-11-11 02:44:31
本帖最后由 jackz007 于 2019-11-11 02:49 编辑

        d、e、f、g、h 不应该是 double 型,而应该是 bool 型变量。
        下面是我修改的代码,请楼主参考
#include <stdio.h>

int main(void)
{
        int a = 3 , b = 4 , c = 5 , x , y                           ;
        bool d , e , f , g , h                                      ;
        d = a + b > c && b == c                                     ;
        e = a || b + c && b - c                                     ;
        f = ! (a > b) && ! c || 1                                   ;
        g = ! (x = a) && (y = b) && 0                               ;
        h = ! (a + b) + c - 1 && b + c / 2                          ;
        if (d) printf("a + b > c && b == c\t -> true\n")            ;
        else printf("a + b > c && b == c\t -> false\n")             ;
        if (e) printf("a || b + c && b - c\t -> true\n")            ;
        else printf("a || b + c && b - c\t -> false\n")             ;
        if (f) printf("! (a > b) && ! c || 1\t -> true\n")          ;
        else printf("! (a > b) && ! c || 1\t -> false\n")           ;
        if (g) printf("! (x = a) && (y = b) && 0\t -> true\n")      ;
        else printf("! (x = a) && (y = b) && 0\t -> false\n")       ;
        if (h) printf("! (a + b) + c - 1 && b + c / 2\t -> true\n") ;
        else printf("! (a + b) + c - 1 && b + c / 2\t -> false\n")  ;
        return 0                                                    ;
}
         编译运行实况:
C:\Bin>g++ -o x x.c

C:\Bin>x
a + b > c && b == c      -> false
a || b + c && b - c      -> true
! (a > b) && ! c || 1    -> true
! (x = a) && (y = b) && 0        -> false
! (a + b) + c - 1 && b + c / 2   -> true

C:\Bin>
        如果使用 VC6 编译,应该把源代码文件的扩展名改为 .cpp,只有这样,才会支持 bool 型数据类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-11 02:44:31 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-11-11 02:49 编辑

        d、e、f、g、h 不应该是 double 型,而应该是 bool 型变量。
        下面是我修改的代码,请楼主参考
#include <stdio.h>

int main(void)
{
        int a = 3 , b = 4 , c = 5 , x , y                           ;
        bool d , e , f , g , h                                      ;
        d = a + b > c && b == c                                     ;
        e = a || b + c && b - c                                     ;
        f = ! (a > b) && ! c || 1                                   ;
        g = ! (x = a) && (y = b) && 0                               ;
        h = ! (a + b) + c - 1 && b + c / 2                          ;
        if (d) printf("a + b > c && b == c\t -> true\n")            ;
        else printf("a + b > c && b == c\t -> false\n")             ;
        if (e) printf("a || b + c && b - c\t -> true\n")            ;
        else printf("a || b + c && b - c\t -> false\n")             ;
        if (f) printf("! (a > b) && ! c || 1\t -> true\n")          ;
        else printf("! (a > b) && ! c || 1\t -> false\n")           ;
        if (g) printf("! (x = a) && (y = b) && 0\t -> true\n")      ;
        else printf("! (x = a) && (y = b) && 0\t -> false\n")       ;
        if (h) printf("! (a + b) + c - 1 && b + c / 2\t -> true\n") ;
        else printf("! (a + b) + c - 1 && b + c / 2\t -> false\n")  ;
        return 0                                                    ;
}
         编译运行实况:
C:\Bin>g++ -o x x.c

C:\Bin>x
a + b > c && b == c      -> false
a || b + c && b - c      -> true
! (a > b) && ! c || 1    -> true
! (x = a) && (y = b) && 0        -> false
! (a + b) + c - 1 && b + c / 2   -> true

C:\Bin>
        如果使用 VC6 编译,应该把源代码文件的扩展名改为 .cpp,只有这样,才会支持 bool 型数据类型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 12:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表