◆ New Entries

この問題が解けない人はプログラマの素質がない

1 :番組の途中ですがアフィサイトへの転載は禁止です:2012/11/21(水) 13:57:53.92 ID:igJwcqxH0 ?2BP(1000)
C言語の問題です

int i;
int a[2];

a[0] = 5;
a[1] = 5;

i = 0;
a[i] = ++i;

このときa[0]とa[1]の値をそれぞれ答えなさい


 
8 :
:2012/11/21(水) 13:59:42.77 ID:YpywE11d0
俺なら底辺プログラマが困惑しないように
こんなクソみたいなコード書かないけどなw


17 :
:2012/11/21(水) 14:02:08.47 ID:VLIYMTB/0
関数名が無いのでアウト

25 :
:2012/11/21(水) 14:04:50.41 ID:TmUESZhn0
素質じゃなくて言語仕様の問題だろうが
しかし何そのクソコード 意味なさすぎる

素質というならこんな問題を出す奴に素質はない


31 :
:2012/11/21(水) 14:05:45.53 ID:e5ZR7i5k0
a[0]に入るのかa[1]に入るのかわかんね

33 :
:2012/11/21(水) 14:07:11.06 ID:456hBGtA0
なる。

i=0;
a[i]=++i;
って、
iをインクリメントして1になったあと
a[1]=1
って代入するんだね…。

まぁ、そうか。iが一時に二値とるわけないもんな。
勘違いしてた…。


42 :
:2012/11/21(水) 14:08:19.66 ID:lizJdNEq0
ポストインクリメントは一番優先順位が上

45 :
:2012/11/21(水) 14:08:47.82 ID:uLCjJtZ60
なんだこの糞コード

51 :
:2012/11/21(水) 14:09:49.77 ID:mZU0CFU6i
++iってあまり見かけないな…
たいていi++


52 :
:2012/11/21(水) 14:10:09.21 ID:NIJIy74NP
おいおいお前らマジで解けないのかよ
いくらコードが糞とは言えこんなの考えるまでもないだろ
大丈夫か?


53 :
:2012/11/21(水) 14:10:24.43 ID:5VT0Txvb0
++iを理解してるかどうかじゃないの?

56 :
:2012/11/21(水) 14:11:08.62 ID:uYnB8Pz80
これってコンパイラによって結果が変わるんじゃなかったっけ?

57 :
:2012/11/21(水) 14:11:12.73 ID:e5ZR7i5k0
結局5,1なのか1,5なのかどっちが正解なんだよ

70 :
:2012/11/21(水) 14:13:43.33 ID:u6PDUOcF0
ケースバイケースだ。俺はそれでここまでやってきたんだ。これからも頑張っていくんだ。それで何が悪い。

71 :
:2012/11/21(水) 14:13:46.82 ID:06pFkEI10
わからん・・・

a[0] が 5
a[1] が 0
かな


78 :
:2012/11/21(水) 14:14:58.65 ID:GdpbErHy0
変態的なコードってこんなもんじゃねーだろ。

79 :
:2012/11/21(水) 14:15:27.56 ID:uLCjJtZ60
嫌がらせコードだろこれ

82 :
:2012/11/21(水) 14:16:50.44 ID:456hBGtA0
>>79
まぁ、理解度テスト以外に意味無いコードですね。

実業務でこんなコード書く人いたらかなりめんどくさいことになる。


84 :
:2012/11/21(水) 14:17:25.88 ID:8K5oHNv50
++iがバカっぽい

85 :
:2012/11/21(水) 14:17:28.28 ID:hfH8ynXi0
どう考えても5,1だろバカ

94 :
:2012/11/21(水) 14:20:57.13 ID:iCXF/GeD0
ひでえ欠陥言語だな。本気で間違えたわ

100 :
:2012/11/21(水) 14:23:34.37 ID:/C7WcAdM0
未定義なので鼻から悪魔が出てくる
ですよね^^


103 :
:2012/11/21(水) 14:24:03.23 ID:2DnHpMh80
一番最後の行の処理をばらして書けば分かりやすい
業務ならレビューで指摘してリファクタリングさせる


104 :
:2012/11/21(水) 14:24:15.77 ID:l60L5iXx0
末尾に;書かなきゃいけない言語はもう触りたくない

132 :
:2012/11/21(水) 14:38:23.60 ID:YpywE11d0
>>104
省略したらしたで誤解釈されるから必須でいいじゃん。


105 :
:2012/11/21(水) 14:24:35.59 ID:rC/PUu0lQ
全然わからない
60年後までには自作ゲームを作成・完成したいのだが


125 :
:2012/11/21(水) 14:34:08.78 ID:zzS5Xqz30
>>105
こんなんわからんでもそんくらいなら余裕


106 :
:2012/11/21(水) 14:24:52.52 ID:iytwu1m+0
この問題に不快感を覚えれば覚えるほどプログラマに向いてるかもしれないなw

109 :
:2012/11/21(水) 14:26:48.48 ID:O6/jZsRr0
トリッキーなコード書いたってコンパイルしたら一緒なんだからわかりやすさがベスト

115 :
:2012/11/21(水) 14:28:37.86 ID:zs+P6x080
ソースなしクソ
釣られたついでに書いておく


117 :
:2012/11/21(水) 14:29:43.54 ID:gvExjUic0
a[0] = 5
a[1] = 1
どう考えてもこうだな


135 :
:2012/11/21(水) 14:41:14.67 ID:7iV+fi3Q0
インクリメントの問題って、コンパイルオプションやCPUで変化しないの?

138 :
:2012/11/21(水) 14:42:14.55 ID:ZGo7sv4E0
誰だよ右辺を先とか言う奴は
右辺が左辺に影響するわけねえだろ

と思ったが、Cはそうなのか?
気持ちわりい言語だな


143 :
:2012/11/21(水) 14:44:31.59 ID:g9Qm9eGC0
糞コードすぎるだろ

145 :
:2012/11/21(水) 14:45:30.68 ID:4UkAoXsV0
本当に素質がないのはこのコードを書くアホ

150 :
:2012/11/21(水) 14:49:25.23 ID:tk2hncyc0
ハローワールドで手を引いた身だからどうでもいいわ

153 :
:2012/11/21(水) 14:50:53.04 ID:7iV+fi3Q0
++が前か後ろかの問題だけど、それ以前にこんなコードは書かないよね
高速化とか今は普通にコンパイラ任せだから、わかりやすく2行に分けたり別変数に入れたりしたほうが保守性は高い
インクリメントの問題ならfor文とかでも似たような現象起こるでしょ
そっちのほうがやりがちなミス


156 :
:2012/11/21(水) 14:55:38.46 ID:hZDZXsml0
いまどき++iつかうバカいねーよw

157 :
:2012/11/21(水) 14:56:41.23 ID:+m19RfERi
お前らのやり取りみてるとプログラマって性格悪いやつ多いってのがわかるわ

169 :
:2012/11/21(水) 15:05:52.82 ID:7K+Xt2TY0
環境依存のコードを書く奴はバカ

170 :
:2012/11/21(水) 15:05:57.68 ID:GjX5Mh6N0
この糞コードに対して必死に考えてる奴が社畜プログラマーとして素質があるんだってさ

178 :
:2012/11/21(水) 15:20:20.35 ID:U3OSqSM+0
a[0]=5 a[1]=1かな
これをa[i]=i++に変えると、a[0]=0 a[1]=5になっちゃうんだよな
Cがバグが多いのも分かるよ


179 :
:2012/11/21(水) 15:23:43.54 ID:EaCBPl4Q0
a[i] = ++i;
どっち先にすればいいかわからん


180 :
:2012/11/21(水) 15:26:15.42 ID:hrbQHUYc0
PCの言語とかさっぱり分からない・・・
一体どこで勉強をして覚えるんだよw
小学生辺りからやらないと絶対に身につかないだろコレw


184 :
:2012/11/21(水) 15:32:41.37 ID:ZZpnRbztT
>>180
プログラムなんて覚えることほとんど無いよ
プログラム全く知らない文系でもSEやってるくらいだから楽勝


186 :
:2012/11/21(水) 15:38:38.64 ID:KOjLmeEv0
こんなわかりにくいコード書く奴はバカ

189 :
:2012/11/21(水) 15:41:04.56 ID:KiMwHykd0
こんなもんひと目で分かるわ
将棋に例えるなら素人プログラマーはせいぜい5級とかそんなもんだから、
よーく考えても間違える
玄人プログラマーは高段者なのでこんなのはひと目で分かる


193 :
:2012/11/21(水) 15:47:39.63 ID:Bq9d3lEP0
まず引っ掛けをひたすら探す。

++iが理解出来るかの問題。

ではなくて、わざわざ【C言語】と宣言してるから

答えはコンパイル出来ない


201 :
:2012/11/21(水) 15:57:21.72 ID:E8SaBnA30
コード以前に、こんな言語を作った奴がバカ
素質がない


202 :
:2012/11/21(水) 15:57:36.30 ID:9IBdCxQK0
これは糞じゃなくて間違いなんだから書き直さなきゃダメだけど
PHPのコードなんて全部こんなんだよ


203 :
:2012/11/21(水) 15:59:15.25 ID:YQ9SysxL0
/*** ワーニング!よく分からないけど僕の環境では動きました ***/

205 :
:2012/11/21(水) 16:02:02.13 ID:DyUxIM8d0
a[i] = ++i;ってコンパイラ次第じゃね?

a[0] = ++i;ならa[0] = 1確定だけど


215 :
:2012/11/21(水) 16:25:12.04 ID:xEzNsBz30
プログラムのプの字も知らないんだからこんな風に全部日本語でやってくれよ
あってるかは知らん

問題です

箱iがあります
箱aが2つあります(箱aは区別をつける為に番号0~1を振ってます)

箱aにはそれぞれ数字5を入れます
箱iには数字0を入れます

箱iの数字と同じ番号の箱aへ箱iの数字+1入れます

このとき箱aの0番と1番それぞれには何の数字が入ってますか?


219 :
:2012/11/21(水) 16:30:43.23 ID:GdpbErHy0
めんどくせーな。こういうのがあるからプログラミング言語嫌いなんだよ。

220 :
:2012/11/21(水) 16:33:10.92 ID:5qS5oY9K0
前置インクリメントの振る舞いとか知らないと無理
ってかインデックスの変数をその配列にぶち込んで使うとか気持ち悪っ!


224 :
:2012/11/21(水) 16:57:43.50 ID:EHMiwlAFP
こんなプログラム作る新人がいたら
ぶっ殺してやる


233 :
:2012/11/21(水) 17:13:46.01 ID:L9aYk0ZB0
++i
これはまず禁止だな
2行を嫌う理由もないし

i++
これでも場合によってはダメ
配列の添字に使うとかな


234 :
:2012/11/21(水) 17:16:26.61 ID:EHMiwlAFP
これ、処理系とかコンパイラによって変わるだろ
って意見あるけど、本当に変わるかな?

Cみたいな書き方だと迷っちまいそうだけど
アセンブラレベルで考えると、
ストアされる前にストア先を呼ぶのは何の意味もないことなので、
どの処理系も先にa[i]を評価することってなさそうな気がするんだが。


239 :
:2012/11/21(水) 17:24:02.53 ID:YQ9SysxL0
>>234
それは、コンパイラによる
お前がありえないと思ってるコンパイラでもCの規格に完全に準拠できる
それが未定義


251 :
:2012/11/21(水) 17:48:52.45 ID:o605ApBp0
>>234
これはインクリメントだけど
もし右辺で関数(サブルーチン)呼べば
レジスタが上書きされるから
もしその時のレジスタの値でリスト先を評価できるのなら
サブルーチンの後でメモリ読んで評価するより最適化できる


237 :
:2012/11/21(水) 17:20:05.47 ID:8H1J9jii0
コボルの学校いったから1のは全然わからん

240 :
:2012/11/21(水) 17:25:09.18 ID:Opxw8ShWi
コンパイラ依存でしょ
gccとclで逆になるはず


242 :
:2012/11/21(水) 17:31:27.22 ID:NFwPGkZ10
プログラマじゃない奴にはさっぱり分からんが
プログラマなら解らないと素質以前の問題だろ


244 :
:2012/11/21(水) 17:32:57.76 ID:MBbtPZQO0
こうゆう変数をiから使い始めるルールってなんなの?

248 :
:2012/11/21(水) 17:40:37.01 ID:inYpF82h0
++iとi++の違いを理解してるかどうかってこと?

252 :
:2012/11/21(水) 17:49:30.75 ID:rFJ57N51P
基本情報とかのプログラム問題ははわざとかしらんがこんな糞コードだな。

259 :
:2012/11/21(水) 17:59:19.40 ID:ypvY5hMj0
むしろC++だと実行速度云々で++iしか使わないな

262 :
:2012/11/21(水) 18:10:51.05 ID:ryzTz0wHP
変数iにするとfor文に見える不思議

265 :
:2012/11/21(水) 18:18:47.62 ID:5FnWLwCI0
a[0] = 5
a[1] = 1

やっと納得した
つーか誰得だよこれ?


272 :
:2012/11/21(水) 18:53:36.76 ID:+KrQhtVy0
専門卒でこういう書き方好きなやついるよ
演算子を駆使してるけどバグの原因になってたりする
自分すら把握し切れないなら分けろと


273 :
:2012/11/21(水) 18:55:33.87 ID:bQiDc/q+0
それは妻が悪いな。曖昧な文脈の上で全能感醸している奴は一度冷徹に批判されるべきだ。
社会の可視化で大切な点のひとつが、そこにあるわけだよ。


279 :
:2012/11/21(水) 19:19:45.16 ID:wB4u9SnZ0
これは言語によるだろ
こういうプログラム書くやつはくそ


284 :
:2012/11/21(水) 23:00:11.82 ID:WoUN2dEL0
どうでも良いけど、これ配列使う意味ないよね。

つーか、分かりやすいコード書くのもテクニックの内だから、
こんなクソコード書く奴にコーディングさせるくらいなら自分で
やるレベル。


289 :
:2012/11/22(木) 00:51:27.02 ID:HvblVN+p0
消えたビットがどこへ逝くのかは計算機の黎明期から議論されてきた
ビットの天国へ逝くのだとされる事が多いが
こことは別の宇宙に送られて新たな銀河や星を形作るのだとか様々な説がある


291 :
:2012/11/22(木) 00:53:30.93 ID:HvblVN+p0
コンピューターが計算するとき発熱を避けられないのは
この消えたビットの怨念によるのだという理論は
多くの計算機学者に受け入れられている


296 :
:2012/11/22(木) 01:09:42.46 ID:jZqHxlt90
そのコンパイラー実装に使われたコンパイラーコンパイラーがLLかLRかで答えは逆になる。
LRならa[1]=1、LLならa[0]=1


関連記事

コメント

2014/06/02 (月) 03:25:06 ID:-
これはなんかの資格試験問題だろ
なんで資格問題ってこんな意味不明なコードばっかりなんだろうな
名無しさん2014/12/29 (月) 23:03:05 ID:-
にわか初心者ほどC言語に手を出しちゃう傾向がある
※自動フィルタが有効なので、禁止ワードが入ってるコメントは投稿できません…
※その禁止ワードは何か?管理人にもわかりません。FC2に聞いてください。
お名前
テキスト

トラックバック

トラックバックURL: https://newskenm.blog.2nt.com/tb.php/1790-be1162b3