鱼C论坛

 找回密码
 立即注册
查看: 1346|回复: 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 型变量。
        下面是我修改的代码,请楼主参考
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a = 3 , b = 4 , c = 5 , x , y                           ;
  5.         bool d , e , f , g , h                                      ;
  6.         d = a + b > c && b == c                                     ;
  7.         e = a || b + c && b - c                                     ;
  8.         f = ! (a > b) && ! c || 1                                   ;
  9.         g = ! (x = a) && (y = b) && 0                               ;
  10.         h = ! (a + b) + c - 1 && b + c / 2                          ;
  11.         if (d) printf("a + b > c && b == c\t -> true\n")            ;
  12.         else printf("a + b > c && b == c\t -> false\n")             ;
  13.         if (e) printf("a || b + c && b - c\t -> true\n")            ;
  14.         else printf("a || b + c && b - c\t -> false\n")             ;
  15.         if (f) printf("! (a > b) && ! c || 1\t -> true\n")          ;
  16.         else printf("! (a > b) && ! c || 1\t -> false\n")           ;
  17.         if (g) printf("! (x = a) && (y = b) && 0\t -> true\n")      ;
  18.         else printf("! (x = a) && (y = b) && 0\t -> false\n")       ;
  19.         if (h) printf("! (a + b) + c - 1 && b + c / 2\t -> true\n") ;
  20.         else printf("! (a + b) + c - 1 && b + c / 2\t -> false\n")  ;
  21.         return 0                                                    ;
  22. }
复制代码

         编译运行实况:
  1. C:\Bin>g++ -o x x.c

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

  8. C:\Bin>
复制代码

        如果使用 VC6 编译,应该把源代码文件的扩展名改为 .cpp,只有这样,才会支持 bool 型数据类型
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

  2. int main(void)
  3. {
  4.         int a = 3 , b = 4 , c = 5 , x , y                           ;
  5.         bool d , e , f , g , h                                      ;
  6.         d = a + b > c && b == c                                     ;
  7.         e = a || b + c && b - c                                     ;
  8.         f = ! (a > b) && ! c || 1                                   ;
  9.         g = ! (x = a) && (y = b) && 0                               ;
  10.         h = ! (a + b) + c - 1 && b + c / 2                          ;
  11.         if (d) printf("a + b > c && b == c\t -> true\n")            ;
  12.         else printf("a + b > c && b == c\t -> false\n")             ;
  13.         if (e) printf("a || b + c && b - c\t -> true\n")            ;
  14.         else printf("a || b + c && b - c\t -> false\n")             ;
  15.         if (f) printf("! (a > b) && ! c || 1\t -> true\n")          ;
  16.         else printf("! (a > b) && ! c || 1\t -> false\n")           ;
  17.         if (g) printf("! (x = a) && (y = b) && 0\t -> true\n")      ;
  18.         else printf("! (x = a) && (y = b) && 0\t -> false\n")       ;
  19.         if (h) printf("! (a + b) + c - 1 && b + c / 2\t -> true\n") ;
  20.         else printf("! (a + b) + c - 1 && b + c / 2\t -> false\n")  ;
  21.         return 0                                                    ;
  22. }
复制代码

         编译运行实况:
  1. C:\Bin>g++ -o x x.c

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

  8. C:\Bin>
复制代码

        如果使用 VC6 编译,应该把源代码文件的扩展名改为 .cpp,只有这样,才会支持 bool 型数据类型
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 18:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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