質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

8回答

1292閲覧

0!=1

HogeAnimalLover

総合スコア4830

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

1グッド

1クリップ

投稿2017/02/01 14:19

みなさん、

0!=1

という式を見て、まず何を思い浮かべますか?

私は0は1でないという関係演算が先に思い浮かびました。が、実は階乗演算であったと気付いて笑ってしまったことがありました。

d_red👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答8

0

こんにちは。

まずは、falseと思います。なんでfalseって書かないのかな?と思います。
しかし、階乗だとtrueになりますね。う~む。
その構文を階乗と解釈し、かつ、それを受け入れる言語を使っていたら超はまりそうです。

投稿2017/02/01 14:48

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2017/02/01 14:56

コメントありがとうございます。階乗を演算子で記述できる言語は私も見たことがないですね。ちなみに論理的にはtrueですよ。
otn

2017/02/01 15:04

APLだと!で階乗だと思ったけど、前置演算子でした。
Panzer_vor

2017/02/01 15:31

階乗を数式で見たのは高校数学以来なのでした・・・^^;
Chironian

2017/02/02 03:09

あああ、0 != 1はtrueでした。我ながら条件判断ミスは痛い。気を抜くと、時々やってしまいます。orz
guest

0

…直接は関係ないかもしれませんが。

bool hoge( ... ) { int hogehoge1; int hogehoge2; …実処理… return (hogehoge1 != XXX ) && !hogehoge2 ; }

…他人のコードトレースしてると、嫌になる時がある。

投稿2017/02/09 14:24

Huyuto

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

単純にtrueだなぁと思いますね

投稿2017/02/03 17:13

kiritsugu

総合スコア127

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CやC++で数値や変数の後ろに「!」をつけたら階乗計算してくれるような演算子があれば数値演算をプログラムする時に楽かも、と一瞬思いましたが、「!=」と書かれてしまった時に比較演算子と区別がつかないのであかんなぁと思い直しました(笑)
階乗計算をそんなに頻繁に行うことも実際にはないですからね。

投稿2017/02/02 07:55

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

プログラマが数学の式を見た場合の違和感...仕様書には載せられることがあるかもしれませんね。
まじめに回答してしまうと、プログラミングコードであれば、どう評価されるかは演算子の優先順位次第でしょう。

投稿2017/02/02 05:01

hsk

総合スコア728

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

40-32÷2=4!
というのを思い出しました。

投稿2017/02/02 00:59

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2017/02/02 11:12

回答ありがとうございます。そういうのもありましたね。
guest

0

タグでCと指定があるのでこの前提で。

実は階乗演算であった

などという事はなく条件式が常に真となるの一択です。

仕様としての記述に条件として0!=1という記述があったとしても、C言語での実装時に階乗演算式は実装しないでしょう。 if (1) {} などとコーディングしてしまいます。階乗演算を意図していた場合は仕様の記述としては悪手でしょうね(仕様に記載する時点で真偽が確定しているものはその物ズバリ記載し補足記述として階乗演算の結果を1となぜ比較するのかを記載すべき)。

投稿2017/02/02 00:28

編集2017/02/02 01:02
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2017/02/02 11:11

回答ありがとうございます。比較演算であれば結果はtrueです。タグは適当につけました。数学上の表記もあればつけたかったです。
cateye

2017/05/23 09:51 編集

C++ならoperator!(int)とかすれば、!(n)とか出来そうですね?・・・初めて見たらnの否定に見えるだろなぁ・・・もし、0の階乗なら(0!=1は)左辺値にはならないですからコンパイルエラーですねd^^ (つっこなまいでください^^;)
guest

0

とりあえず思いつくのはこんなパターン 結果はTRUE

c

1#include <stdio.h> 2void main(void){ 3 if ( 0!=1 ){ 4 printf("True\n"); //Trure 5 }else{ 6 printf("False\n"); 7 } 8 printf("Result:%d\n",0!=1); // Result:1 9 printf("Result:%d\n",8!=5); // Result:1 10}

投稿2017/02/01 23:25

編集2017/02/02 00:49
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HogeAnimalLover

2017/02/02 11:10

回答ありがとうございます。比較演算であれば結果はtrueです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問