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
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 146
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
2018/04/30(月) 04:47:37.50ID:XX4FB8lc0542デフォルトの名無しさん (ワッチョイ 7fb3-VTPF)
2018/07/30(月) 19:43:33.82ID:WDgnZ3L+0 出現頻度の上位3位分を出せ?
typedef double VAL_T;
struct {
VAL_T val;
int count;
} data[100] = { 0 };
線形探索して カウントアップして data[] を count をキーにソートして
data[0].val, data[1].val, data[2].val, を出力する
typedef double VAL_T;
struct {
VAL_T val;
int count;
} data[100] = { 0 };
線形探索して カウントアップして data[] を count をキーにソートして
data[0].val, data[1].val, data[2].val, を出力する
543デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/30(月) 19:44:19.20ID:v5YMtZ310 整数値ではなくて実数値で出現回数って些か問題に無理がないか?
544デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/30(月) 19:56:43.56ID:xHVHgAPAa >>541
その解釈が恐らく正しいと思うが、元の文章は素直に読むとそうならんよなあ。
その解釈が恐らく正しいと思うが、元の文章は素直に読むとそうならんよなあ。
545デフォルトの名無しさん (ワッチョイ 7fb3-VTPF)
2018/07/30(月) 19:58:59.40ID:WDgnZ3L+0 値の大きい順に上位3位なら
VAL_T data[100];
入力値をつっこんで data をソートして data[0], data[1], data[2], を出力する
int sortcmp(const void* c1, const void* c2)
{
VAL_T d1 = *(const VAL_T*)c1;
VAL_T d2 = *(const VAL_T*)c2;
if (d1 > d2) return -1;
else if (d1 < d2) return 1;
return 0;
}
・・・・
qsort(data, num, sizeof(VAL_T), sortcmp);
for (i=0; i<3 && i<num; i++)
printf("%d: %lg\n", i+1, (double)data[i]);
・・・・
VAL_T data[100];
入力値をつっこんで data をソートして data[0], data[1], data[2], を出力する
int sortcmp(const void* c1, const void* c2)
{
VAL_T d1 = *(const VAL_T*)c1;
VAL_T d2 = *(const VAL_T*)c2;
if (d1 > d2) return -1;
else if (d1 < d2) return 1;
return 0;
}
・・・・
qsort(data, num, sizeof(VAL_T), sortcmp);
for (i=0; i<3 && i<num; i++)
printf("%d: %lg\n", i+1, (double)data[i]);
・・・・
546デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 20:08:25.88ID:aSIGzv/D0 >>544
そういう解釈も可能
そういう解釈も可能
547デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 20:10:45.97ID:aSIGzv/D0 色々な解釈が可能な文
仕様書からコードにするときには
複数の解釈が無いか気にした方が良い
仕様書からコードにするときには
複数の解釈が無いか気にした方が良い
548デフォルトの名無しさん (ササクッテロラ Sp47-SJhd)
2018/07/30(月) 20:17:02.90ID:kECQyXHfp すみません。値が大きい順です。お願いします。
549デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/30(月) 20:21:05.16ID:Ei1MMj+i0 良い試験問題だなw
550デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 20:23:08.08ID:aSIGzv/D0 ずこーっ
上位3個でqsortとか使うのはアホ
上位3個でqsortとか使うのはアホ
551デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/07/30(月) 20:25:48.38ID:r0zEs9EBa ああ。sortコマンドとheadコマンド使いたくてうずうずする。
552デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/07/30(月) 20:30:04.49ID:r0zEs9EBa 上位三つなら全部チェックすりゃあ良いんじゃないか?
ループとif文3つか?
ループとif文3つか?
553デフォルトの名無しさん (ワッチョイ 7fb3-VTPF)
2018/07/30(月) 20:39:55.63ID:WDgnZ3L+0 なんやソート使えという制限はないのか
554デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/30(月) 22:01:25.27ID:WHL4n1uA0 ココではquickselectというアリゴリズムを使いなさい
というのが正解
やっぱりなこのスレは浅はかなクルクルパーしかいないわ
というのが正解
やっぱりなこのスレは浅はかなクルクルパーしかいないわ
555デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/30(月) 22:06:32.60ID:Ei1MMj+i0 >>554
上位3名に入れそうだね?
上位3名に入れそうだね?
556デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 22:17:34.44ID:aSIGzv/D0 quickselectもアホ
上位3個なら原始的なアルゴリズムが一番速い
上位3個なら原始的なアルゴリズムが一番速い
557デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 22:18:31.28ID:aSIGzv/D0 速くて簡単でリソースも使わない
558デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/07/30(月) 22:19:07.01ID:Z5guDo9v0 課題みたいだし
・バブルソートを書けるか
・保持する要素は3つでいいことに気付けるか
をみる定型問題だろね
・バブルソートを書けるか
・保持する要素は3つでいいことに気付けるか
をみる定型問題だろね
559デフォルトの名無しさん (ガラプー KK1f-gj7S)
2018/07/31(火) 08:53:15.13ID:CiY/UjgCK アルゴリズムもわかってない
まず、問題解決のための適切なアルゴリズムの選択ができない
クイックソートは明らかに適切ではない
ここではクイックセレクトが適切
確かにこのスレには
まともな教育を受けたのはいない
基本的になにも知らなすぎる
白痴に近い
まず、問題解決のための適切なアルゴリズムの選択ができない
クイックソートは明らかに適切ではない
ここではクイックセレクトが適切
確かにこのスレには
まともな教育を受けたのはいない
基本的になにも知らなすぎる
白痴に近い
560デフォルトの名無しさん (ワッチョイ c623-53i4)
2018/07/31(火) 09:25:34.54ID:quzd6t9e0 クイックセレクトってどんなアルゴリズムなん?
元はクイックソートだけどソートしないで選択するだけって感じ?
元はクイックソートだけどソートしないで選択するだけって感じ?
561デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/31(火) 09:39:58.84ID:+/oTEV5Ja >>560
無駄な比較をしない感じ
無駄な比較をしない感じ
562デフォルトの名無しさん (JP 0H8f-+hvm)
2018/07/31(火) 11:52:18.67ID:Sty7sRvnH >>560
パーティショニングして目的の順位を含む方だけ再帰
パーティショニングして目的の順位を含む方だけ再帰
563デフォルトの名無しさん (フリッテル MM6e-qjVX)
2018/07/31(火) 12:06:11.93ID:TL2AM5+0M あー、そういうことか
564デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 12:43:01.65ID:xftY0DAGd 明らかに上位3個の抽出には向かない
565デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 12:45:03.91ID:xftY0DAGd 最大値を探すのにクイックセレクトを使うアホはいない
そういうこと
3個でも同じ
そういうこと
3個でも同じ
566デフォルトの名無しさん (ワッチョイ 6f02-FeqO)
2018/07/31(火) 13:12:03.24ID:kZi5wZ5a0 入力毎に判定。
3プールのmin以下なら無視。
maxより大きいなら順位シフト。
mid以下ならmin上書き。
それいがいはmidをminにしてmid上書き。
3プールのmin以下なら無視。
maxより大きいなら順位シフト。
mid以下ならmin上書き。
それいがいはmidをminにしてmid上書き。
567デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 13:17:53.66ID:xftY0DAGd そういう原始的なアルゴリズムが最良
568デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 13:21:36.88ID:xftY0DAGd 最悪パターンは小さい順に並んだ時だが
これでもせいぜい数倍になるだけ
クイックセレクトの最悪値は酷い
もちろん典型例でも原始的アルゴリズムの方が速い
元データも変更不要
メモリも3個分だけ
これでもせいぜい数倍になるだけ
クイックセレクトの最悪値は酷い
もちろん典型例でも原始的アルゴリズムの方が速い
元データも変更不要
メモリも3個分だけ
569デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/31(火) 13:29:26.70ID:NZiCEZHW0 1,ソート対象...data[5, 3, 12 ,8 ,6]
2,メモリをソート対象の最大値個数分確保...a[12]
3,ループでa[5]=data[5], a[3]=data[3]...と全部入れる
4.詰めてオシマイ
史上最速ソートだと思わないか?ループ1回で終わるどw
2,メモリをソート対象の最大値個数分確保...a[12]
3,ループでa[5]=data[5], a[3]=data[3]...と全部入れる
4.詰めてオシマイ
史上最速ソートだと思わないか?ループ1回で終わるどw
570デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/07/31(火) 13:45:59.26ID:j6W8yzMq0571デフォルトの名無しさん (ワッチョイ 378a-qjVX)
2018/07/31(火) 13:49:32.57ID:hTiFVqvS0 質問内容によるとソート対象は実数値なんだが
572デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/31(火) 13:49:52.96ID:NZiCEZHW0573デフォルトの名無しさん (ワッチョイ 6fe5-FeqO)
2018/07/31(火) 14:44:47.46ID:riS9l2jZ0 値をいれる必要はない。
各要素を出現回数のカウンタにすれば重複数も記録できる。
だがこれができるのは入力が整数で表せる場合だけ。
各要素を出現回数のカウンタにすれば重複数も記録できる。
だがこれができるのは入力が整数で表せる場合だけ。
574デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/31(火) 14:46:44.33ID:UZkSYp0La ま、しかし、普通の数値で100しかデータがないと今時のPCだとどんなアルゴリズム使っても人間が感じられないぐらいのスピードで実行しちゃうと思う。
わざとsleepとかするなら別だが。
わざとsleepとかするなら別だが。
575デフォルトの名無しさん (ワッチョイ 4b8a-vSp+)
2018/07/31(火) 14:57:40.88ID:PCFGvven0 今は熱対策が必要だな
576デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 17:49:39.11ID:xftY0DAGd577デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/31(火) 17:55:01.37ID:UZkSYp0La あー。1万桁のデータが100個とか。w
578デフォルトの名無しさん (アウアウカー Saef-zedw)
2018/07/31(火) 17:58:48.84ID:zWbJ6Mhya スレッドの引数に渡す構造体を↓みたいにして、
クラスのメンバ関数ポインタを渡そうとしたんですがエラーになります。
info.pfunc = test.callの部分はどう書くのが正解ですか?
typedef struct
{
void (*pfunc)();
} TInfo;
class TestClass
{
public:
void Call(void)
{
cout << "呼んだ" << endl;
}
};
main()
{
TestClass test;
TInfo info;
info.pfunc = test.call;
}
クラスのメンバ関数ポインタを渡そうとしたんですがエラーになります。
info.pfunc = test.callの部分はどう書くのが正解ですか?
typedef struct
{
void (*pfunc)();
} TInfo;
class TestClass
{
public:
void Call(void)
{
cout << "呼んだ" << endl;
}
};
main()
{
TestClass test;
TInfo info;
info.pfunc = test.call;
}
579デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/31(火) 18:03:58.43ID:Yh1Yhi2x0 最近はC言語にクラスがあるの?
580デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/31(火) 19:15:37.92ID:NZiCEZHW0 static void Call()
581デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/31(火) 20:20:43.19ID:4WdKzGL90 #include <stdio.h>
typedef struct tag_baka_t t_baka_t;
typedef int (*baka_func_t)(t_baka_t const* pt_baka);
typedef struct tag_baka_t {
char* text;
baka_func_t function;
} t_baka_t;
int call_baka1(t_baka_t const* ct_baka) { fprintf(stdout, "baka1:%s\n", ct_baka->text); return 1; }
int call_baka2(t_baka_t const* ct_baka) { fprintf(stdout, "baka2:%s\n", ct_baka->text); return 2; }
int call_baka3(t_baka_t const* ct_baka) { fprintf(stdout, "baka3:%s\n", ct_baka->text); return 3; }
int call(t_baka_t const* ct_baka) {
return ct_baka->function(ct_baka);
}
int main(int argc, char* argv[]) {
t_baka_t baka1 = { "boo", call_baka1 };
t_baka_t baka2 = { "foo", call_baka2 };
t_baka_t baka3 = { "woo", call_baka3 };
fprintf(stdout, "called baka1 -> returned %d\n", call(&baka1));
fprintf(stdout, "called baka2 -> returned %d\n", call(&baka2));
fprintf(stdout, "called baka3 -> returned %d\n", call(&baka3));
return 0;
}
C言語の構造体ならコレでいける
コレならバカでも分かるハズ
C++の構造体でも同じように書ける
typedef struct tag_baka_t t_baka_t;
typedef int (*baka_func_t)(t_baka_t const* pt_baka);
typedef struct tag_baka_t {
char* text;
baka_func_t function;
} t_baka_t;
int call_baka1(t_baka_t const* ct_baka) { fprintf(stdout, "baka1:%s\n", ct_baka->text); return 1; }
int call_baka2(t_baka_t const* ct_baka) { fprintf(stdout, "baka2:%s\n", ct_baka->text); return 2; }
int call_baka3(t_baka_t const* ct_baka) { fprintf(stdout, "baka3:%s\n", ct_baka->text); return 3; }
int call(t_baka_t const* ct_baka) {
return ct_baka->function(ct_baka);
}
int main(int argc, char* argv[]) {
t_baka_t baka1 = { "boo", call_baka1 };
t_baka_t baka2 = { "foo", call_baka2 };
t_baka_t baka3 = { "woo", call_baka3 };
fprintf(stdout, "called baka1 -> returned %d\n", call(&baka1));
fprintf(stdout, "called baka2 -> returned %d\n", call(&baka2));
fprintf(stdout, "called baka3 -> returned %d\n", call(&baka3));
return 0;
}
C言語の構造体ならコレでいける
コレならバカでも分かるハズ
C++の構造体でも同じように書ける
582さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/07/31(火) 20:29:50.71ID:qpn2fVfCd ばかばっか
583デフォルトの名無しさん (ワッチョイ 129f-lgLX)
2018/07/31(火) 20:29:50.72ID:V319xmHP0 >>578
節子それc言語やないで
節子それc言語やないで
584デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/07/31(火) 20:33:19.91ID:j6W8yzMq0585デフォルトの名無しさん (アウアウオー Saea-zedw)
2018/07/31(火) 21:00:04.51ID:YzKZx0BTa586デフォルトの名無しさん (ワッチョイ 6f9f-53i4)
2018/07/31(火) 23:06:10.75ID:ljgZb1RQ0 次からはC++の質問はC++のスレへ。
587デフォルトの名無しさん (ワッチョイ 1681-2QVD)
2018/08/01(水) 16:42:35.83ID:9yb7YrdQ0 クイックソートのwikipediaに書いてあるc言語のソースに、
【value_type tmp, pivot = med3(a[i], a[i + (j - i) / 2], a[j]); /* (i+j)/2 ではオーバーフローしてしまう */】
と書いてあるのですが、「(i+j)/2ではオーバーフローしてしまう」のオーバーフローする場合がまったくわかりません。
教えていただけますか。
【value_type tmp, pivot = med3(a[i], a[i + (j - i) / 2], a[j]); /* (i+j)/2 ではオーバーフローしてしまう */】
と書いてあるのですが、「(i+j)/2ではオーバーフローしてしまう」のオーバーフローする場合がまったくわかりません。
教えていただけますか。
588さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/08/01(水) 17:40:34.16ID:TGp/sEuFd i, jがどんな値かによる。
i == 0x7fffffff && j == 0x7fffffff
で、i + jがどんな整数値になるか考えたまえ。
i == 0x7fffffff && j == 0x7fffffff
で、i + jがどんな整数値になるか考えたまえ。
589デフォルトの名無しさん (ワッチョイ 1681-2QVD)
2018/08/01(水) 18:09:35.03ID:9yb7YrdQ0 ありがとうございます。理解出来ました。
下限上限への理解がまだまだでした…
下限上限への理解がまだまだでした…
590デフォルトの名無しさん (ガックシ 06de-fBTW)
2018/08/01(水) 18:20:26.56ID:edgaccID6591デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/08/01(水) 19:46:12.42ID:xh0kKqMn0 >>578が578のやり方でtest.Callのアドレスを渡せないのはなんでなん?理由が知りたい。
592デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/08/01(水) 20:21:01.54ID:jfFEYUCE0 >>591
まず瑣末だけど、 test.call じゃなくて &Test::Call でメンバ関数のポインタを取らなきゃいけないってのはあるけど それはいいとして
ざっくり言えば「メンバ関数の型はクラスの型を含んでて、普通の関数とは型違うから」ってとこかねー
# g++
エラー: cannot convert ‘void (TestClass::*)()’ to ‘void (*)()’ in assignment
info.pfunc = &TestClass::Call;
スレチなので 解答が不足ならば「C++相談室」か「スレ勃てるまでもないC/C++の質問はここで」辺りで願います
詳しい人いるだろうし
まず瑣末だけど、 test.call じゃなくて &Test::Call でメンバ関数のポインタを取らなきゃいけないってのはあるけど それはいいとして
ざっくり言えば「メンバ関数の型はクラスの型を含んでて、普通の関数とは型違うから」ってとこかねー
# g++
エラー: cannot convert ‘void (TestClass::*)()’ to ‘void (*)()’ in assignment
info.pfunc = &TestClass::Call;
スレチなので 解答が不足ならば「C++相談室」か「スレ勃てるまでもないC/C++の質問はここで」辺りで願います
詳しい人いるだろうし
593デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/08/01(水) 20:28:43.32ID:xh0kKqMn0 >>592
そのざっくりな説明だけでもわかりやすい。なるほどありがとう。
そのざっくりな説明だけでもわかりやすい。なるほどありがとう。
594デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/08/01(水) 20:34:52.96ID:xh0kKqMn0 ググったら安定のロベールさん出てきた。買った方がいいなこれ基礎力でえらい差が出てしまう気がしてきた
595デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/08/01(水) 20:52:58.87ID:WDXOLOCva C++の話はC++スレでやれ。
596デフォルトの名無しさん (ワッチョイ 129f-lgLX)
2018/08/01(水) 21:33:20.86ID:jJEMbL0b0 なんだ結局ロベールのステマかよしょうもねえな
597デフォルトの名無しさん (アウアウカー Saef-zedw)
2018/08/01(水) 22:23:36.11ID:ArWxfDp8a >>592
分かりやすい説明
分かりやすい説明
598デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/02(木) 00:25:44.59ID:6TeXhDWV0 オーバフロー以前に
ポインタ同士の足し算なんかしないからな(Cでは普通のやりかたではできない仕様になってる)
ポインタ同士の足し算なんかしたらおもいっきりオーバーフローすることがあるからな
つまり簡単にオーバーフローはおきうる
ポインタにはアドレスが入ってるからな
やってることは
基準になるオフセット(ここでは左端)に距離を足すだけといっていい
距離は通常ポインタの引き算で求める
距離は左端と右端の距離の半分の距離に
基準になるオフセットに足す
すると中間点になる
つまり中間点固定
しかしピボットが中間点固定だと最悪のケースの場合
クイックソートはものすごく遅くなる
で、ピボットを乱数で選択することで
その最悪のケースを回避するというやりかたもある
実際の現実のデータでそんな最悪のケースはほぼないといっていい
ポインタ同士の足し算なんかしないからな(Cでは普通のやりかたではできない仕様になってる)
ポインタ同士の足し算なんかしたらおもいっきりオーバーフローすることがあるからな
つまり簡単にオーバーフローはおきうる
ポインタにはアドレスが入ってるからな
やってることは
基準になるオフセット(ここでは左端)に距離を足すだけといっていい
距離は通常ポインタの引き算で求める
距離は左端と右端の距離の半分の距離に
基準になるオフセットに足す
すると中間点になる
つまり中間点固定
しかしピボットが中間点固定だと最悪のケースの場合
クイックソートはものすごく遅くなる
で、ピボットを乱数で選択することで
その最悪のケースを回避するというやりかたもある
実際の現実のデータでそんな最悪のケースはほぼないといっていい
599デフォルトの名無しさん (スプッッ Sd47-XO19)
2018/08/02(木) 00:29:26.39ID:c3/ck1cgd すいません初心者です、質問なんですが・・・
for文を使うときにfor(i = 1 ;i <= 5 ;i++ )でiが5より増えたときにループを抜けるようにiを1ずつ増やすというのは分かるんですが
何故ループするときにfor文のi = 1の代入の部分は無視されるんでしょうか・・・
for文を使うときにfor(i = 1 ;i <= 5 ;i++ )でiが5より増えたときにループを抜けるようにiを1ずつ増やすというのは分かるんですが
何故ループするときにfor文のi = 1の代入の部分は無視されるんでしょうか・・・
600デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/02(木) 00:39:59.52ID:6TeXhDWV0 そういう制御文だからな
そういう仕様だ
for ( [ループ前に行う演算]; [ループが処理される条件]; [次のループが処理される前に行う演算] )
i = 1;
whlle (i <= 5) {
・・・
i++
}
と同じ
どれもすべて入れても入れなくてもいい
for (;;) こう書くと無限ループになる
そういう仕様だ
for ( [ループ前に行う演算]; [ループが処理される条件]; [次のループが処理される前に行う演算] )
i = 1;
whlle (i <= 5) {
・・・
i++
}
と同じ
どれもすべて入れても入れなくてもいい
for (;;) こう書くと無限ループになる
601デフォルトの名無しさん (スプッッ Sd47-XO19)
2018/08/02(木) 00:43:35.36ID:c3/ck1cgd なるほどそういう仕様だったんですね・・・
丁寧にありがとうございますこれでようやく眠れる
丁寧にありがとうございますこれでようやく眠れる
602デフォルトの名無しさん (ブーイモ MM67-3qOU)
2018/08/02(木) 01:18:26.80ID:4HyEhcJnM >>600
continueがあるとちょっと書き換えが必要だけどね
continueがあるとちょっと書き換えが必要だけどね
603デフォルトの名無しさん (ドコグロ MM47-6jVY)
2018/08/02(木) 06:45:33.31ID:S4Pms+eVM604デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/02(木) 07:13:00.94ID:PxPZ0mdd0605デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/02(木) 09:43:21.84ID:NSwKZwuS0 for文でのcontinueの挙動を最近知ったばかりで自慢したかったんだろ
606デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/02(木) 09:48:48.46ID:Bu8RCR+yd if
for
while
do while
goto
break
continue
このくらいしか無いんだから全部覚えとけ
なぜかgotoの使い方を知らんヤツが多い
多重ループを抜けるのにわざわざフラグを使うアホとか
for
while
do while
goto
break
continue
このくらいしか無いんだから全部覚えとけ
なぜかgotoの使い方を知らんヤツが多い
多重ループを抜けるのにわざわざフラグを使うアホとか
607デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/02(木) 10:51:33.79ID:NSwKZwuS0 使い方を知らんというより
絶対使うなと刷り込まれているのが多い
なぜだと聞いても答えられないやつ全員
絶対使うなと刷り込まれているのが多い
なぜだと聞いても答えられないやつ全員
608デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/02(木) 12:55:13.95ID:Cp7uV85Za gotoは悪という教義のある宗教の信者だから仕方がない。
609デフォルトの名無しさん (スップ Sd1f-rhtP)
2018/08/02(木) 13:54:18.40ID:4fjj7SMLd 大体使わなくて済むし
使う必要がある時に
さりげなく使うもの
使う必要がある時に
さりげなく使うもの
610デフォルトの名無しさん (ワッチョイ 63ea-47xK)
2018/08/02(木) 14:17:14.48ID:TfLreE+60 全く使わない 脱出用途なら使う 飛び込みでも使う
611デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/02(木) 16:25:02.06ID:SFe9zIxEa 脱出時だけ使ってるな。
関数の途中で複数エラーが出る可能性がある場合とかは関数の最後の方にgotoさせてそこでまとめてメモリ解放などをする。
他の言語だと例外投げて try catch でなんとかするようなやつだな。
関数の途中で複数エラーが出る可能性がある場合とかは関数の最後の方にgotoさせてそこでまとめてメモリ解放などをする。
他の言語だと例外投げて try catch でなんとかするようなやつだな。
612デフォルトの名無しさん (ブーイモ MM67-2iw7)
2018/08/02(木) 18:05:39.94ID:QNpgl+2ZM 飛び込みはやめーや
613デフォルトの名無しさん (ガックシ 067f-8ycx)
2018/08/02(木) 18:57:08.60ID:yzfiTIk96 脱出はreturnにすればいい
614デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 19:01:34.31ID:xZR22mJ60 returnが複数あるのを嫌がる宗派があるからなあ
615デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:11:54.12ID:1EegAYN5d >>613
宗教の信者さん?
宗教の信者さん?
616デフォルトの名無しさん (ワッチョイ e3b3-47xK)
2018/08/02(木) 19:12:56.06ID:jJ76BOdj0 初期化(1) if (エラー) goto E1;
初期化(2) if (エラー) goto E2;
初期化(3) if (エラー) goto E3;
:
return おっけー
E3: (3) の後始末
E2: (2) の後始末
E1: (1) の後始末
return エラーじゃ
初期化(2) if (エラー) goto E2;
初期化(3) if (エラー) goto E3;
:
return おっけー
E3: (3) の後始末
E2: (2) の後始末
E1: (1) の後始末
return エラーじゃ
>>614
確かに、misra が全力でそれを嫌うのは、なにか理由があってのことでしょうか?
確かに、misra が全力でそれを嫌うのは、なにか理由があってのことでしょうか?
618デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/02(木) 19:20:08.81ID:zwgkA1lD0 >>616
俺もこれ派だわ
俺もこれ派だわ
619デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:26:51.94ID:1EegAYN5d ○○派とか言うと他の方法を知らないように感じる
臨機応変に色々の方法を使い分けるのが良い
臨機応変に色々の方法を使い分けるのが良い
620デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 19:33:21.75ID:xZR22mJ60 コーディング規約を決める偉い人の信仰心に依存する、か
621デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/02(木) 19:35:06.17ID:zwgkA1lD0622デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:41:55.73ID:1EegAYN5d コーディング規約を偉い人が決めるような会社は嫌だな
623デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:43:01.73ID:1EegAYN5d 偉い人はもっと大きな事を考えて
624デフォルトの名無しさん (ワッチョイ 6fe7-Mv1r)
2018/08/02(木) 20:10:50.62ID:Cjo1mv3c0 エラー起こす前にちゃんと検査しろ。
625デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/02(木) 20:30:01.75ID:1NEFWSVpM retryとoutは使うわ
後始末不要ならその場でreturn
後始末必要なら最後にreturn
まあこの辺の書き方より関数名、変数名、変数の数を気にして欲しいと思う今日この頃
後始末不要ならその場でreturn
後始末必要なら最後にreturn
まあこの辺の書き方より関数名、変数名、変数の数を気にして欲しいと思う今日この頃
626デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/02(木) 22:24:28.26ID:NSwKZwuS0 Cのgotoが関数から出られない、という時点で
悪しきgotoの大部分が封じられているんだけど
せっかくそうなっているのに1関数で数千行なんてやらかす
何というか吹っ切れたやつが暗黒面に墜ちていると
とんでもねえんだよ
悪しきgotoの大部分が封じられているんだけど
せっかくそうなっているのに1関数で数千行なんてやらかす
何というか吹っ切れたやつが暗黒面に墜ちていると
とんでもねえんだよ
628デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 22:43:04.03ID:xZR22mJ60 longjmpでイスカンダルまで飛びたいんですけど
何故か地球に戻ってしまいます
何故か地球に戻ってしまいます
629デフォルトの名無しさん (ワッチョイ ff12-gYkF)
2018/08/03(金) 02:01:51.21ID:TY6Sib0f0 イスカンダルのトーフ屋
630デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/03(金) 05:37:20.02ID:o9dqmONZ0 孫悟空はsetjmp/longjmpの使い手
631デフォルトの名無しさん (ワッチョイ 6fe7-Mv1r)
2018/08/03(金) 09:55:27.36ID:UvsVeV1Q0 組込み人は状態変数でワープする。
632デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 10:02:42.04ID:8VyIMXmS0 スタック上の戻りアドレスを自分で操作して、好きな場所にワープさせてた奴いたっけな
633デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/03(金) 10:12:18.20ID:9KGEdKKU0634デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/03(金) 14:40:50.79ID:9KGEdKKU0 悪しきgotoの大部分を封じるときに
巻き添えで封じられた悪しくないgotoを救う
アイテムがlongjmpだろうがよ
巻き添えで封じられた悪しくないgotoを救う
アイテムがlongjmpだろうがよ
635デフォルトの名無しさん (ワッチョイ 6fe7-Mv1r)
2018/08/03(金) 19:36:07.75ID:4c00FTp80 gotoの効率の良さは取立ての生うにの味
636デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/03(金) 20:15:47.20ID:X+nM2ZWla gotoは良く切れる刀のようなもの。
その怪しい魅力に取り憑かれダークサイドに堕ちた者は数知れず。
その怪しい魅力に取り憑かれダークサイドに堕ちた者は数知れず。
637デフォルトの名無しさん (ブーイモ MM67-3qOU)
2018/08/03(金) 20:42:44.92ID:6lqoN/6FM 昔のBASICはその鋭い刃しかなかったってことか
638デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/03(金) 20:43:55.37ID:I1YZhHYF0 GOSUBとかなかった?
639デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 20:49:49.72ID:8VyIMXmS0 fortranからの伝統芸
640デフォルトの名無しさん (ワッチョイ ffd2-ej6N)
2018/08/03(金) 21:11:54.24ID:1LNshpyd0 その昔サブルーチンの存在を知らなかった頃
gotoだけでスタックオーバーフロー的な
破綻をさせないで組んだのは結構自分の糧になってる
大人になってコーディング規約を作る側になった時
脱出のみ使用可能ってルールを作ったら
頑なに拒否するメンバーがいて仕事を外れてもらったことがる
宗教じみた反応でちょっと怖かった
gotoだけでスタックオーバーフロー的な
破綻をさせないで組んだのは結構自分の糧になってる
大人になってコーディング規約を作る側になった時
脱出のみ使用可能ってルールを作ったら
頑なに拒否するメンバーがいて仕事を外れてもらったことがる
宗教じみた反応でちょっと怖かった
641デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 22:31:36.61ID:yp/iEsny0 gotoなんかよほどの理由がない限り使わない
適切に構造化できないアホが使うとロクなことにならない
原則禁止でいい
適切に構造化できないアホが使うとロクなことにならない
原則禁止でいい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- 高市が早くあの発言を撤回しないと、中国からもっと大きな制裁が飛んでくるぞ [805596214]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【画像】髙市さん「無職のシンママ支援を手厚くするため、世帯年収900万円以上の控除をカットします🙂」 [881878332]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
