100題[基礎-論理演算]1053~1058


  • 1(真、真)または0(偽、偽)を入力します.
    反対の出力プログラムを作成してみます.
  • #include <stdio.h>
    main()
    {
        int bool;
        scanf("%d",&bool);
        printf("%d",!bool);
        return 0;
    }
    !No、0は1、1は0
  • は、2つの「真」(1)または「偽」(0)を入力します.
    すべての参照が真である場合にのみ参照を出力するプログラムを作成します.
  • #include <stdio.h>
    main()
    {
        int x,y;
        scanf("%d %d",&x,&y);
        if(x==1 && y==1)
        printf("%d",1);
        else
        printf("0");
        return 0;
    }
    if文と(and)を使用する場合
    (x=1,y=1)と錯覚しやすい(実際に勉強を始めたばかりの頃はこのように書くのが間違っていた)、必ず&&を使って書きます.
    andは両方とも本物であることを意味する.
  • は、2つの「真」(1)または「偽」(0)を入力します.
    もし本当なら、本当のプログラムを作成しましょう.
  • #include <stdio.h>
    main()
    {
        int x,y;
        scanf("%d %d",&x,&y);
        if(x==1 || y==1)
        printf("1");
        else
        printf("0");
        return 0;
    }
    文でまたは(または)を使用する場合は、|(スラッシュ2)を使用します.
    二つのうちの一つが本物であることを意味する.
  • は、2つの「真」(1)または「偽」(0)を入力します.
    真/偽が同時に真を出力するプログラムを作成しましょう.
  • #include <stdio.h>
    main()
    {
        int x,y;
        scanf("%d %d",&x,&y);
        if(x!=y)
        printf("1");
        else
        printf("0");
        return 0;
    }
    私はこのように解いたのですが、この問題のポイントはXORを使うことです.
    XORの意味はorですが、同じではありません.
    つまり、二つが違うのが本当だということです.
    #include <stdio.h>
    int main()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("%d\n", a^b);
        return 0;
    }
    このように解くのはもっと正しい答えに近い.
    演算記号^
  • は、2つの「真」(1)または「偽」(0)を入力します.
    真/偽が等しい場合にのみ真を計算するプログラムを作成します.
  • #include <stdio.h>
    main()
    {
        int x,y;
        scanf("%d %d",&x,&y);
        if(x==y)
        printf("1");
        else
        printf("0");
        return 0;
    }
    これは答えは正しいが、問題の意図とは少し違うようだ.
    #include <stdio.h>
    int main()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("%d\n", !(a^b));
        return 0;
    }
    XORのnotをして、2つとも同じで本当です.
    andとは違います.二人とも我慢するのは我慢ですが.
    !XORは本物か偽物か、二つとも本物だ.
  • は、2つの「真」(1)または「偽」(0)を入力します.
    すべてが偽物である場合にのみ真の値を計算するプログラムを作成しましょう.
  • #include <stdio.h>
    main()
    {
        int x,y;
        scanf("%d %d",&x,&y);
        if(x==0 && y==0)
        printf("1");
        else
        printf("0");
        return 0;
    }
    私の答え
    #include <stdio.h>
    int main()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("%d\n", !(a||b));
        return 0;
    }
    問題の意図
    実はnot XORかnot ORで良いのですが、別の方法でも十分に表現できるのではないでしょうか.
    今日のcodeup C言語の基礎100題は全部終わりました.次はGredyアルゴリズムをネットで勉強します.コードが完成しても、復習のレベルにアップします.あきらめないで、たゆまず向上しなければならない.
    2021.6.8