C言語なら俺に聞け 145

レス数が1000を超えています。これ以上書き込みはできません。
2018/02/19(月) 22:13:58.98ID:9/te2eSJ0
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://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
982デフォルトの名無しさん (ワッチョイ 5923-cUH7)
垢版 |
2018/04/27(金) 11:38:54.60ID:OGjTaEqd0
うむ
2018/04/28(土) 21:59:14.79ID:4vnB69wL0
[[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ]
984デフォルトの名無しさん (ワッチョイ 5961-ZnuE)
垢版 |
2018/04/29(日) 17:07:26.07ID:X9PCZykj0
O(n)のin-placeなセレクティングネットワーク
O(n)のin-placeなマージアルゴリズム
O(n)のin-placeなマージングネットワーク
O(n log n)の(実用的な)ソーティングネットワーク
は存在しますか?
ここらへんがあると並列ソートがかなり捗るんだけど。
2018/04/29(日) 20:34:40.36ID:My7UiDyw0
[[[ []]]]*[[ [][] ][] } } {} [[[
986デフォルトの名無しさん (ブーイモ MMb3-ZnuE)
垢版 |
2018/04/29(日) 20:42:41.53ID:0iHuAZG8M
こんにちは

c言語で質問です
写真の通りのプログラミングを書きたいのですができません
*などで四角形は作れるのでそれを応用するのだと思うのですが、2段目以降を違うのにするやり方がわかりません

どなたかお願いします。
https://i.imgur.com/09EKR0n.jpg
2018/04/29(日) 20:45:11.87ID:PLWQQmF3d
>>986
数学で数列は習ったかい? 一般式で表してそれを二重のforループにするだけだ。
2018/04/29(日) 21:16:42.92ID:gpEFuXsMa
二重ループよりも二個関数作った方が将来のためになるかもな
2018/04/29(日) 22:14:07.36ID:PLWQQmF3d
数列を極めるには、差分法が役に立つが、今ではかなりマイナーな数学分野になっている。
2018/04/29(日) 22:20:26.21ID:PLWQQmF3d
差分法は、微分法の兄弟みたいなもので、差分法の極限をとると微分法になる。
2018/04/29(日) 22:21:28.34ID:20g7tnTI0
>>989
漸化式がマイナーだって?
2018/04/29(日) 22:27:28.61ID:PLWQQmF3d
差分法は、研究分野としてはマイナー。差分方程式は地球上ではもうだれも研究していないのではないか。
2018/04/30(月) 01:05:41.13ID:Knbm+hrA0
https://ja.wikipedia.org/wiki/%E5%B7%AE%E5%88%86%E6%B3%95
994デフォルトの名無しさん
垢版 |
2018/04/30(月) 01:30:28.58
別に小難しい数学の知識とかいらなくね?

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;
 }
}
2018/04/30(月) 01:58:30.12ID:njDF1dun0
いやいや、教科書的にはこうでしょ
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("");
}
996デフォルトの名無しさん
垢版 |
2018/04/30(月) 02:09:48.77
>>994はなんか勘違いしてたw
b<=2までしか合わんかったわw
997デフォルトの名無しさん (ワッチョイ 219f-luqG)
垢版 |
2018/04/30(月) 02:31:14.12ID:XX4FB8lc0
>>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
2018/04/30(月) 02:48:27.09ID:XX4FB8lc0
配列でひとつ前の値を保持したくない場合はpow()使って計算するという方法もある。
https://paiza.io/projects/_L8doEZwIG6g0imlZM_Fug
pow()使いたくない場合はループして掛け算を自分でやる。
2018/04/30(月) 02:58:01.24ID:Xjg4h3Qz0
別に小難しい数学の知識はいらんけど>>994が頭悪いのを晒したのはイタかったな
普通なら恥ずかし過ぎてもうこのスレ覗くこと出来ないレベル
2018/04/30(月) 03:04:53.67ID:Knbm+hrA0
別に小難しい数学の知識はいらんし質問の趣旨からも逸れるが>>992が頭悪いのを晒したかった
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 69日 4時間 50分 55秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況