クリップボードには何も入っていません / このアンケートをクリップする / クリア
2010年8月22日 11時54分終了#50091 [学問] C言語

ID:eb_,,O9Lg9 (・∀・)イイ!! (0)

「得意な言語」#50086で「C言語」と答えた方への質問でした。

/* 出力結果を選択してください */
/* コソアンの仕様上、ネストのブランクが消えてしまうのでご了承願います */
#include<stdio.h>
int main(int argc, char* argv[])
{
int num = 0;

if(num = 0){
printf("then\n");
}
else{
printf("else\n");
}
return 0;
}
// っ

1moritapo7(7%)
2then44(44%)
3else49(49%)
無視0

棒グラフまたは左の番号をクリックするとその項目を元にしたしっかりアンケートが作れます。

多い順に並べる

回答頻度、省略された選択肢の全表示、などの詳細表示

この円グラフをブログに貼れます→

合計回答数: 100人 / 100個

このアンケートと年齢性別出身都道府県居住都道府県でのクロス集計を見る

このアンケートへは現在トラックバックできません。

2 :名無しさん 10/08/22 06:38 ID:Gb3BPCAoAi (・∀・)イイ!! (0)
(num = 0)はわざと?


3 :アンケ主 10/08/22 06:41 ID:eb_,,O9Lg9 (・∀・)イイ!! (2)
>2さん
はい、わざとです。


4 :名無しさん 10/08/22 06:43 ID:LGXmfSKJMI (・∀・)イイ!! (2)
コンパイルしたら警告が出た


5 :アンケ主 10/08/22 06:51 ID:eb_,,O9Lg9 (・∀・)イイ!! (1)
>4さん
numが代入のみで参照しないので、コンパイラによっては警告を出してくれるかもしれませんね。


6 :名無しさん 10/08/22 06:58 ID:pL7N,4rA5j (・∀・)イイ!! (3)
わざとか・・・

 if(num = 0)
とかやらないように、
 if(0 == num)
としなさい、ってむかし協力会社のスーパーPGにおそわた


7 :名無しさん 10/08/22 07:38 ID:N9vjK_v44J (・∀・)イイ!! (1)
コンパイラによっては、ifの条件部が代入になっているだけで警告を出すのもあるな。
その場合は、更に括弧で括ってたのだが、最近はそれでも警告にするものに遭遇した。
警告は無視すればいいという考え方もあるが、数が多いと重大な警告を見逃すことにつながるんだ。
過剰な警告には困ったもんだ…


8 :名無しさん 10/08/22 07:38 ID:LErVcZPTG9 (・∀・)イイ!! (1)
pascal使いだった俺は「だから代入は:=と書けばいいのに」と思ってたことがある
最近はperlばかり書いてるので慣れたが


9 :名無しさん 10/08/22 08:52 ID:x4iKgQ,KYQ (・∀・)イイ!! (0)
then を選んだダメポが50%近くも居るとはな...
得意言語がCでそれかよ。日本オワタ


10 :名無しさん 10/08/22 09:12 ID:oC5lKo8jTO (・∀・)イイ!! (3)
C言語を得意な人が引っ掛けを疑っていれば間違えない問題ではあると思うよ。
ただ、引っ掛け問題には引っかかるのがエチケットと考えるプログラマも多く、
これを間違って解答したっからといって、したりがおはどうかと


11 :名無しさん 10/08/22 09:16 ID:y4vDD.6_fC (・∀・)イイ!! (0)
>>3
引っ掛けだっただと・・・うっかり八兵衛じゃないのか・・・・


12 :名無しさん 10/08/22 09:32 ID:lZfk2n,QZp (・∀・)イイ!! (3)
逆にこれがわざとじゃなけりゃクイズにならんだろうがな。
実際こういうミスは今でもするけど。


13 :名無しさん 10/08/22 09:40 ID:lddQYwsdSp (・∀・)イイ!! (0)
この程度の引っ掛けに躓くようなやつが書くプログラムは
メモリリークやバグがわんさかありそうで怖い・・・・・

あとでメンテする側の身にもなってくれよ・・・・・


14 :名無しさん 10/08/22 11:16 ID:qkFcouufFx (・∀・)イイ!! (1)
最初の頃はこれよく間違えたから今さら間違えるわけがない。
正の値入れたら、必ずtrue吐いた記憶があった。さんざん悩んだ。

てかポインタはすんなりいけたのに参照と代入はすんなり行かなかったな。
そういう意味でポインタより難しかった。


15 :名無しさん 10/08/22 11:52 ID:LGXmfSKJMI (・∀・)イイ!! (1)
(num = 0) == 0 だから falseになるわけか
寝ぼけたまま回答したから間違えたぜ


16 :名無しさん 10/08/22 13:03 ID:oyxcK4B.uf (・∀・)イイ!! (0)
インクリメントとかを除いて条件に代入とか常識的に考えてしないし
ミスだろうが、わざとだろうが大勢の人に見てもらうアンケとして良くないと思う。


17 :名無しさん 10/08/22 14:45 ID:v-6xDCu139 (・∀・)イイ!! (0)
if(!(p=malloc(10)))みたいなことはやったことがあるな。


18 :名無しさん 10/08/22 17:53 ID:UJL8QiM-fK (・∀・)イイ!! (0)
昔のファイルオープンのサンプルだと
FILE *fp;
if((fp=fopen("filename","rw"))==NULL){
fprintf(stderr, "file cannot open\n");
exit(-1);
}
なんてのよく見かけたな


19 :名無しさん 10/08/23 12:22 ID:nTH6RhWv-r (・∀・)イイ!! (0)
>>16 いやいや、>>17-18見るとわかると思うけど、これ結構やってたり。
エラー返す時NULL返す関数ってそれなりにあるから、逆手にとってエラーチェックに使ったりしない?


20 :名無しさん 10/08/24 23:00 ID:foyjl0_CJ, (・∀・)イイ!! (0)
>>19
>>18はストリームだし、>>1みたいに変数に代入して条件式を評価するなんて
実際あるの?


21 :名無しさん 10/08/24 23:48 ID:xdg.SdveuX (・∀・)イイ!! (0)
>>20
a = func(x);
if (a != 0) {
の短縮とか?


22 :名無しさん 10/08/25 00:25 ID:tI71zttdsS (・∀・)イイ!! (0)
>>20
あるかって言えばある

a += b + c + d
(a != 0) or (b != 0) or (c != 0) or (d != 0)

どちらも同じ結果になるんだがマシン語にするとステップ数が倍ぐらい違う
しかもこれを認識してくれるコンパイラはまず無い


板に戻る 全部 前100 最新50

このスレへの書き込みにはログインが必要です。
削除ガイドライン違反報告はこちら

このアンケートから派生したアンケートが2個あります
C言語【正解発表】 49名 8レス
ご回答ありがとうございます。 正解の皆様にはモリタポをお届けします。 予想よりも正解者数が少なかったため少し多めにお届けです…
C言語【参加賞】 44名 3レス
ご回答ありがとうございます。 正解はelseでしたが、thenを選択された方にも参加賞をお届けします。 ちなみにどうしてthenを選択さ…

このアンケートの2ちゃんねる互換リンク→http://find.moritapo.jp/enq/test/read.cgi/5/1282426572/