1 名前:デフォルトの名無しさん mailto:sage [2018/02/19(月) 22:13:58.98 ID:9/te2eSJ0.net] C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 C言語なら俺に聞け 144 https://mevius.5ch.net/test/read.cgi/tech/1514025223/ 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
652 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 10:04:40.74 ID:/RdC4ccn0.net] 間抜けな回答してるな>オレ || || ∧||∧ ( / ⌒ヽ | | | ∪ / ノ | || ∪∪ -━━-
653 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 10:37:30.96 ID:UpIjn8oG0.net] >629 >なんで日本人は「ん」を飛ばすかねえ 「全て」の日本人が「ン」を飛ばすわけではありません。 「或る」日本人が「ン」を飛ばすだけです。 ところで、ロシア語の Емельяненко(エメリャネンコ) とはどういう意味ですか。手元の「ロ日辞典」をひいても でていないので
654 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:17:02.05 ID:VOv2iUaR0.net] struct a{ bool x:1; uint32_t y:31; }; しらべたらこれの大きさが8バイツでした sizeof(struct a)とやったらそうなったのでアラインメントのもんだいではありません。 どうしても4バイツにしたいです
655 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:20:50.14 ID:949beg24p.net] 型を揃えるか、ブラグマ指定する、
656 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:22:01.11 ID:6oSpwfuc0.net] もしかして変数を分解しようとしてる? Unionってしってるかー?
657 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:24:10.52 ID:949beg24p.net] 構造体宣言に __attribute__((packed)) を挟む
658 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:26:05.22 ID:6oSpwfuc0.net] C++なら、無名うにおんとかつかえて楽なんだけど、Cは一々名前がつくので面倒。
659 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:26:08.96 ID:949beg24p.net] 両方uint32_tにすりゃいいだろ。
660 名前:デフォルトの名無しさん [2018/03/27(火) 11:26:51.67 ID:VOv2iUaR0.net] struct a{ uint32_t a:1; uint32_t y:31; }; こうやったらできました ビットフィールドを勘違いしていたのが原因みたいです。
661 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:27:20.90 ID:6oSpwfuc0.net] あら、そっちか。
662 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 11:36:24.22 ID:VOv2iUaR0.net] struct a{ union{ bool a:1; struct{ uint32_t x:1; uint32_t y:31; }; }; }; つまりこうしたらよいのですね。 勉強になりました。ありがとうございます。
663 名前:デフォルトの名無しさん [2018/03/27(火) 12:00:48.00 .net] >>640 これ、bool aとuint32_t xが同じ値であることがどの環境下でも保証されてるの? 教えてエロい人
664 名前:デフォルトの名無しさん [2018/03/27(火) 12:36:27.71 ID:NeN1yqDWa.net] >>622 ビットフィールドって同じ型が並んでないとまとめてくれないのでは? なので、 bool a:1; uint32_t b:31; ではなくて uint32_t a:1; uint32_t b:31; にしたらできないか?
665 名前:デフォルトの名無しさん [2018/03/27(火) 12:39:07.90 ID:NeN1yqDWa.net] 既に答えが出て解決していた || || ∧||∧ ( / ⌒ヽ | | | ∪ / ノ | || ∪∪ -━━-
666 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 12:44:29.48 ID:i2YWXGc+0.net] >>631 姓だよ、とある有名人の 国内ではエメリヤエンコということになっている
667 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 13:11:29.05 ID:VOv2iUaR0.net] https://ideone.com/GfSSSt 上のコードみてください。 なぜか上の構造体を使って初期化すると値がただしくなりません。 なぜですか?
668 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 13:53:29.94 ID:KACb5w790.net] >>645 どこが正しくないのか説明してもらわないとたぶん
669 名前:誰も分からない [] [ここ壊れてます]
670 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 15:15:12.36 ID:VOv2iUaR0.net] https://ideone.com/WeAoO6 なにものかにコードが書き換えられたみたいです 正しくは上のコードを見てください。
671 名前:片山博文MZ mailto:sage [2018/03/27(火) 15:32:49.24 ID:eCLpRZm+d.net] unionにビットフィールドは使えないっしょ。
672 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 15:42:37.68 ID:jWaORT7c0.net] >>647 struct a a={.y=1, .a=true}; ここを struct a a={.a=true, .y=1,}; こう書き換えると動作が変わる。 何故変わるか考えてみよう。
673 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 15:45:46.56 ID:jMKP3TFv0.net] struct になってない単変数でのビットフィールドって 結局支持された型の空間をめいっぱい使って書いてるんでないの
674 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 16:45:45.41 ID:VOv2iUaR0.net] >>648 直しました >>649 考えてもわかりませんでした
675 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 17:22:21.42 ID:tnecWY6M0.net] >>637-638 >>642 ビットフィールドの詰め込み方だけど、 「同じ型の並びならまとめる、異なる型同士はまとめない」、 「型に関係なくまとめる」、(他にもパターンあるかも…)、 どれになるかは環境依存だからアテにしてると移植性の問題にハマるよ。 ビットフィールドは内部的な配置を気にしない場合だけ使うのが鉄則。 >>622 の流れからすると、ビットフィールドを含む構造体は sizeof が返すバイト数も気にしちゃいけないね。
676 名前:デフォルトの名無しさん [2018/03/27(火) 17:46:09.15 .net] >>647 unionの中にもう一つstruct uint32_t b0:1; 〜 uint32_t b31:1; を入れてみて、b0〜b31をオール0、その次はオール1にして aやyに代入するたびにb0〜b31がどう変化するかを確かめればいいと思うよ。
677 名前:デフォルトの名無しさん mailto:sage [2018/03/27(火) 18:48:56.23 ID:lphBpvplM.net] gotoは要らない子?
678 名前:デフォルトの名無しさん [2018/03/27(火) 19:18:17.87 ID:NeN1yqDWa.net] >>652 コンパイラによっては型に関係なく並べるのもあるのか。知らなかった。
679 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 09:16:12.84 ID:UsIzsSLh0.net] unionで共用関係作っても、詰め込み順が統一されてる保証は無いからなぁ。 んなトリッキーな処理は、移植ん時死ねるぞ。
680 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 09:21:05.87 ID:hD+ZgK6z0.net] ビットフィールドの順番がコンパイラによって違うのには参った
681 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 09:27:44.69 ID:txGSPNwpa.net] >>657 エンディアンの違いで逆順になるのは昔からあるな。 コンパイルオプションでなんとかなるといいんだけどな。
682 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 15:08:36.90 ID:NO5LUaew0.net] いやあ、そんなドジ踏んだことないし 踏んだやつも見かけないなあ unionなんか使うときはそういう危険性には 真っ向から対峙しているのでうっかり考え落とす なんてことは起こりえない ポインタをキャストするときのほうが危ないぞ unionよりも遙かに使用頻度が高くて油断しがち
683 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 16:15:36.83 ID:zOM5QtYn0.net] >>659 たしかに
684 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 20:45:19.82 ID:inZxrYqzp.net] 普段からアライメント気にしない石使ってると死ぬるw
685 名前:デフォルトの名無しさん [2018/03/29(木) 00:01:16.65 ID:ySkkjEPJa.net] 野積み
686 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/29(木) 00:09:03.12 ID:X8gSQriyM.net] SIG11
687 名前:デフォルトの名無しさん [2018/03/29(木) 00:30:03.68 ID:HYrXjV+u0.net] >>654 出来の悪い子ほど可愛いものさ
688 名前:デフォルトの名無しさん mailto:sage [2018/03/29(木) 02:58:45.40 ID:Ng8O1HeK0.net] GOTOはその場所より基本上流に流しちゃいけない。
689 名前:サれだけ守ってればいいと思う。 [] [ここ壊れてます]
690 名前:デフォルトの名無しさん [2018/03/29(木) 03:06:08.42 .net] if文とかfor文の中に飛ばすのもダメだろ 関数末尾以外に飛ばすのは基本アカンと思う
691 名前:デフォルトの名無しさん [2018/03/29(木) 07:24:44.79 ID:+dX3Weor0.net] gotoとswitchの組み合わせはよくやる。
692 名前:デフォルトの名無しさん [2018/03/29(木) 22:57:50.45 ID:HYrXjV+u0.net] >>667 switch と goto と聞いて、はっもしやこんなこともできるのでは、と思ってやってみたら、できてしまったよ。どうしよう。 #include <stdio.h> int main() { int i; for (i = 0; i < 10; i++) { if (i == 5) goto hoge; switch (i) { case 1: puts("いち"); break; hoge: puts("ご"); break; } } return 0; }
693 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 13:01:35.10 ID:fkO+Wt7Ma.net] 情報処理用にC頑張り始めたンスけど、初心者本は2冊くらい終えて、簡単なプログラムならあるていど作れるようにもなったんスけど、FEの過去問には全く歯がたたないっすw
694 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 13:03:50.38 ID:fkO+Wt7Ma.net] 初見の歯抜けプログラムみて選択肢与えられてもなんだかさっぱり読み切れん… 中級本の内容の方がまだ簡単なんスけどニキこれなんなんすか
695 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 13:04:58.91 ID:n1WKWzHR0.net] Duff's deviceっていうスイッチの中にループがあるのもある
696 名前:デフォルトの名無しさん [2018/03/30(金) 16:19:34.10 ID:zQBQo8b30.net] >>668 おめ はげめ
697 名前:デフォルトの名無しさん [2018/03/30(金) 16:22:11.93 ID:bDuRGN0f0.net] >>668 goto default;
698 名前:デフォルトの名無しさん [2018/03/30(金) 16:55:37.88 ID:InC0asnz0.net] あれにはそういう名前があったのか。ありがとう。
699 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 17:55:35.60 ID:6y8tfNRe0.net] 同じく 名前は知らんかった
700 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 19:36:36.57 ID:FHOFausT0.net] 値の入れ替え処理ってどう描けばいいんや
701 名前:片山博文MZ mailto:sage [2018/03/30(金) 19:38:47.12 ID:9udtptfNd.net] >>676 int tmp = a; a = b; b = tmp; もしくは std::swap(a, b);
702 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/30(金) 19:42:57.58 ID:TqB3XhjJM.net] a = a ^ b; b = a ^ b; a = a ^ b;
703 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 19:46:21.82 ID:FHOFausT0.net] >>677 mainから分離させると void Swap() { std::swap(a,b); } こうなるってこと??
704 名前:片山博文MZ mailto:sage [2018/03/30(金) 19:47:24.27 ID:9udtptfNd.net] a ^= b; b ^= a; a ^= b;
705 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 19:49:14.07 ID:sxHgkaP90.net] >>678 b の実体が a だと a = 0 になってしまう、とは頻繁に指摘されるところ
706 名前:片山博文MZ mailto:sage [2018/03/30(金) 19:49:30.92 ID:9udtptfNd.net] void myswap(int *pa, int *pb) { int tmp = *pa; *pa = *pb; *pb = tmp; }
707 名前:デフォルトの名無しさん [2018/03/30(金) 20:19:58.73 ID:x2Z4e+RCa.net] >>677 それC++だよね。
708 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 20:29:07.56 ID:zSEpPQDd0.net] ワザとだと思います
709 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 20:32:46.73 ID:3ziE5qsO0.net] 値の入れ替えってどういう局面で使うの?
710 名前:片山博文MZ mailto:sage [2018/03/30(金) 20:35:46.51 ID:9udtptfNd.net] >>685 ソートとか、順番を変えるときとか、データの入れ替えなど。
711 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 20:37:07.43 ID:N/erQ4tDM.net] ソート 他では見かけない
712 名前:片山博文MZ mailto:sage [2018/03/30(金) 20:42:10.63 ID:9udtptfNd.net] 音楽のシャッフルなんかもswap使っている。
713 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 20:49:54.40 ID:3ziE5qsO0.net] ああ、int aとかじゃなくて配列要素に使うのね 納得ありがとう
714 名前:片山博文MZ mailto:sage [2018/03/30(金) 20:53:18.14 ID:9udtptfNd.net] 配列要素やポインタにも使える。この入れ替えアルゴリズムを抽象化するとC++のstd::swapになる。
715 名前:デフォルトの名無しさん mailto:sage [2018/03/30(金) 23:15:31.22 ID:sWH8jgUv0.net] goto LABEL0; { int i = 1; /* 初期化 */ int j; j = 1; /* 代入 */ LABEL0: printf("%d %d\n", i, j); }
716 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 01:54:40.82 ID:OnKsCXxga.net] Mapみたいな連想配列使いたいんだが何使えばええんや
717 名前:デフォルトの名無しさん [2018/03/31(土) 03:57:34.23 ID:2Z4gCLvWa.net] switchのラベルって違うswitch(){}の中なら重複してても使えるやん? それで goto HOGE; したらどっちに飛ぶ?
718 名前:デフォルトの名無しさん [2018/03/31(土) 03:58:50.47 ID:2Z4gCLvWa.net] >>681 ならねーよΩ
719 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 07:10:32.62 ID:1xZcLHDp0.net] >>694 >>678 のアルゴリズムには重大な欠陥がある、という点は頻繁に指摘されることですよ、知らないの? https://ideone.com/uYFQRK
720 名前:デフォルトの名無しさん [2018/03/31(土) 07:17:07.25 .net] if (a != b) { a = a ^ b; b = a ^ b; a = a ^ b; }
721 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 07:19:42.34 ID:1xZcLHDp0.net] >>696 それは対策になっていない
722 名前:デフォルトの名無しさん [2018/03/31(土) 08:13:17.33 .net] >>697 なんで?
723 名前:デフォルトの名無しさん mailto:sage釣 [2018/03/31(土) 08:15:52.05 ID:NJrC8qbaM.net] >>695 ポインタ使って無いアルゴリズムをポインタ付きに移植して 欠陥とはこれ如何に。 只の移植失敗だろ。池沼か
724 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 08:22:07.33 ID:1xZcLHDp0.net] >>699 xor スワップがどこまで有効か、どうなると不適になるかをはっきりさせておかないと、嵌る、>>678 にはその指摘がない C なんだからポインタの話は不可欠だ、それを指摘したのが >>681
725 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 08:47:25.82 ID:EbDGZ0yc0.net] wikiより void xorSwap(int *x, int *y) { if (x != y) { *x ^= *y; *y ^= *x; *x ^= *y; } }
726 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 08:59:46.96 ID:15qJIIAA0.net] bの実体がaなんてことが参照のないCで起こりうるのか? #define b aなんてアホなことぬかすなよ
727 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 09:06:42.53 ID:8va89mAu0.net] ヒューマンエラーは果てしないのじゃー。
728 名前:マクロでーとか言いそう w mailto:sage [2018/03/31(土) 09:12:11.67 ID:OaeapR1O0.net] >>700 ごたくはいいから a ^= b; b ^= a; a ^= b; のコードでaとbの実体が同じになる例をあげろよ もちろんC言語の範疇でな
729 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 09:13:01.96 ID:1xZcLHDp0.net] >>702 その #define マクロでうっかり、xor スワップを書いてしまう、とかは、可能性としてあり得りますね あと、C++ テンプレートで書いてしまったり、とかね https://ideone.com/NEeCNr
730 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 09:13:25.89 ID:1xZcLHDp0.net] >>704 >>705
731 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 09:57:17.92 ID:V7rzy3dc0.net] マクロで xor の入れ替えを書く 配列の操作で同じ要素の入れ替えも、都合上そのまま交換する方向で記述する (配列を逆順に入れ替える時、要素数が奇数だと発生
732 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:03:16.74 ID:OaeapR1O0.net] >>705 > あと、C++ テンプレートで書いてしまったり、とかね スレタイ100回音読してこい
733 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:08:47.90 ID:1xZcLHDp0.net] >>708 今どんな気持ち?どんな気持ち?AA略
734 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:17:56.15 ID:EbDGZ0yc0.net] マウント合戦うぜぇ。
735 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:24:01.94 ID:1xZcLHDp0.net] >>710 まあ、こういうのでは考えが足りずに負けることもあるし >>709 は権利ですよ マウント合戦、勝てば飯がうまいですなあ
736 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:29:40.14 ID:OaeapR1O0.net] 名前欄ぐらい見とけよ w
737 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:32:21.69 ID:15qJIIAA0.net] >>709 そのまま返す
738 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:34:30.68 ID:NJrC8qbaM.net] 678のメール欄もなw
739 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:40:28.44 ID:OaeapR1O0.net] >>714 いや、さすがあれはメアド欄なんて見なくてもネタってわかるだろ w
740 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:43:37.64 ID:15qJIIAA0.net] >>705 templateにする必要ないのに無理しちゃって void aho(int& a, int& b) { if(&a == &b) throw sys
741 名前:tem_error{error_code{1xZcLHDp0_category(), 709}, R"( ハァ・・・ ハァ・・・ ハァ・・・ : ∧ ∧ : : / ヽ / ヽ : : / >__/∴ ヽ : : / ;;# ,∴∵; ヽ ∴\ : : / -==、 ' 、==-∴∵丶 : き、きょうはこれくらいで勘弁してやるニダ… : / "" _┃_ "" * ∵∴\ : : \ #;∴ l/ニニ| ∵ / ∴∵/ : : ヽ∵//;;.;`ー‐' # ∴#∵ノ : >;;;: _ _ ;, _ ;_< : / # ;∴ ∴ # \ : )"}; } [] [ここ壊れてます]
742 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 10:44:13.72 ID:1xZcLHDp0.net] >>678 メール欄 あれ、まあ?!‥‥‥自分<今どんな気持ち?どんな気持ち? まあ鎬を削るのであれば、こっちが楽しいのではありまする https://mevius.5ch.net/test/read.cgi/tech/1514772904/
743 名前:デフォルトの名無しさん [2018/03/31(土) 11:07:01.32 ID:c97ae/y4F.net] >>695 それ xor を使ってることによる欠陥じゃなくて 同じポインタを渡してることが欠陥だろ
744 名前:デフォルトの名無しさん [2018/03/31(土) 16:34:53.19 ID:4s7VNOk80.net] >>695 18行目がこうなっているわけだが myswap(&a, &a); これでは参考にならんよな。 a, b を同じ値にしてから &a, &b で呼び出さないと。 まあでも myswap() 側で調べて同じなら何もしないように作っとけばいいだけではあるが。
745 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 17:23:06.22 ID:EbDGZ0yc0.net] つまりswap関数に必ず同じ変数orポインタアドレスを渡さないよう確認する人と 渡しても大丈夫な仕様にする人とが同じチームに居るとこうなると。
746 名前:デフォルトの名無しさん [2018/03/31(土) 17:38:31.63 ID:c97ae/y4F.net] 速度の問題あるから関数側でいちいち判定コード書くのは避けたいところ
747 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 17:53:31.86 ID:OaeapR1O0.net] そのネタいつまで続けるの?
748 名前:デフォルトの名無しさん [2018/03/31(土) 18:24:11.53 ID:wolthb3Z0.net] ちょっと聞きたいんだけど char c = '5'; c -= '0'; int a = c*16; こうゆうやり方ありなの?
749 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 18:27:06.54 ID:gYRRCVdX0.net] ある
750 名前:デフォルトの名無しさん [2018/03/31(土) 18:27:10.52 ID:c97ae/y4F.net] ありじゃね unsigned char じゃいかんとか unsigned char の方がいいとか どうせ int になるんだしとか ebcdic は?とか ↓
751 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 18:49:12.37 ID:1xZcLHDp0.net] >>718 xor スワップは、xor: ^ が a^(a^b) == b b^(a^b) == a で、つまるところ、a, b, a^b の三種類の値のうち一種類が欠けても、残りの二つから欠けた一つを再生できる(RAID5と同じ)ところに着目しているわけで、 xor や同様に exclusive-nor だからできること ちゃんと二種類の値をずっとキープできておればスワップは成功するが、 そうでない場合は失敗する 上記のことを考えると@ xor/xnor であることと、A現れるオブジェクトが別であることを保証することの両方が必要だと思うよ >>719 まあ値が等しいときは@オブジェクトが同じ可能性があるAそもそもスワップする必要がない から値が同じかどうかのチェックをかませば OK ではあるね、それは同意するよ
752 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:38:17.63 ID:xg3JkNB30.net] これなら安全じゃろ。 void xorSwap(int * restrict x, int * restrict y) { *x ^= *y; *y ^= *x; *x ^= *y; } 無責任極まりないやり口だけどな。
753 名前:727 mailto:sage [2018/03/31(土) 20:42:41.15 ID:xg3JkNB30.net] 改行乱れちゃった、てへ。 Cはフリーフォーマットだから…。
754 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:45:
] [ここ壊れてます]
755 名前:59.73 ID:p4zumO6q0.net mailto: 小さな処理なんだからマクロ化かインライン展開させようよ。 [] [ここ壊れてます]
756 名前:デフォルトの名無しさん [2018/03/31(土) 20:48:52.36 ID:D1vbg0pQ0.net] 自己解決しました。 std::swapでいけました。
757 名前:デフォルトの名無しさん [2018/03/31(土) 22:01:45.45 ID:qrmwmyS1a.net] C++だったのか
758 名前:デフォルトの名無しさん [2018/03/31(土) 23:33:07.89 .net] CもC++も似たようなもんじゃろ 平気平気
759 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 07:51:13.57 ID:lL1ejtJI0.net] >>727 安全じゃない restrictはコンパイラに対してx != yを前提とする最適化を許可するだけで constのように違反を摘発する機能はない int *a, *b; scanf("%p%p", &a, &b); //実行してみなきゃわからんものを xorSwap(a, b); //翻訳時に摘発できるわけねえだろ
760 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 08:04:57.85 ID:WPbk7cUz0.net] 「そういう仕様だから呼ぶ側は正しく使えよ」ってことだろ
761 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 09:55:10.10 ID:9jhZxGTr0.net] 「トラブルの原因になるものは絶対に使ってはいけない団 登場!! scanfソード!!GOTO砲発射!!!」
762 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 09:59:07.54 ID:gIH0xNQX0.net] ネタにまじれ...
763 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 10:19:28.40 ID:vuzriXcqd.net] >>733 これほんとくそ せめてFortran のfcheckみたいな実行時診断機能をコンパイラにつければ良いのに
764 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 10:26:27.50 ID:lL1ejtJI0.net] hell fuck no!! 絶対いらん
765 名前:デフォルトの名無しさん [2018/04/01(日) 10:28:45.90 ID:GlQ4MmqmF.net] >>735 C使うなって話になるわな
766 名前:デフォルトの名無しさん [2018/04/01(日) 10:52:33.52 .net] >>737 つ assert
767 名前:デフォルトの名無しさん [2018/04/01(日) 14:22:10.86 ID:QnlJ7EAH0.net] 指導者は、ある程度育った選手に対して解決策を提示しない。 選手が自ら考えるように導く。 考える力に重点を置く。 選手が考えた解決策に、(少しでも)可能性がある場合、次のように対応する。 1.状況を整理する 2.挑戦してもらう 指導者の解決策を、押しつける・誘導するのは愚の骨頂。 選手の思考力の成長を阻害する。 言葉の上だけ、コーチング技法を使用する指導者は不要。 意識・無意識にかかわらず、非言語で指導者自身の方向に誘導するようであれば、指導者は迷惑な存在。 選手は指導者の気持ちを敏感に読み取り、指導者の思う解決策に乗っていく。 指導者が無自覚に自分の気持ち・感情を表出しているのであれば、指導者は害毒でしかない。 (但し、指導者としての方向を持っていなければダメ。)
768 名前:デフォルトの名無しさん [2018/04/01(日) 14:30:49.47 ID:QnlJ7EAH0.net] *“オレは知っている。選手は判っていない。”と思い込んでいる。 →「私が中心」(選手は不在) →選手の変化が見えない。 *“あれもこれも伝えたい”と思っている。 →指導者の自己の存在証明をしたいだけ。 →選手の依存過多を喜んでいる。 →指導者の中身の無さを補償している。 →自分の目標と選手の目標がズレていることに気がつかない。 →成長のゴール設定が不明確。あるいは勝つことだけに目標を設定している。 (勝負までに何をやりきったらよいのか/何を発揮したら勝利か/勝った後どうするか、指導者ならば明確にもっておきたい。) →優先順序が整理できていない。 →現状の把握すらできなくなっている。 *“言わないと相手のためにならない。”と信じている。 →根本的に選手を信頼していない。 →“指導”という名の自己
769 名前:梠ォ。 *“今、言わないといけない。”という焦り →指導計画の無さが露呈しただけ。 →日頃の怠慢のツケ。 (直ちに言わないければいけないことはあるが、そう頻発しない。) *“自分の経験なら、具体的に伝えることができる”という自分の過去へのこだわり →指導者自身の学習がストップしている。 →偏狭さの表出 →選手より、常に自分が上。 →自分のコピー以外のモデルがない。 →指導者自身の目標が低い。(悪い意味で、すぐに満足する。) →自分の小ささに築かない哀れさ 解決策を提示する悪癖からの脱却は、選手を信頼することがキー。選手を信頼できるかどうかは、選手の問題ではなく、指導者自身の課題。 [] [ここ壊れてます]
770 名前:デフォルトの名無しさん [2018/04/01(日) 14:31:46.69 ID:QnlJ7EAH0.net] 選手がある程度育っているにもかかわらず、解決策ばかりを提示してしまうとしたら…… 指導者のサービス精神が、少々裏目に出ただけ。 やり方を、知らなかっただけ。 視線が、近い所に留まり過ぎただけ。 選手の考えと主体性に賭ければ良い。 「質問するだけ」「聞くだけ」で十分。他愛ない会話で済むかもしれない。 指導者としてのやり方を、ちょっと広げるだけ。 選手と一緒に成長すればよい。
771 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 15:09:50.39 ID:EJgAiXSoa.net] 長い3行で
772 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 20:22:49.32 ID:FPe02iov0.net] c疲れる高級言語が良いよぉ
773 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 22:01:04.55 ID:Xs8rW8os0.net] 破門
774 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 22:02:31.16 ID:kjSWJmola.net] C++よりは65536倍マシ
775 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 02:42:44.32 ID:335Cb1sP0.net] C++の方が全然マシ。 C++で要求されるのは記憶力だが、Cはマジで実力が試される。
776 名前:デフォルトの名無しさん [2018/04/02(月) 04:26:42.33 ID:3ewhMOuha.net] >>747 ほんそれ >>748 C++はごちゃごちゃしすぎ Objective-Cの方が良い
777 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 09:23:05.49 ID:tz45bHyl0.net] そんな君達に、C#
778 名前:デフォルトの名無しさん [2018/04/02(月) 11:32:18.94 ID:IY8Jb2oda.net] C#は何かとっても嫌な予感がするのでパス
779 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 11:37:34.04 ID:GUMdRf0S0.net] 組込みならverilog
780 名前:デフォルトの名無しさん [2018/04/02(月) 14:47:00.17 ID:r6uHUG7/0.net] C#はないわ
781 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 15:09:03.97 ID:+y0jgVYha.net] C, C# はアリ C++みたいな汚い言語はナシ
782 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 15:11:32.65 ID:hvd81u+Da.net] Cライクな言語なら何でもこいだわ (知らないのは新たに勉強せざるを得ないが) 1人で書くのは大抵C++
783 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 16:32:47.98 ID:gGbBmtO80.net] C、C#、Goが好き
784 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:06:51.28 ID:E1iWIfmB0.net] C++17かなり良くなってきたね C++98での苦行が嘘のよう
785 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:07:57.92 ID:NgLCsptVp.net] c++はテンプレート辺りから怪しくなって来た。
786 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:35:10.19 ID:Hj+Kq4pv0.net] オールアセンブラで組んでた人が楽になるための言語。
787 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:46:48.43 ID:E1iWIfmB0.net] STLを初めて見た頃は違和感ありありだったけど それはテンプレートを使うからでも、見た目が悪いからでもなく、中途半端だったから C++11から以後、そのへんの補完工事が始まったのがありがたい
788 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 17:52:55.07 ID:NgLCsptVp.net] 結局テンプレートって、型をオブジェクト型に統一してしまえばいいだけで、あんまり意味無いよな。
789 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 18:00:26.75 ID:E1iWIfmB0.net] Smalltalk風の継承モデルねえ 正直、俺も昔は盲信したことがあって今は恥じている テンプレートならコンパイラがやってくれることを 自前でdynami
790 名前:c_castなんかやだよ nested_exceptionとかは仕方ないけどね [] [ここ壊れてます]
791 名前:デフォルトの名無しさん [2018/04/02(月) 19:47:22.47 ID:yiGPtloFa.net] >>761 Javaなんかは内部でそうやって実現してるな。
792 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 20:33:40.82 ID:EffuLSkeM.net] よそでやれ
793 名前:デフォルトの名無しさん [2018/04/02(月) 22:15:26.67 .net] >>761 そこはVariant型やろ
794 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 22:26:42.69 ID:pVqQLih90.net] printfの出力をマルチスレッドで行うことはできないのでしょうか 素人的には スレッド1 printf("abcde"); スレッド2 printf("12345"); ↓ 出力 a1b23c4de5 となることを考えたのですが、WinAPIのCreateThreadやC++のThreadでも、CPU使用率はシングルスレッドのときと変わらず、出力もこのようにはなりませんでした Windows VS2017
795 名前:片山博文MZ mailto:sage [2018/04/02(月) 22:29:05.76 ID:APYGmZJZd.net] >>766 排他制御されていないCRTを探す方が難しい。
796 名前:デフォルトの名無しさん [2018/04/02(月) 23:11:46.09 ID:ifLgvYYR0.net] はじめまして。 大学でプログラミング関係の授業を受けるのですが、それの復習、応用などをrpgツクールmvですることは可能でしょうか? ちょこっと調べた感じプログラミング要素もあるらしいのですが、c言語はあんまり使わないとかなんとかという記事も見られました。 どうせなら楽しく勉強したいので、ゲームを作りながら学習できないもんですかね...。
797 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:22:32.32 ID:k8TtPNR/d.net] >>768 プログラミングを授業で受けるなら、ゲーム制作はツクールMVよりUnityのがいいと思うけど授業内容は進むに連れてむしろツクールMVやUnityのようなのの中身についてになるから復習がてらにはしにくい モチベ維持にはとても良いと思います
798 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:33:36.58 ID:pVqQLih90.net] >>767 ありがとうございます
799 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:41:50.21 ID:335Cb1sP0.net] バリアント型は何ビットなん?って話になるのがC++。
800 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 04:15:40.51 ID:j/8PevsK0.net] >>766 目的はどっち?? 文字単位で混ぜたい? 高速化したい?
801 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 08:36:15.92 ID:cWIVDHVHa.net] O_DSYNCって使ったことある?
802 名前:デフォルトの名無しさん [2018/04/03(火) 09:03:18.53 ID:Lqpq4yV4a.net] ない
803 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 17:34:38.59 ID:IRh8xu7sd.net] ないな
804 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 20:54:03.05 ID:TORpZXhc0.net] ないっす JFS用?
805 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 00:52:55.41 ID:Ssb/YhXn0.net] 同期I/Oだそうだ https://linuxjm.osdn.jp/html/LDP_man-pages/man2/open.2.html
806 名前:デフォルトの名無しさん [2018/04/04(水) 02:32:43.57 ID:h2UR4/YMa.net] でっていう
807 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 11:23:02.06 ID:yTnGZmgQp.net] 同期ってのは、処理が終わるまで帰って来ないって話だ。 下手すっと何秒も帰って来ないから、そこら中が固まる。
808 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 15:35:44.60 ID:kI4IT8Vg0.net] 同期というより直列だね
809 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 21:14:25.41 ID:rBWooG9b0.net] 動悸I/O
810 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 21:17:17.94 ID:iV3ol7kd0.net] 同期/非同期 ブロッキング/ノンブロッキング
811 名前:デフォルトの名無しさん [2018/04/04(水) 22:06:43.40 .net] 同期の絆
812 名前:デフォルトの名無しさん mailto:sage [2018/04/04(水) 22:10:42.29 ID:tDZB1fULM.net] 貴様と俺とは同期のファイル
813 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 08:17:37.54 ID:zuAyx/JN0.net] 数値計算手法の一つである陰解法って陽解法とどう違うんだろう?まったく理解が進まん 陰解法での次ステップの状態を計算するには陽解法と違って次ステップでの値が含まれてる関係で行列の方程式?を解かなければならないらしいけど、その方程式で導く値がどう答えに結びついていくのかがわからない (最終的にはC言語のプログラムに落とし込みたい。陽解法のプログラムはもう作ってあるんで多少なりとも流用できると楽なんだけどそう簡単にはいかんよね?)
814 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 12:42:25.18 ID:O2KVno4c0.net] 平たく言うと 100秒後の状態を得るのに途中の一つずつを100個全部求めなきゃいけないのが陽解法 10秒ごとの計算を10回、でいいのが陰解法 陰解法はかんたんに未来を得られる分、行列計算が面倒になる
815 名前:デフォルトの名無しさん [2018/04/05(木) 23:51:02.65 ID:Un4TbCjZ0.net] これなんですけど、printfのとこの"%2c"で、 " %2c" " %2c " など空白を入れることで配列が変わってくるのですが、前に空白と後ろに空白のときの規則性がわかりません。教えて欲しいです。 https://i.imgur.com/QI86not.jpg
816 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 00:10:45.42 ID:alNyslUNM.net] もっと具体的に
817 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 05:54:14.00 ID:dKA/BnpB0.net] >>787 質問にある“配列”てのは、画面に出力される結果のことかな? 表示される文字やその順番は同じだけど、文字の間の空白の数が違う、と。 プログラミング界隈では“配列”って言葉は特定の意味を持った専門用語だし、 問題のプログラムはその意味での配列を使ってないから軽く混乱を招くかと。
818 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 07:48:11.30 ID:mjL64jtF0.net] 配置とかか?自分の試した結果で理解しろよ
819 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 13:51:14.96 ID:Bd1xKzd/0.net] 表示系の2バイト文字の扱い云々な気がする。
820 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 15:06:53.28 ID:bMqQKRLP0.net] >>787 %2c の部分は右詰めで幅2文字の指定になるが c なので常に1文字の指定になり 引数の int 型数値は unsigned char に変換されて出力される。つまり %2c の部分 だけでスペース1文字と引数で与えた1文字が出力される。(もちろん端末によっては 引数の値によって1文字の扱いにならないかも知れないが、その辺は説明が長く なるので省略)。 後はその前後にスペースを付け加えて出すかだけの問題。そのプログラムには 改行がないので全て繋がって出力される。(1回も改行を出力しないままプログラムが 終わるので実行環境によっては出力の後に続けてシェルのプロンプトが出るかも 知れない)。
821 名前:デフォルトの名無しさん [2018/04/07(土) 15:19:36.81 ID:vVe4gpjb0.net] 判りにくい日本語だな 判るものもかえって判らなくなるくらいひどい
822 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 16:08:23.10 ID:bMqQKRLP0.net] じゃあ分かり易く書き換えてくれ。
823 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 19:07:44.77 ID:jn0jIz6fd.net] まず、%2cは必ず「ブランク*」(*は任意の1文字)になる。 その上で整形用のブランクはprintfを分けて、 ブランク以外の文字とかで試してみろ。
824 名前:デフォルトの名無しさん mailto:sage [2018/04/07(土) 21:25:17.61 ID:I35+hkP6a.net] >>745 アセンブラからきたわいCの楽さに歓喜
825 名前:デフォルトの名無しさん [2018/04/07(土) 21:49:40.43 .net] Visual BasicとかPerlとかから入った自分としては、 Cのほうが簡単に書ける場面もあれば VBSやVBAがいい場面もあればPerlがいい場面もあって 要はどの言語でも楽しく書ければそれでええやん
826 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 06:56:45.64 ID:oETTfDn00.net] ワイはbash + sed + cの三点セットや
827 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 19:49:06.28 ID:bmGQy2qQ
] [ここ壊れてます]
828 名前:0.net mailto: >>787 こんなの試してみたら分かったりしない?(\nは改行) printf("%c\n",'a'); printf("%1c\n",'a'); printf("%2c\n",'a'); printf("%3c\n",'a'); printf("%4c\n",'a'); printf("%5c\n",'a'); [] [ここ壊れてます]
829 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 20:21:36.79 ID:qxDYyi6TH.net] 一切出てこない質問者の相手はいらんだろ
830 名前:デフォルトの名無しさん [2018/04/15(日) 15:16:14.29 ID:iG9vZW44M.net] 上の写真を見る限りjが増えたタイミングでprintfで改行コード入れてるっぽいけどそれならiのforが終わったタイミングで改行コード入れれば動くんじゃないですか? なぜiが8までしか回さないのかわからないですが…
831 名前:デフォルトの名無しさん [2018/04/15(日) 15:38:09.01 ID:MyboI2lC0.net] しょーもない質問ですいません vs2017で勉強してるど素人なんですが コードをミスして修正しようとすると文字が上書きされて 文字を挿入できないん時があるんですが、 なぜでしょうか?
832 名前:デフォルトの名無しさん [2018/04/15(日) 15:41:00.10 .net] >>802 https://ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%AD%E3%83%BC
833 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:42:04.62 ID:CIuag2/D0.net] >>802 こっちで聞けよ Visual Studio 2017 Part5 mevius.5ch.net/test/read.cgi/tech/1520336504/
834 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:50:05.64 ID:ASLFteC6a.net] 上書きモードに誤爆したろ
835 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:54:21.86 ID:0gUBaoqj0.net] >>801 すまんが、どこに改行コードがあるのか、iが8までとは何の事か、 俺にはさっぱり読み取れねぇ お前とは見えてる世界が違うようだ
836 名前:デフォルトの名無しさん [2018/04/15(日) 16:17:29.71 .net] >>806 この程度読み取れないようじゃエスパーに向いてないよ > どこに改行コードがあるのか 予想回答「int c=‘ ‘;」って改行コードですよね? iが増えるたびに改行コードをprintしたいんですよね? > iが8までとは何の事か 予想回答:すみません、jの間違いです!
837 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:20:53.00 ID:LLURRdNlM.net] 改行は'¥n' ' 'はスペース
838 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:30:24.50 ID:bKUHpU4ed.net] >>806 大丈夫 おれもさっぱりわからん
839 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:02:55.57 ID:+NxoeMlk0.net] C言語でのステートマシンの設計や、上手なコーディングについて 体系的に学べるお勧めの書籍やサイト教えて下さい。
840 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:08:40.56 ID:+NxoeMlk0.net] 連投で申し訳ないけど この辺の技術ってC++勉強した方が身に付くのかな?
841 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:10:47.07 ID:7zIgNBcs0.net] Cはライブラリが貧弱でほとんど自作しないといけない。 C++はその辺多少マシ。Boostとかあるし。
842 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:14:55.01 ID:7zIgNBcs0.net] 至極の名言教えてやるぜ。受け売りだけどな。 コードを効率的にしたり、最強の最適化だったりするそれが一番効くのは書かないことだ。 書くと何らかの負荷になる、コードもグチャグチャになる。 必要なことだけ書いて後は流れに任せるのが上達の道。
843 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:47:03.66 ID:aZbHy3F9d.net] C++って言うほどライブラリ充実してるか?
844 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 19:59:11.25 ID:+NxoeMlk0.net] うーん・・・人によって考え方が違うから正解なんてないし 2chのこのレスだけでは具体的な提示とか難しいよね 本当に必要な処理だけ書いてたら関数長くなって 見通し悪くなったりメンテし辛くなったりしない?
845 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:03:21.51 ID:IgQGrpHk0.net] >>810 ない。 >>811 関係ない。 君は本質的な「プログラミングの腕前」を上達させる為に、体系的に学べる物を探しているんだろ? ならそれは言語には全く関係ないことは分かるだろ。
846 名前: そして、そんな物は今はない。なぜならプログラミングは今もまだ発展途上だから。 そもそも歴史が浅い。プログラミングには100年ほどの歴史しかないし、 プログラミング作法が学問として成立してからは50年ほどしか経ってない。 だから現在でも試行錯誤中なんだよ。 それは今更C#/C++/Javaがラムダを採用したことからも分かるだろ。 ラムダ自体はLispの昔からあった。 そしてこれらの言語はそれを知っていて不採用としたわけだが、 今更の方向転換=間違いを認めた、ということなんだよ。 まだそれくらいあやふやなものだって事。 勿論各自が「オレオレ流スーパーハッカー道」を上梓することは出来るのだけど、 実際そういう奴はいないようだ。 とはいえ、結果的に全ての言語が似たり寄ったりになってきているから、 これは成熟してきていることを意味する。 となると、今後は体系化されていくだろうし、そういうサイトや本が現れてきてもおかしくない。 今は>>813 みたいな、一言集みたいなのしかないね。 https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/ [] [ここ壊れてます]
847 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:18:14.92 ID:CIuag2/D0.net] >>814 C に比べたら... って話だろ
848 名前: mailto:sage [2018/04/15(日) 20:22:19.20 ID:vjxfJMST0.net] >>816 C++/C#/Java のラムダ式ってラムダ式じゃないと表現できない「何か」を表現する、というよりは、シンタックスシュガーとしてのラムダ式であることが不満です
849 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:26:36.28 ID:IgQGrpHk0.net] >>818 > ラムダ式じゃないと表現できない「何か」 とは何? 俺の理解では、これは存在しない。ラムダ無しでもチューリング完全だったろ。
850 名前: mailto:sage [2018/04/15(日) 20:31:05.37 ID:vjxfJMST0.net] >>819 Y コンビネーターとか、どうですか?
851 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:33:38.79 ID:8Bp5iafSd.net] >>818 ラムダ式じゃないと表現できない何かって何さ 定義した所の環境を使った第一級オブジェクトなプロシージャではだめなのか?
852 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 20:35:56.05 ID:IgQGrpHk0.net] >>820 すまんが俺はLisp使いではないから、それについては知らない。 ただ、それが本当に役に立つものなら、C++は数年後に採用するだろうね。
853 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:29:24.63 ID:7zIgNBcs0.net] >>815 一応言っておくと関数分割も必要なら必要なこととして処理されるべき。 ちなみに関数分割したほうが限度はあるけどキャッシュに乗って早くなる。
854 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:30:02.09 ID:sXJBpbWg0.net] この板でチューリング完全て言葉をみるとは思わなかった
855 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:59:29.91 ID:L6Qt+I9Ha.net] だいたい、どう抽象化するのがええのかって話でチューリング完全は関係ないからねえ。 前提としてはそうでないとあかんかも知れんけど。
856 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 00:40:26.76 ID:qQ0bjYjD0.net] 抽象化については「オブジェクト指向」で今のところ決着してるだろ。 これを否定する見解や言語は無いと思うが。
857 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 04:32:33.72 ID:94linQhp0.net] コンビネータでも実装するか?
858 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 23:38:04.25 ID:qQ0bjYjD0.net] >>820 >>827 お前ら知ってるのならそのメリットを(出来れば具体的に)書いてみてくれないか? 一応Wiki読んだが、 > 明示的に再帰を書かずに再帰を実現する為に用いる事ができる。 > なお、一般にそういった言語では普通に再帰が使えるので、 > プログラミングにおいてはパズル的なテクニック以上の意味は無い。 > https://ja.wikipedia.org/wiki/%E4%B8%8D%E5%8B%95%E7%82%B9%E3%82%B3%E3%83%B3%E3%83%93%E3%83%8
859 名前:D%E3%83%BC%E3%82%BF なら、いらねえし、採用されることはないと思うが。 [] [ここ壊れてます]
860 名前: mailto:sage [2018/04/17(火) 00:06:31.67 ID:gWiyCqxa0.net] >>828 その wikipedia の解説はちょっと本質からはずれている気がする 「明示的な識別子を含まないで再帰関数が記述できる」くらいか ラムダ表現を採用している、というのなら不動点コンビネータくらいは記述できないといけないのではないか? いいかえれば不動点コンビネータを表現できないラムダ表現は「何か大事な部分が欠けている」 ラムダ表現は理論的なモデル(計算可能性を論じるなど)として考案されたもので、実用とか効率とかからは遠く離れている ラムダ表現を売りにする言語(lisp とか)ならともかく、C#/C++/Java のような実用・効率を求める言語で単に「ラムダ表現ができる」「簡潔だ」くらいの理由で採用されるのは、無目的に言語仕様を拡張しているという理由で個人的には不満 さらにはラムダ表現を老害フィルタがわりに使う者もいたりするが、そういうのには賛同しがたい
861 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 01:21:31.43 ID:RhwG6Rqia.net] javascriptだとアリって気がするよな。 なぜかは知らんが。まあlisp感あるからか。
862 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 08:33:39.92 ID:dXM64r3I0.net] javascriptにはなぜかオブジェクト指向が無いからな コンビネータはC++には早晩実装されそうな気がする
863 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 09:37:19.33 ID:tZLDyJo/0.net] C++やJavaはクラスベースのオブジェクト指向言語 JavaScriptはプロトタイプベースのオブジェクト指向言語
864 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:42:23.84 ID:Yk52Q7IR0.net] >>829 今の仕様で不動点コンビネータが記述できるのかどうかは俺には分からないが、 焦点はその先で、「記述できたら何がうれしいのだ?」なのだと思うよ。 実用言語で重視されるのは当然「実用性」であって、「学術性」ではない。 逆に、実用性皆無なら、当該部分が削除された状態で採用されるべきだ。 例えばC#は意図的にインラインアセンブラを禁止している。 ヘルスバーグのインタビューがググッても出てこないのだが、心は、 「C#のコードならメンテできます」の為の必要知識量を抑えること、だった。 これは長期的に要員確保の難易度を下げ、結果的にメンテ性を上げる。 これも実用言語では重要だよ。 アメリカでPythonを使うのも、Python自体が良い言語だと思っている奴は皆無で、 「Pythonならみんな読めるし書けるから」だからね。 そのコードが10年以上使われることが分かっているのなら、 10年後に要員確保できない可能性がある言語を選択するのは間違いだし。 Cは、(時代的に無理ではあったが)何でもありの状態で、 文法は極めて簡単だが問題は中で何をやっているかで、読んでみなければ分からない。 「Cのコードならメンテできます」とか、簡単に言うのは無理だろ。 C#はイミフなコード構成(大体はCでも警告が出るもの)も禁止されており、 一応、エンジニアが「C#ならメンテできます」と言えることを目指している。 (上手く行っているとは言い難い部分もあるが) 酷い話だが、Javaは10年間全く進歩しないことによってこれを達成してしまっているし。 だから、話を戻すと、 実用言語においては実用性のある機能は取り入れるべきだが、 実用性がない機能は捨てられるべきなんだよ。 (大は小を兼ねる、多めに採用しとけ、ではない。同様に無駄に構文糖が多いのも問題) 今回ラムダが矮小化されて取り込まれているということなら、 取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。 勿論今後覆る可能性もあるけどね。
865 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:55:44.13 ID:zXGef27d0.net] そういうのは自宅の壁に
866 名前: mailto:sage [2018/04/18(水) 00:05:44.11 ID:0XfxQo2f0.net] >>833 >取り込まれた部分は必要だと、切り捨てられた部分は不要だと判断されただけ。 受動的な態度であればそうなるが、あえて私の感覚を述べるとすれば、 ラムダ式を C++/C#/Java(特にC++)に取り込む価値があったのか? という点、C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい シンタックスシュガーを全否定するわけではない 「ラムダ式」という偉大な名前に反して、実際にできることは一般的な「ラムダ式」のカバーする領域よりも狭くなっているのを「不満」と感じているだけなのかもしれない
867 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 01:03:16.68 ID:fAoQEHU80.net] >>835 > C++ のラムダ式は operator()() で実現できるし、operator()() のシンタックスシュガーと考えてよい 一応それが禿がラムダをC++に採用するのに反対している理由だったと聞いたが、 結果的には折れたんだろ。 昨今は「出来ること」よりも「ソースコードの見やすさ」が重視されているし、妥当だと思うが。 比較すると、 1. そもそも operator()()(ファンクタ)では関数に見えない。これが最大のガン。 2. C/C++は階層記述能力が無く、関数内関数が出来ない。このため、 局所的に関数ポインタを使いたいだけの場合でも上位階層に関数を記述するしかなく、 結果的にその関数は他からも見える(使える)状態になってしまう。 匿名関数であれば、そこでしか使っていない事を文法的に保証できる。 3. ファンクタだとインスタンス変数は必ずコピーすることになる。 ラムダだとおそらく直接掴める場合もあり、この場合はケチれる。 (ただしこれは実装による) だから関数内関数(クロージャ付き、最低限その階層の変数は見えるもの=GCC拡張の仕様でいい)があれば、 1,2,3とも達成できるし、要らなかったかな、とも思う。 というか、C/C++とも、関数内関数(階層)は無しで押し切るつもりかよー、とは思う。 ラムダよりこっちの方が必要な気がするのだが。
868 名前:デフォルトの名無しさん [2018/04/18(水) 02:30:28.15 ID:vVNlUpo0d.net] Cとシェルスクリプトだけで生きていきたいんですが食べていけますか? またそういった分野らOSSコミッター以外でありますでしょうか?
869 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:40:14.81 ID:whM0Cl8U0.net] あるとするなら組込系かな 回路図とアセンブラは出来るの?
870 名前:デフォルトの名無しさん [2018/04/18(水) 03:38:30.78 ID:5PSc4Ve9d.net] >>838 ありがとうございます
871 名前:デフォルトの名無しさん [2018/04/18(水) 06:50:02.81 .net] 今どき組み込み系もPythonできなきゃやっていけない時代よ
872 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 06:58:40.17 ID:JUjvxXNW0.net] 組み込みは圧倒的にC言語が多い
873 名前:デフォルトの名無しさん [2018/04/18(水) 07:26:37.24 .net] >>841 ツール類は一昔前ならPerl/Ruby/TTL(TeraTerm)/VBA、今はPythonが必須だよ
874 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 07:55:12.06 ID:JUjvxXNW0.net] ツール類ってなんだよ 組み込みの話をしてるの 機器内部のファームウェア
875 名前:デフォルトの名無しさん [2018/04/18(水) 08:03:28.70 .net] >>843 組み込み系開発者がCソースだけいじってればいいと思ってんのか
876 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:06:09.63 ID:JUjvxXNW0.net] 大部分の組み込みだとYES 他の言語など使わない
877 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:07:13.14 ID:JUjvxXNW0.net] C言語以外が必要なのは大規模な物だけ
878 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:15:48.27 ID:Acg84ZKa0.net] >>837 そういうことはプログラム板ではなくプログラマ板で聞いてこい
879 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:30:18.84 ID:8g/N/Bw3a.net] >>844 いい。
880 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 08:59:26.18 ID:whM0Cl8U0.net] 最悪、シーケンサ(PC)でラダー図とアセンブラ触ってりゃ 行けるでしょ。 MELSEC-iQ-RとかはC言語で書く(OSはVxWorks) ま所詮は他人の人生である
881 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 09:49:03.96 ID:bX/oR0u10.net] Cでさえオーバースペックでアセンブラという場合まである
882 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 09:57:01.68 ID:8LhMtFC1d.net] アセンブラでさえオーバースペックでバイナリエディタという場合まである
883 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 10:32:00.37 ID:MgMoBevw0.net] >>851 参考までにアセンブラがオーバースペックなマイコン(SoC)って何処の製品か教えて
884 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 10:40:41.42 ID:0P72JrSeM.net] あるとすればIMSAIとかだろうけど、流石にネタだろ
885 名前:デフォルトの名無しさん [2018/04/18(水) 11:16:51.20 ID:gg2GabAwa.net] プログラムを動かすボードが貧弱でも開発は豪華なPCでやるんだから最低でもアセンブラ使えるようにはするだろう。 作ったばかりのCPUで他のCPUとの互換性が全くなくアセンブラもまだない、なんていう特殊な状況でない限りは。
886 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 11:45:29.90 ID:8g/N/Bw3a.net] マウンティング頑張れ
887 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 12:36:20.65 ID:8LhMtFC1d.net] ごめんなさい ネタです
888 名前:デフォルトの名無しさん [2018/04/18(水) 12:57:38.66 ID:gg2GabAwa.net] mount /dev/sda
889 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 23:26:56.70 ID:1I0zrtwW0.net] 組込み屋だけど会社によって状況違うんだなとしみじみ
890 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 23:58:14.05 ID:BI6oaZDa0.net] この頃は組み込みって言っても Linux が動いちゃうような小さいボードあるしな。 SDメモリに平気で何Gもデータ入れちゃったりもできるし。なんとういか、時代は変わったよな。 昔は2KBと4KBのROMに詰め込むためにビット単位で削っていたもんな。
891 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 00:35:24.22 ID:q2wFspbLM.net] 組み込みって昔から小っちゃいのから馬鹿デッカいものまであるから一括りにするのが間違い
892 名前:850 mailto:sage [2018/04/19(木) 05:33:01.08 ID:IwtdBTTY0.net] なんかネタレスで返されてるな とあるLEDアレイの案件では並列に重きを置き CPUあたりの処理能力は思いっきり低い なんてのがあったんだが
893 名前:デフォルトの名無しさん [2018/04/19(木) 12:39:01.79 ID:oHD1faOFa.net] あまりに面倒ならハードウェアで回路追加して解決
894 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 22:41:42.50 ID:Uac+F3+Td.net] あんまりそれすると、またハード屋に小言言われるぞ。
895 名前:デフォルトの名無しさん [2018/04/19(木) 23:07:31.74 ID:p3OUOmjs0.net] int a[] = {0,1,2,3}; char b =0; scanf("%d",&b); printf("%d",a[b]); 知恵袋でこんな質問があって俺も不思議に思って持ってきたんだけど 色んな数字入れても0になるとか書かれてたんだけどこれどうなってるの?
896 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:17:20.36 ID:/9NYPZwG0.net] >>864 自分で試してみた?
897 名前:デフォルトの名無しさん [2018/04/19(木) 23:21:55.11 ID:p3OUOmjs0.net] >>865 100入れてみたら3が返ってきたw
898 名前: mailto:sage [2018/04/19(木) 23:22:54.38 ID:b+0fRBYw0.net] >>864 >色んな数字入れても0になるとか ならない https://ideone.com/Itq7px
899 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:23:39.27 ID:XF7JHHHf0.net] エンディアンによるような気もするがー %d は int の大きさを持った器のポインタを要求してるのに char の大きさの器を渡してるから どうなろうがしったこっちゃない鼻から悪魔系の動作
900 名前:デフォルトの名無しさん [2018/04/19(木) 23:29:53.26 ID:p3OUOmjs0.net] これがエラーにならず動いてしまうという悪魔のCの動作か
901 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:30:32.30 ID:/9NYPZwG0.net] char b[4] = {0}; scanf("%d",&b[0]); printf("%d %d %d %d\n",b[0],b[1],b[2],b[3]); これをVCとGCCで試してみた 結果は配列先頭要素に代入され、残りは0のままだった
902 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:31:48.87 ID:x2EYL8xQ0.net] >>867 bの型がcharなのが
903 名前:フなんだからそこは間違えるなよ [] [ここ壊れてます]
904 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:33:18.23 ID:XF7JHHHf0.net] >>870 入力で負の値を渡すと…
905 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:33:42.76 ID:lwH23MPfa.net] intだからな
906 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:36:41.07 ID:/9NYPZwG0.net] なるほど、入力値が小さいときは、 後ろの配列が変わってないかのように見えるだけって事か
907 名前: mailto:sage [2018/04/19(木) 23:38:11.10 ID:b+0fRBYw0.net] >>868 char 配列の大きさを表す変数が int であっても、あるいはそうでなくても、それは関係ないのでは?
908 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:38:53.72 ID:XF7JHHHf0.net] >>874 そそ 0でフィルしてるから問題ないようにみえるけど、 0 以外でフィルしてやると副作用おこしてるのがわかるよ
909 名前: mailto:sage [2018/04/19(木) 23:39:18.81 ID:b+0fRBYw0.net] >>871 あ!
910 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 23:40:18.78 ID:XF7JHHHf0.net] >>875 printf ではなく scanf のフォーマットでの %d 指定に char 変数のポインタを渡してる話よ?
911 名前: mailto:sage [2018/04/19(木) 23:46:08.02 ID:b+0fRBYw0.net] >>878 やっと気が付いた… >>877
912 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 00:50:00.05 ID:G/kLZxdya.net] 警告って出ないもん?
913 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 01:57:12.33 ID:wjKqEKEv0.net] 関数の引数はスタックサイズに丸められるよ
914 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 02:04:42.67 ID:G/kLZxdya.net] ポインタだしなあ
915 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:13:59.91 ID:EDYH6GYd0.net] >>880 GCC だと -Wall を指定すれば警告が出るね。 書式 %d に対して *char の引数 [-Wformat] 配列の添字が char 型 [-Wchar-subscripts]
916 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:51:33.68 ID:9tWrHk9l0.net] >>881 この1行にアホが詰まってる 会話の内容も実際の動作も用語もわかってないっていう
917 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 07:58:37.73 ID:eEDtLY6e0.net] アホな点をいくつ見つけられるかで 各自のアホ度を測定できるな
918 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 09:31:45.52 ID:OLFb+zqBd.net] それがデバッグと言われる行為だろ?
919 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 10:21:13.71 ID:xd9k5+f1M.net] 脳がwormhole だらけなんでしょ
920 名前:デフォルトの名無しさん [2018/04/20(金) 14:21:22.42 ID:33OB1hDw0.net] char *line; scanf("%s", &line);//dogが入る if(line=="dog") { printf("dogですよ"); } これってなんでdogと合わないん?
921 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:26:31.37 ID:UQRLXIIQ0.net] >>888 scanf で受けとる変数をchar型の配列にしましょう
922 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:30:58.92 ID:OLFb+zqBd.net] >>888 line=="dog" という式は strcmp関数にしましょう
923 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:31:04.87 ID:JZAZQDTS0.net] 文字列の比較は == ではなく、strcmp 等の比較関数をつかいましょう
924 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:15:01.27 ID:uy6ZTS8Ap.net] アドレスの一致を比較してるからじゃね?
925 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:17:13.71 ID:RdXrGqPUd.net] C言語はプロ向きの言語 「とりあえず動かしてみる」 とかいう用途には向かない 入門書とかできちんと勉強しよう
926 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 15:20:02.90 ID:JZAZQDTS0.net] >char *line; >scanf("%s", &line); この2行に色々な罠や誤りが仕込まれてるな。 Cで躓くであろう、ポインタと配列、文字と文字列周辺 (セキュリティや入力のオーバーランは考慮せず簡便なので書くと) char line[256]; scanf("%s", line);
927 名前:デフォルトの名無しさん [2018/04/20(金) 17:03:59.70 ID:OzeM0EoQa.net] >>888 どこから突っ込んでいいかわからない。 今は出先でスマホから見てるので書くのが面倒だが、多分明日までには他の人が沢山ツッコミを入れている事だろう。
928 名前:片山博文MZ mailto:sage [2018/04/20(金) 17:21:20.04 ID:PF4NyNv9d.net] >>894 char line[64]; size_t len; fgets(line, sizeof(line), stdin); len = strlen(line); if (len && line[len - 1] == '\n') line[len - 1] = 0; if(strcmp(line, "dog") == 0) { printf("dogですよ\n"); }
929 名前:片山博文MZ mailto:sage [2018/04/20(金) 17:28:09.55 ID:PF4NyNv9d.net] char line[64]; fgets(line, sizeof(line), stdin); strtok(line, "\n"); if(strcmp(line, "dog") == 0) { printf("dogですよ\n"); }
930 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 18:00:02.24 ID:eEDtLY6e0.net] char line[256]; scanf("%255s", line); scanfを使えないアホが scanfをdisるのを見る度に 嘲笑するのも勿体ない気分になる
931 名前:デフォルトの名無しさん [2018/04/20(金) 18:02:13.70 ID:rQE2Qud50.net] これでもし入力条件が不明の長さで受け取らなきゃ行けなかったらどうすればいい?
932 名前: mailto:sage [2018/04/20(金) 18:08:34.85 ID:RP9oZBhW0.net] >>898 それ 256 という定数を変えるとき、いちいちレテラルの中を手書きで直すんですか? いけてないですね…
933 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 18:10:03.88 ID:wjKqEKEv0.net] *ぐらい使えよ
934 名前:片山博文MZ mailto:sage [2018/04/20(金) 18:10:57.05 ID:PF4NyNv9d.net] std::getline 一文字ずつ読み込む
935 名前:デフォルトの名無しさん [2018/04/20(金) 18:40:42.36 ID:dyY1ZlsFa.net] gccならgetline()
936 名前:片山博文MZ mailto:sage [2018/04/20(金) 18:44:42.17 ID:PF4NyNv9d.net] 入力バッファにちょっとゴミが混じるだけでscanfは使えなくなる。 そんな役立たずは、業務では使うべきではない。使うなら、fgetsとsscanfの方がいい。 我が国のコンピューター教育は残念ながら、業務では役に立たない言語を教えている。
937 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 19:13:13.94 ID:2JMfU3z40.net] むしろ余程プアな環境でない限り、業務でC言語は使うべきではない
938 名前: mailto:sage [2018/04/20(金) 19:54:49.61 ID:RP9oZBhW0.net] >>905 かわりに何を使えばいいですか?
939 名前:デフォルトの名無しさん [2018/04/20(金) 19:55:43.39 .net] >>906 Python
940 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:49:36.44 ID:9tWrHk9l0.net] 業務でこそC言語
941 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:55:22.00 ID:18ECoYTh0.net] COBOLかVB
942 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:04:02.42 ID:qDS4Ifrca.net] >>905 心配しなくても使われる所は限られてるよ。 OSそのものとかデバイスドライバとかな。 それも減りつつあるんじゃないかな。 まあしかし過去の資産がありすぎて捨てられないって感じか。 うまいこと互換性を保ちつつ次の段階へ行ければいいんだろうけどね。
943 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:08:14.53 ID:9tWrHk9l0.net] MCUはほとんどがC言語 たまにC++ たまにアセンブラ
944 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 22:17:00.80 ID:DDZisBasM.net] >>899 その受け取ったデータをどう使うかによる
945 名前:デフォルトの名無しさん [2018/04/21(土) 00:13:25.41 ID:Oxipuy330.net] >>901 scanf() の * は・・・
946 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:47:37.05 ID:Ynju1Yzg.net] hallo warld
947 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:55:01.78 ID:nJ9/ilUK0.net] >>914 ばかに見えるから止めた方がいいと思うよ
948 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:07:34.81 ID:pETeS31u0.net] こちらでどうぞ https://mevius.5ch.net/test/read.cgi/tech/1427572389/
949 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:24:19.45 ID:pETeS31u0.net] >>904 898の例でゴミが問題になるのか?
950 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:05:42.05 ID:WYiI1Hbl0.net] 入力された文字列(例えば10文字程度)を、 数字だけ*に変えるプログラムを作りたいと思ってるんですが、 どうもうまく行きません どなたか簡単なコード書いてくれませんか
951 名前:デフォルトの名無しさん [2018/04/21(土) 15:31:16.54 .net] >>918 数字は半角の「*」でいいの? それとも全角の「*」? それによって処理の複雑さが変わる
952 名前:デフォルトの名無しさん [2018/04/21(土) 15:32:52.02 .net] ああ、あと入力された文字列にはマルチバイト文字が含まれるのか、1バイト文字なのかも明確にしとかないとな
953 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:33:17.96 ID:VeVDn114a.net] >>918 お前さんが書いたコードをあげれば誰か添削くらいはしてくれるかもよ
954 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:33:18.46 ID:WYiI1Hbl0.net] >>919 すいません、半角でお願いします
955 名前:デフォルトの名無しさん [2018/04/21(土) 15:45:37.64 .net] 入力部分には>>897 を使わせてもらった #include <stdio.h> #include <string.h> void mask_num(char *s) { char *c; for (c = &s[0]; *c != '¥0'; c++) { if (*c > '0' && *c < '9') *c = '*'; } } int main() { char line[64]; fgets(line, sizeof(line), stdin); strtok(line, "¥n"); mask_num(line); printf("%s¥n", line); return 0; }
956 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:47:16.12 ID:FmyBtpFH0.net] プログラムのコードの話してるのに全角は無いわ。 データの話ならむしろ文字コードとかまで考えなきゃならんがな。
957 名前:デフォルトの名無しさん [2018/04/21(土) 15:49:15.15 .net] >>923 >if (*c > '0' && *c < '9') *c = '*'; if (*c >= '0' && *c <= '9') *c = '*'; だった
958 名前:デフォルトの名無しさん [2018/04/21(土) 15:51:21.42 .net] >>918 を見て「*」を「*」に勝手に読みかえるようじゃ 受け入れ試験時で不具合が見つかって大幅手戻りが発生するぞ
959 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:07:01.70 ID:a/Xqi2VF0.net] void mask_num(char *s) { while (*s) { if (isdigit(*s)) *s = '*'; s++; } }
960 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 16:17:22.90 ID:Oxipuy330.net] 入力して変換して出力するだけでいいならこうかな。 #include <stdio.h> #include <ctype.h> int main() { int c; while ((c = getchar()) != EOF) if (isdigit(c)) putchar('*'); else putchar(c); return 0; }
961 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 17:23:05.22 ID:2bKzbSLP0.net] >>926 しかしながら「数字を*に変えるプログラム組んどきましたよ」と言って 本当にASCIIの '*' でなくマルチバイトの "*" に変える処理だったら 発注側から「普通全角はないだろ、お前さん常識ないのか?」と 発言者にとって都合の良い「普通」「常識」の波状攻撃を受けるハメに。 その意味で >>919 と >>920 の態度は正しい。 世の中には自分のミスを認めたくない人もいるけどな。
962 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:01:42.48 ID:bgp2zzOH0.net] 今回の発注者は>>918 だから注意喚起として * じゃないの? って確認するのは正しいけど全角半角言うならむしろ数字と言うのが半角だけでいいのかを確認した方がいいかと 下手すると 壱萬弐仟参佰四拾伍 が変換されてないじゃないかとか言われるかも知れんし
963 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:05:08.78 ID:uE8GRdCpd.net] >>924 プログラムのコードの話なんてどこに書いてある?
964 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 03:46:05.48 ID:jlGSrB9uM.net] >>930 Unicode正規化も確認しないとな
965 名前:918 mailto:sage [2018/04/22(日) 06:45:30.49 ID:5hVlVxZz0.net] すいません遅れました 添削おねがいします #include <stdio.h> void num_star(char *p) { while (*p) if(*p >= '0' && *p <= '9') *p++ = '*'; } int main(void) { char ch[10]; printf("文字列を入力せよ\n"); scanf("&s",
966 名前:ch); num_star(ch); printf("%s\n", ch); return 0; } [] [ここ壊れてます]
967 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 06:59:36.50 ID:cFbiqY2T0.net] >>933 scanfに"&s"は間違い"%9s"だ if(*p >= '0' && *p <= '9')は標準関数でif(isdigit(*p))とできるのに勿体ない p++はifの条件が偽のときに実行されなくなっている
968 名前:デフォルトの名無しさん [2018/04/22(日) 13:47:43.90 ID:J/MYnpG10.net] 数字以外の文字だけ入力されたら無限ループになって終わらないね。
969 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 13:59:28.07 ID:1MVwzpIAd.net] >>934 関数コールは遅いしサイズも増える 標準ライブラリを全てリンクしてるかわからない わざわざC言語を使う場面ていうのは そういうことも多少は心配した方が良いこともある
970 名前: mailto:sage [2018/04/22(日) 14:04:21.13 ID:bjDlbJPk0.net] >>936 >標準ライブラリを全てリンクしてるかわからない 必要なものをリンクすればいいし、必要なものをリンクするように出来ているのでは?
971 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:13:43.70 ID:1MVwzpIAd.net] リンクしない選択をすることもあるのだよ 色々な理由で 特にわざわざC言語を使うような環境では
972 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:18:09.76 ID:1MVwzpIAd.net] なにが「勿体ない」だか
973 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:38:15.31 ID:cFbiqY2T0.net] >>936 > 標準ライブラリを全てリンクしてるかわからない リンク? インプリメントの間違いだろ 何をリンクして何をリンクしないのかは 組み込みでは厳密に指定し結果も確認する isdigitにはマクロバージョンもある おそらくお前さんはそんなん知らんと言うだろうな 総じて、現物のコンパイラを細かくいじるということをせずに 上っ面だけ使って満足している手合いか
974 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:40:37.67 ID:RLohAeVua.net] strip
975 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 14:46:38.59 ID:RDdUHzj0a.net] >>936 そういう話は最低限の基本ができてから教えれば十分なことで、始めたばかりの初心者にあれこれ言ってかえって混乱させるのは良くないかと。
976 名前:デフォルトの名無しさん [2018/04/22(日) 15:27:22.65 .net] >>940 isdigitの指す文字が’0’〜’9’だけとも限らないからな(事実上は問題にならないとしても)
977 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 15:45:55.57 ID:RLohAeVua.net] digitの定義はlocaleに依存するので制御可能。 基本的にはisdigitが妥当だろうね。 自前でテーブル定義してもよい。大小で判断するのは危険だね。
978 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 16:35:36.81 ID:H/AU6k7y0.net] >>944 > 大小で判断するのは危険だね。 危険だと思う理由は? '0'〜'9' が連続してることは規格で保証されてる
979 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 17:32:41.34 ID:cFbiqY2T0.net] >>945 その規格とやらの文書番号は? つまり何の規格かと
980 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 17:59:29.92 ID:rTRuhMGrM.net] >>946 X 3010:2003 (ISO/IEC 9899:1999) 5.2.1文字集合 ソース基本文字集合及び実行基本文字集合の双方において,10 進数字に関する上の並びにおいて,0 の右側に並んでいる各文字の値は,一つ左側にある文字の値に比べ 1 だけ大きくなければならない。
981 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 18:31:37.06 ID:cFbiqY2T0.net] >>947 あれ本当だ ということはCの翻訳環境でも実行環境でも 採用を禁じられる文字集合規格がありうるってことか なんか出過ぎた決めごとだな
982 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 18:58:05.22 ID:H/AU6k7y0.net] >>948 > 採用を禁じられる文字集合規格 そんなもの見たことない
983 名前: mailto:sage [2018/04/22(日) 19:16:00.91 ID:bjDlbJPk0.net] >>949 「0 の右側に並んでいる各文字の値は,一つ左側にある文字の値に比べ 1 だけ大きく」なっていない文字集合は思いつけませんね… ftp%3A//ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00037.pdf
984 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 19:35:50.81 ID:cFbiqY2T0.net] >>949 いや俺も見たことないけどさ それはASCII系が絶対的とでも言うほどの多数派で 遙かに遅れたEBCDICもそうなっているからだろ 科学的にそう規定すべき合理性あるか?
985 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 19:36:32.85 ID:YjWQK7FP0.net] [[['[] ]]] { {] ]][ '[][][] [][] [][][] [] '[] []
986 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:06:54.82 ID:H/AU6k7y0.net] >>951 自分の回りにないならあるものを前提にするのはあたりまえ そもそも連続してないことにメリットがあるとは思えないし
987 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:06:57.91 ID:TH0cxcHD0.net] >>951 BCD計算が出来なくなるからCOBOLが動かなくなるわな CPUの時点で排除しているのは6502系ぐらいじゃね?
988 名前:デフォルトの名無しさん [2018/04/22(日) 20:20:55.56 ID:d95yXvpO0.net] 再帰関数を使って次の問題の会を出すプログラム書いたんですけど、なんかミスばっかでダメなので、だれかどういうプログラム書けばいいのか教えてもらえませんか? 九つの椅子が ○○○ ○○○ ○○○ のように並んでおり、はじめに数字の書いた札を持った何人かが座っているとする 例 ○○5 ○9○ 12○ さらに他にも何人か数字の書いた札を持った人がいて、その人たちが空いてる席に順番に座って行くとする 全員座った後、それぞれの点数を数えるとする、ただし点数は前後左右の人が持ってる札の数字を足し算する 例 ○○5 ○9○ 12○ で 3さん→4さん→7さん とすわり ○75 493 12○ となった、9の点数は7+4+3+2 この時、それぞれが自分の点数を常に最大になるように座ったら最終的にはどういう配置になるでしょう?ただし ・それぞれは座る順番を知っている ・その次に座る人達がどこに座るかまで考慮に入れて考える ・自分以外の点数は気にしない ・誰もいないところは0 ・次の人が何箇所か座る候補があり絞れない時は常に予想図の最小値をとって考えるとする、つまり極端にリスクを恐れる
989 名前:デフォルトの名無しさん [2018/04/22(日) 20:22:39.58 ID:d95yXvpO0.net] 質問てここでいいですか?
990 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:32:24.58 ID:H/AU6k7y0.net] >>954 この2行にアホが詰まってる 会話の内容も実際の動作も用語もわかってないっていう
991 名前:デフォルトの名無しさん [2018/04/22(日) 20:58:30.62 ID:kdP+cJ/x0.net] >>955 面白そうなテーマだから、お題スレに投げてみるのがいいのではないかと誘導 プログラミングのお題スレ Part10 mevius.2ch.net/test/read.cgi/tech/1514772904/
992 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:11:08.54 ID:1MVwzpIAd.net] >>942 いやだから、 >>934 の真ん中がいらないっていう話
993 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:17:34.90 ID:1MVwzpIAd.net] >>940 どこからつっこんでいいのやら
994 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:18:50.30 ID:1MVwzpIAd.net] >>957 どこかで見たセリフ
995 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:19:12.17 ID:T8nVVEKh0.net] 形式 #include <ctype.h> int isalnum(int c); int isalpha(int c); int iscntrl(int c); int isdigit(int c); int isgraph(int c); int islower(int c); int isprint(int c); int ispunct(int c); int isspace(int c); int isupper(int c); int isxdigit(int c); 機能説明 上記にリストされている関数はすべて ctype.h 内で宣言されており、指定されている整数値をテストします。 c で適切な整数値は、unsigned char または EOF として表現可能なものです。 デフォルトで、これらの関数は ctype.h がインクルード されている場合はマクロとして定義されます。 パフォーマンスを良くするために、関数形式よりマクロ形式を使うのが適切です。
996 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:26:12.24 ID:20oer2uOa.net] >>962 そういえばそれって locale 考慮すると言っときながら unsigned char でしか 判定してくれないというなんとも言えない仕様だよな。マルチバイトの判定が できない。まあそんな拡張したら面倒な感じはするのでそのままでもいいが。
997 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:28:15.82 ID:cFbiqY2T0.net] ですます調ということは、JISソースではないな
998 名前:デフォルトの名無しさん [2018/04/22(日) 21:29:41.48 .net] >>963 つ iswdigit
999 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:31:58.01 ID:cFbiqY2T0.net] C99以後はinlineがあるんだがID:1MVwzpIAdはC89前提?それともK&Rかね
1000 名前:デフォルトの名無しさん [2018/04/22(日) 21:33:04.20 ID:1srXW/Rwd.net] >>958 ありがとうございます、そっち行きます
1001 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:33:34.88 ID:1MVwzpIAd.net] 前提など不要
1002 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:34:00.82 ID:cFbiqY2T0.net] >>953 数字が連続していないことにメリットがあるとは思えない という思考回路では 英字が連続していないことにメリットがあるとは思えるのか? 具体的にどんな?
1003 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:34:42.49 ID:1MVwzpIAd.net] どんな環境かわからないんだからどんな環境でも動くコードが良い
1004 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:36:00.62 ID:cFbiqY2T0.net] レスが長文化してるやつは効いてる効いてるwだが 逆もまた真なり 情報量が非常に乏しいレスしかしなくなったやつw
1005 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:42:55.38 ID:1MVwzpIAd.net] ねえねえ なにが「勿体ない」の?
1006 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:18:10.29 ID:H/AU6k7y0.net] >>969 > 英字が連続していないことにメリットがあるとは思えるのか? おそらくEBCDICのことを言ってるんだろうけどあれはパンチカードフォーマットから変換しやすくするような体系になってるだけの話
1007 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:19:34.67 ID:TH0cxcHD0.net] >>961 何ら有益な情報を書けない。只の荒らしでしょ。
1008 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:35:44.05 ID:OBDOSUSoa.net] 今更で悪いけど、文字はまず集合として扱うのが筋だからさ。 大小比較したいなら、一度数値に直せばいいじゃんと思うよ。これについては規格上の正しさという話ではなくて、抽象的な意味にこだわらないと保守性下がるというのが実感としてあるから言うとるのよ。
1009 名前: mailto:sage [2018/04/22(日) 22:36:07.06 ID:bjDlbJPk0.net] 「こういう仕様になっているのはこういう理由だからだ」という設問 あるいは「もしこういう仕様だったらこういう問題があっただろう」という反実仮想的設問には意味があると思っているから、そういう話で盛り上がる今はありがたいと思っています
1010 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:40:48.03 ID:T8nVVEKh0.net] >>964 https://www.ibm.com/support/knowledgecenter/ja/SSLTBW_2.2.0/com.ibm.zos.v2r2.bpxbd00/isalnum.htm
1011 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:43:35.78 ID:bBx4tH0Hd.net] >>974 元はおれの文 1行でアホが詰まってると、本気で感心した時に書いた
1012 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:07:06.08 ID:TH0cxcHD0.net] >>978 最近のBOTは優秀になったのね。CNTKか何かか?
1013 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:08:02.95 ID:H/AU6k7y0.net] >>974 関係ないことを堂々と書く奴に言われてもな w
1014 名前:デフォルトの名無しさん [2018/04/22(日) 23:55:50.76 ID:J/MYnpG10.net] 数字なのに1足されてないというと、Unicodeでの漢数字かな。
1015 名前:デフォルトの名無しさん [2018/04/27(金) 11:38:54.60 ID:OGjTaEqd0.net] うむ
1016 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 21:59:14.79 ID:4vnB69wL0.net] [[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ]
1017 名前:デフォルトの名無しさん [2018/04/29(日) 17:07:26.07 ID:X9PCZykj0.net] O(n)のin-placeなセレクティングネットワーク O(n)のin-placeなマージアルゴリズム O(n)のin-placeなマージングネットワーク O(n log n)の(実用的な)ソーティングネットワーク は存在しますか? ここらへんがあると並列ソートがかなり捗るんだけど。
1018 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 20:34:40.36 ID:My7UiDyw0.net] [[[ []]]]*[[ [][] ][] } } {} [[[
1019 名前:デフォルトの名無しさん [2018/04/29(日) 20:42:41.53 ID:0iHuAZG8M.net] こんにちは c言語で質問です 写真の通りのプログラミングを書きたいのですができません *などで四角形は作れるのでそれを応用するのだと思うのですが、2段目以降を違うのにするやり方がわかりません どなたかお願いします。 https://i.imgur.com/09EKR0n.jpg
1020 名前:片山博文MZ mailto:sage [2018/04/29(日) 20:45:11.87 ID:PLWQQmF3d.net] >>986 数学で数列は習ったかい? 一般式で表してそれを二重のforループにするだけだ。
1021 名前:デフォルトの名無しさん mailto:sage [2018/04/29(日) 21:16:42.92 ID:gpEFuXsMa.net] 二重ループよりも二個関数作った方が将来のためになるかもな
1022 名前:片山博文MZ mailto:sage [2018/04/29(日) 22:14:07.36 ID:PLWQQmF3d.net] 数列を極めるには、差分法が役に立つが、今ではかなりマイ
1023 名前:iーな数学分野になっている。 [] [ここ壊れてます]
1024 名前:片山博文MZ mailto:sage [2018/04/29(日) 22:20:26.21 ID:PLWQQmF3d.net] 差分法は、微分法の兄弟みたいなもので、差分法の極限をとると微分法になる。
1025 名前: mailto:sage [2018/04/29(日) 22:21:28.34 ID:20g7tnTI0.net] >>989 漸化式がマイナーだって?
1026 名前:片山博文MZ mailto:sage [2018/04/29(日) 22:27:28.61 ID:PLWQQmF3d.net] 差分法は、研究分野としてはマイナー。差分方程式は地球上ではもうだれも研究していないのではないか。
1027 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 01:05:41.13 ID:Knbm+hrA0.net] https://ja.wikipedia.org/wiki/%E5%B7%AE%E5%88%86%E6%B3%95
1028 名前:デフォルトの名無しさん [2018/04/30(月) 01:30:28.58 .net] 別に小難しい数学の知識とかいらなくね? a = 6, b = 4だとして、 ary = malloc(sizeof(int) * a * b); for (i = 0; i < a; i++) { for (j = 0; j < b; j++) { v1 = (i == 0 || j == 0) ? 0 : ary[i - 1][j - 1]; v2 = (i == 0) ? 0 : ary[i - 1][j]; v3 = (j == 0) ? 0 : ary[i][j - 1]; ary[i][j] = v1 + v2 + v3; } }
1029 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 01:58:30.12 ID:njDF1dun0.net] いやいや、教科書的にはこうでしょ for (i = 1; i <= b; i++) { for (j = 1; j <= a; j++) { v = j; for (k = 1; k < i; k++) { v = v * j; } printf("%d, ", v); } puts(""); }
1030 名前:デフォルトの名無しさん [2018/04/30(月) 02:09:48.77 .net] >>994 はなんか勘違いしてたw b<=2までしか合わんかったわw
1031 名前:デフォルトの名無しさん [2018/04/30(月) 02:31:14.12 ID:XX4FB8lc0.net] >>986 2番目の値だけ抜き出すと 2, 4, 8, 16 となっているので、一つ前の値を2倍にしている。 3番目の値だけ抜き出すと 3, 9, 27, 81 なのでひとつ前の値を3倍にしている。 4, 5, 6 番目も同様。 ということは、a の入力の個数だけ要素を入れられる配列を作っておいて、その各要素に 1 〜 a の値を一つづつ入れておいて、その後 b の回数だけループしながら出力して 掛け算してを繰り返せばいい。プログラムにするとこうなる。 https://paiza.io/projects/EIvP4vpEHRgWnXFlka5Vjg
1032 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 02:48:27.09 ID:XX4FB8lc0.net] 配列でひとつ前の値を保持したくない場合はpow()使って計算するという方法もある。 https://paiza.io/projects/_L8doEZwIG6g0imlZM_Fug pow()使いたくない場合はループして掛け算を自分でやる。
1033 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 02:58:01.24 ID:Xjg4h3Qz0.net] 別に小難しい数学の知識はいらんけど>>994 が頭悪いのを晒したのはイタかったな 普通なら恥ずかし過ぎてもうこのスレ覗くこと出来ないレベル
1034 名前:デフォルトの名無しさん mailto:sage [2018/04/30(月) 03:04:53.67 ID:Knbm+hrA0.net] 別に小難しい数学の知識はいらんし質問の趣旨からも逸れるが>>992 が頭悪いのを晒したかった
1035 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 69日 4時間 50分 55秒
1036 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています