C言語なら俺に聞け 150

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウクー MM57-IE4z)
垢版 |
2019/02/06(水) 13:39:03.21ID:c4bnQMl3M

次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。

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言語なら俺に聞け 149
https://mevius.5ch.net/test/read.cgi/tech/1540731704/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/02/20(水) 20:08:03.07ID:/pFWY/nZ0
>>209
レインボーテーブルはハッシュの検索高速化のための技術だと認識してたけど、素数を利用した暗号鍵の
Decryptにも実用レベルで応用できるのか?
2019/02/20(水) 20:23:16.84ID:jAMIqMc60
一般的なコンピューターでは素数暗号の解読は困難だね。A5/1 Security Projectが進めばどうなるかわからないが。
2019/02/20(水) 20:25:26.46ID:jAMIqMc60
Windowsのユーザーアカウントくらいなら数日あれば。。。
213デフォルトの名無しさん (アウアウクー MM7b-3QuV)
垢版 |
2019/02/20(水) 20:27:13.73ID:EKI9LXSlM
>>192
「100以下の素数を表示するブログラムを作りなさい」

これ素数の定義が問題に記載されておないとただの数学の問題になってしまうな。
2019/02/20(水) 20:30:13.22ID:P8vN2pc30
>>195
>整数論の基礎
素数だけで構成する積による表現がすべて自然数について存在すること、ならびに、この積の表現が一通りであることを証明してください


>整数論の基礎
単に掛け算の交換則だけでいいのでは?
2019/02/20(水) 20:31:37.35ID:P8vN2pc30
>>197
エラトステネスの篩にも欠点があります。
篩の大きさだけ広大なメモリ空間を確保しなければなりません
限られたメモリ容量で超巨大な素数を求めることは可能ですか?
2019/02/20(水) 20:32:29.86ID:P8vN2pc30
>>202
>3以上の素数は奇数であること。
>n以下の素数を調べるときは、ルートn以下の約数を調べればいいこと。

あえて聞きます、証明はどのようなものに?
2019/02/20(水) 20:33:15.91ID:P8vN2pc30
>>205
それは表示した数が、果たして素数かどうか、を示してはいませんよね
2019/02/20(水) 20:33:54.09ID:P8vN2pc30
>>206
RSA 暗号はもう古いです、今は elgamal 暗号がトレンドです
2019/02/20(水) 20:33:59.13ID:jAMIqMc60
>>215
「ある整数の倍数の存在が周期的であること」を利用すれば、メモリーを節約できる。
2019/02/20(水) 20:34:54.39ID:P8vN2pc30
>>207
>素数を少ない計算量で見つける事
個人的には、素数の原始根を求める方法が知りたいです、いまんところ力技で解くしかないかと
2019/02/20(水) 20:37:58.24ID:P8vN2pc30
>>219
たしかに 2 と 3 の公倍数である 6 をもとに
6n + 1, 6n + 5 だけをテーブルに載せる、とかは可能ですね
私はやったことがない、それはどうでもいいとして、これをコード化(coding-realized) したのも見たことがありません、いつか誰かやるだろうと思っていたんですが、なかなか表に表れませんね
2019/02/20(水) 20:44:12.93ID:jAMIqMc60
>>216
3以上の素数pが奇数でない、すなわち偶数であれば、偶数の定義より、pは2で割り切れるが、pに2以外の約数があれば素数でない。矛盾。□
2019/02/20(水) 20:48:00.19ID:ZC/ijL840
>>201
サーバー側ならこれが攻守最強だな。隙がねぇ……
2019/02/20(水) 20:56:41.09ID:jAMIqMc60
>>216
時間切れ。すまん。
2019/02/20(水) 20:59:36.97ID:P8vN2pc30
>>222
>pに2以外の約数があれば
ここがおかしい
2019/02/20(水) 21:00:10.59ID:jAMIqMc60
>>221
素数プログラミングの競技に参加してやってみれば?
2019/02/20(水) 21:01:27.72ID:jAMIqMc60
>>225
「約数2があれば」に訂正。
2019/02/20(水) 21:02:29.11ID:P8vN2pc30
>>227
うむ、それでいい感じですね
2019/02/20(水) 21:06:35.67ID:jAMIqMc60
倍数の周期性を使えばBuzzFizz問題の応用(多重化)でメモリーが節約できるはず。
2019/02/20(水) 21:10:58.63ID:jAMIqMc60
バッチ処理で素数生成するなら、途中から計算を再開できるようにしておくとよい。
2019/02/20(水) 21:12:34.79ID:jAMIqMc60
>>216
「素数生成 ルート」でWeb検索。
2019/02/20(水) 21:39:38.70ID:IdoLDUDuM
巨大な素数の一覧
https://ja.wikipedia.org/wiki/%E5%B7%A8%E5%A4%A7%E3%81%AA%E7%B4%A0%E6%95%B0%E3%81%AE%E4%B8%80%E8%A6%A7

1億桁を超える素数を発見すれば懸賞金が手に入るぞ
お前ら頑張れ
2019/02/20(水) 22:33:31.62ID:bRSP0nNv0
大学の授業でやってるがわけわからん
2019/02/21(木) 04:51:28.69ID:k7mDakXF0
「3以上の素数は偶数ではない」って、
「2以外の2の倍数は素数ではない」と言い換えられるよね。
対偶命題の真偽は等しい、ってことで。
「3以上」「2以外」の部分の処理がちょいと面倒かも知れんが。
素数の定義から自動的に成立する、トートロジーって気もする。

実用的には、チェックすべき対象が一気に半減するから
決して役に立たないつまらない事実とは言わないけど。
2019/02/21(木) 05:47:41.57ID:0ZBMuCH70
なぜ「nの倍数」のうち「2の倍数」だけを特別視するんだ?
2019/02/21(木) 06:56:30.22ID:k7mDakXF0
たぶん2の倍数に特別に「偶数」って名前がついてるから。

て言うか「2の倍数」を「偶数」と呼び替えるせいで
「3以上の素数は偶数ではない」がそれらしい命題に見える心理的効果。
2019/02/21(木) 07:07:07.36ID:0ZBMuCH70
じゃあ例えば3の倍数を俺数と呼ぶことにすれば
「5以上の素数は俺数ではない」がそれらしい命題に見えるわけか
2019/02/21(木) 09:23:02.63ID:hmZcoRew0
>>237
実際にそういう理屈で俺数をちゃんと名前つけて定義してた気がする
2019/02/21(木) 10:06:27.81ID:vm8j2cEaM
https://ja.wikipedia.org/wiki/%E5%9C%8F%E8%AB%96

集合論的な数学理論の構成では集合やその元に対して写像や関係を導入し、それらが満たすべき公理を列挙する。その公理を満たすような「構造」を持った個々の集合が理論の具体的な実現を示していて、それら一つ一つの実現に共通の性質が公理から演繹的に証明される。
2019/02/21(木) 10:43:14.10ID:hP/J64Xh0
10進数で扱ったときに下一桁だけで素数でないか判定できるし
2019/02/21(木) 11:52:49.43ID:TYXtdJfXM
https://ja.wikipedia.org/wiki/%E4%BB%A3%E6%95%B0%E4%BD%93

一般には、素数は代数体の整数環の素元として定義される(そこでは反数などの同伴なものも素数に含まれる)。このため、有理整数環での素数は有理素数と呼ばれることもある。
自然数あるいは実数の中での素数の分布の様子は高度に非自明で、リーマン予想などの現代数学の重要な問題との興味深い結び付きが発見されている。
2019/02/21(木) 12:21:11.52ID:9bhJdGzC0
>>240
意味ないじゃん
下位一桁で素数か判定できるなら有り難いが
2019/02/21(木) 12:24:22.12ID:ZaAjcalq0
2の倍数は1個となりにあるけれど3の倍数は2個となりにあるわけじゃないからだろ
2019/02/21(木) 12:26:58.45ID:hP/J64Xh0
世界の半数の人間を一気に殺せるとしたら、スゴイ兵器だろう
2019/02/21(木) 12:45:09.74ID:AfMCgFa5H
もういいからいいかげんCの話しろよ
2019/02/21(木) 12:48:37.97ID:FW7y2HsrM
https://ja.wikipedia.org/wiki/%E5%90%88%E5%90%8C%E7%AE%97%E8%A1%93

ガウスの貢献はこの集合、今日整数の合同類 の環 ℤ/nℤ と呼ばれる代数系、の構造を詳らかにするものであった。第一に加法に関して考えれば、これは 1 を生成元とする巡回群を定める。第二に乗法に関しては、これは法 n に依存して性質が異なり、法 n が素数ならば体が得られる。このような方法により、計算の記述は簡素化される。
2019/02/21(木) 13:04:43.82ID:SFQD6HMZx
やっぱり理系はみんな素数が好きなのねん
2019/02/21(木) 13:23:11.53ID:ZaAjcalq0
平方剰余の相互法則は奇数の素数でしかなりたたないから2は特別らしい
249デフォルトの名無しさん (ワッチョイ a95f-qM0Q)
垢版 |
2019/02/21(木) 20:15:32.30ID:lsmx9sV60
ダメプログラマだらけだな。
2019/02/21(木) 20:25:59.92ID:m+qFL4AC0
プログラマ以前のただのC言語の評論家の集まりだからな
数学の素養どころか一般的な定番アルゴリズムすら理解しているのか怪しいのがいくらでもいる
251デフォルトの名無しさん (ワッチョイ a95f-qM0Q)
垢版 |
2019/02/21(木) 20:29:14.38ID:lsmx9sV60
「100までの素数」は単にロジックが書けるかどうかの話で、素数の話ではないだろうに。
2019/02/21(木) 20:33:10.06ID:m+qFL4AC0
配列に数字を並べて表示するだけの処理の何処にロジックがあるのやら
あれではただのゴリ押しだ
2019/02/21(木) 20:52:13.17ID:S9yUyDkx0
誰かがこの問題から実務向きかどうかがわかる、なんて言うからいけない
2019/02/21(木) 21:00:34.34ID:3Jj6vI7vd
最近知ったことだが、clangとclang++には、-pedantic -Wallの他に-Weverythingというオプションがある。これを使えば最大限に警告してくれる。
255デフォルトの名無しさん (ワッチョイ a95f-qM0Q)
垢版 |
2019/02/21(木) 21:25:46.65ID:lsmx9sV60
とりあえず、Cできない娘は受付時に言うとか、ホームページにわかるようにしてくれないとキツイ。
2019/02/21(木) 21:49:34.71ID:hP/J64Xh0
ロジックはアタマの中に
2019/02/22(金) 11:10:49.03ID:Wvys6/Wz0
>192
「オッケーグーグル、『100以下の素数を表示するブログラム』を端末にダウンロードして!」
258デフォルトの名無しさん (アウアウウー Sa21-0aQJ)
垢版 |
2019/02/22(金) 15:27:06.91ID:bcwEHSMYa
С言語
2019/02/22(金) 15:32:39.50ID:MGDdaAr30
偶素数と奇素数
2019/02/22(金) 21:00:52.74ID:JBg0shn90
C言語とか勉強じゃなくて仕事だったり動くもの作らないと覚えられないと思うんだけど
何をすることでC出来るようになったの?
2019/02/22(金) 21:11:58.58ID:FtBJuZ9s0
勉強だったとしても動くもの作り続ければだろうよ
262デフォルトの名無しさん (アウアウウー Sa21-0aQJ)
垢版 |
2019/02/22(金) 21:52:23.52ID:/efpuxREa
納期までに完成させないと大変な事になるというスリルとサスペンスが人間の能力を引き出すのです。
しかしこれは恐怖から逃れようとする行為なので恐怖がなくなる、または度胸がついてしまったらそこで終わりです。
2019/02/23(土) 16:48:48.66ID:RKMUv84W0
#defineじゃなくてconstすすめてくるやつは机上の空論だな
constつかったら最適ななしにするとswitchのラベルにつかえないじゃないか
2019/02/23(土) 17:14:59.00ID:7GKXwuwj0
>>263
C++ では const 変数を case ラベルに使えるから、混同してる人かも。
2019/02/23(土) 17:46:54.59ID:7GKXwuwj0
C なら「名前のついた整数」は enum だね。
スコープ効くし case のラベルにも配列定義の要素数の指定にも使える。
2019/02/23(土) 20:56:53.69ID:Ez7Plxd90
Cのenumはenum-baseがないから
どでかい定数には使えない
2019/02/23(土) 21:13:59.35ID:tyf/JAHu0
enumはあくまで値の大小は関係なくユニークな識別子であって、大きな値が問題になるような用途に使うのはいかがなものか。
2019/02/23(土) 21:41:02.60ID:W1FUX4jY0
プリミティブな定数以外のスイッチって
ものすごく気持ち悪いんだが

長大数渡して色々工夫してスイッチするのと
似たようなことコンパイラがやらなきゃいかんよね
2019/02/24(日) 07:48:44.15ID:RgZ/0jGo0
C の enum は「互いに区別できる一群の整数値の組」で、
具体的な値にさほど拘らない用途で使うべき、っていう
言語機能のそもそも論を言われると、その通りなんだよな。

その意味では case のラベルに enum の値を使うのはいいけど、
配列定義の要素数で使うのは便利にコキ使いすぎ、って感じか。
実際のところ enum で表現できる値の範囲が、
配列の要素数指定に使える範囲(size_t)と一致するか、という
疑問を持って調べたけど、いまいちハッキリせず今も解消してない。
まぁ、それ言うと case ラベルで受け入れられる値の範囲が
enum の範囲と同じか、についても確信ないんだが。


(権威主義に逃げ込む気はないと事前に言い訳した上で)
#define のマクロ値の代わりに enum の値を使うってのは、
カーニハンとパイクの『プログラミング作法』第1章、
「1.5 マジックナンバー」で紹介されてることを付記しておく。
2019/02/24(日) 08:31:42.99ID:fxLM3JpE0
enum
{
a = 4294967297
};

int main()
{
printf("%d\n", sizeof a);
printf("%llx\n", a);
}

gcc:
8
100000001

cl:
4
1

どっちが正しい?
とりあえずはコケるほうに合わせるが
2019/02/24(日) 08:40:26.06ID:7CaxIYof0
以前に組込み用途の8bitマイコン用C言語を使っていた時の話
CPUの機能的にint型は8bitだった
ところが多条件の分岐処理でif-elseを使った時よりenum変数のswitch文使った方が明らかにパフォーマンスが
低下して問題になったことがあった
訳が分からず逆アセンブルして調べてみるとenum変数は何故か16bitに展開されていて条件判定毎に型変換が
発生していたことが原因だっということがあった、という昔の思い出
2019/02/24(日) 13:48:01.77ID:gUJTdPsI0
>>271
int が 8bit という時点で仕様に反しているので
整数演算のいろんなところで暗黙に int に変換してから
計算する C のルールが破綻するんじゃなかろうか。

処理系が必ずしも言語の規格に完全準拠する必要はないけど、
基本的な部分で変えちゃうとどういう挙動になるのか
予想しづらいよな。
2019/02/24(日) 14:00:01.86ID:7CaxIYof0
charがその処理系の最小bit数であることだけは仕様に明記されてるけど
それ以外の整数型は大小関係だけが規定されていてintそのものに
具体的なbit数の決まりはなかったんじゃなかったっけ?
実際その時もchar、short、intが8bitで、longが16bitだったと思う
2019/02/24(日) 14:04:53.91ID:gUJTdPsI0
>>270
C ではこういうルールになっている
・ 列挙定数の値を定義する式は int 型で表現可能な値を持つ整数定数式でなければならない
・ 列挙体 (列挙型のオブジェクト) の大きさは要素の全てを保持可能な大きさをもつ
 がその選択は処理系定義である。
・ 列挙定数の型は (列挙型ではなく) int である

つまり、 C では列挙体と列挙定数の型が異なり、
列挙定数の型は int そのもの。
それは単に int の大きさがそれぞれ違うってだけじゃないの?
だとするとどちらの挙動も仕様通り。

(余談だが C++ では列挙定数の型は列挙型なので、 C とは少し解釈が違う。)
2019/02/24(日) 14:05:53.36ID:yQAH7TUL0
>>273
気持ちとしては賛成したいんだが
残念なことにISO/IEC9899 5.2.4.2.1 Sizes of integer types <limits.h>に、
INT_MAX +32767と書いてあるんだ
腹立たしいクソ規定だがそうなっている
2019/02/24(日) 14:15:23.84ID:gUJTdPsI0
>>273
ビット数という形ではないが、
limits.h で定義される各整数型が表現可能な数値の範囲を表すマクロ
についての最低限度の値という形で間接的に定義されている。
C99 だと 5.2.4.2.1 にある。
int は実質的に 16bit は必要。
2019/02/24(日) 15:01:36.58ID:eMMK67XW0
整数型をワードより大きくしなきゃいけない
なんてなったら使い物にならんよな
2019/02/24(日) 16:23:47.05ID:9mv8IHEdd
確かにint型は規格的には最低16bit必要みたいだなぁ

C11 N1570 draft
5.2.4.2.1
―int型オブジェクトの最低値
INT_MIN -32767 // -(2^15 - 1)
―int型オブジェクトの最大値
INT_MAX 32767 // 2^15 - 1
6.2.5.5
「単なる」int型オブジェクトは実行環境のアーキテクチャにとって自然な(<limits.h>ヘッダに定義されたINT_MINからINT_MAXまでの任意の値を含むに十分大きい)サイズをもつ。
2019/02/24(日) 16:36:11.63ID:BJ3WFlaM0
>>271
そのせいで組み込みでswitch使うな伝説が発生したんだな
逆に16ビット以上なら使っても問題ないということか
2019/02/24(日) 16:49:38.07ID:7CaxIYof0
言語規格そのものというより標準ライブラリの都合というかヘッダーの仕様だけのような気がするけど
limit.hで最大値と最小値を規定するのであれば-128と127を宣言すればintの範囲を変更した実装も可能ではあるな
厳密には問題があるかも知れないけどC99準拠の実装と言うことでお茶を濁している処理系はあり得そうだ
281デフォルトの名無しさん (アウアウウー Sa21-sU2d)
垢版 |
2019/02/24(日) 19:23:23.70ID:iK4D+UQia
>>279
組み込み市場的に8ー16bitが主流だけどな。
2019/02/24(日) 22:09:42.91ID:8/luM3Zk0
一時期、組み込みもLinuxに席巻されそうになったこともあるけど昨今のIoTブームで16bit以下の超省電力が復権してきたイメージあるわ。
2019/02/24(日) 22:14:44.36ID:uaNZoE2Ca
でもそういう機器ってメモリの読み書きしかすることねえもんな。
あんまりおもろない。
2019/02/24(日) 22:24:41.13ID:7CaxIYof0
組み込みではLinuxどころかOSすら搭載してないシステムも多いよ
ネット家電なんかの一部を除けばエアコン、冷蔵庫、洗濯機など家電製品の殆どはOSもファイルシステムもネットワークスタックも無縁のスタンドアローン動作
電源投入リセット後ひたすら処理ループを回すだけ
CPUコアは8bitか16bitでRAMは数KB、ROMは数十KB程度のワンチップマイコン
2019/02/24(日) 22:29:53.46ID:7CaxIYof0
メモリの読み書きよりもIOポートを制御するのがメインの仕事
2019/02/24(日) 22:33:57.82ID:2wDVhIfR0
殆ど電卓だな
2019/02/24(日) 22:41:13.06ID:7CaxIYof0
電卓ほど単純ではないけどね
まともにフィードバック制御を実装するにはそれなりの演算負荷は掛かる
センサー入力に応じて出力を迅速安定に目標に追従させるには裏では予測判断も必要
マイコン使っている以上は単調なON/OFF制御では無いよ
2019/02/24(日) 22:49:58.22ID:gSQz1x8q0
欲深い人間のことだからどうせすぐいろんなことをさせたくなる
2019/02/24(日) 23:23:28.26ID:wTcw/8fo0
IoTなら制御はサーバー側じゃないの?
2019/02/24(日) 23:28:06.97ID:2wDVhIfR0
Fog computing がキーワードだそうだ
2019/02/25(月) 00:12:03.18ID:dk4D1NQWa
IOポート制御とメモリ読み書きの違いがわからない
2019/02/25(月) 00:27:51.25ID:LzC1voP10
メモリーバスが I/O につながってることもあるしな。
2019/02/25(月) 06:19:38.59ID:/Zb+jKgT0
>>291
IOポートを弄るにはそれぞれのSFR(特殊機能レジスタ)を操作する
一般的なメモリマップトIO方式ではSFRはCPUの特定のアドレス空間にマッピングされてる
Cプログラムからはそのアドレス空間をそれぞれ適当な変数に割り当てて基本的にはビット操作で制御する
SFRのイメージが分からなければ適当なマイコンのデータシートでも見てみるとある程度は分かると思うよ
参考として電子工作で有名なPICマイコンのサイト貼っておくので見てみるといいよ
2019/02/25(月) 06:22:12.63ID:/Zb+jKgT0
ごめん
リンク貼り忘れた
https://www.microchip.co.jp/download/index.php
2019/02/25(月) 07:08:32.40ID:YApQAEs00
>>274
だな
あのあとgcc -pedanticとやってみたら
ちゃんと警告出たわ
2019/02/25(月) 07:37:13.02ID:p9N2Idf00
組み込みマイコンでI/O空間がx86みたいに別なマイコンってあるかな
2019/02/25(月) 07:40:18.98ID:dk4D1NQWa
>>293
だから、区別ないじゃん
2019/02/25(月) 07:52:33.64ID:/Zb+jKgT0
メモリ(RAM)に割り当てられた変数は演算とその結果に意味がある
IO(SFR)に割り当てられた変数はビットのR/W操作そのものに意味がある
SFR変数上で演算操作を行うとほぼ確実に誤動作、暴走する
2019/02/25(月) 07:58:55.56ID:51Y60IO10
>>297
I/Oポートの挙動はメモリと同じとは限らない
書き込みと読み出しが別のものに繋がっていることもある
volatileは本来このためにある
2019/02/25(月) 08:52:03.76ID:OZaxYFd40
本当か?
揮発性だぞ
2019/02/25(月) 08:52:04.55ID:QDSDQN71x
>>296
あるよ。AVRはメモリマップされたIO空間にin/out命令で効率的にアクセスできる。
2019/02/25(月) 10:42:31.86ID:KHsK1sBo0
>>299
READアクセスでSR、WRITEアクセスでCRというケースは珍しくないが
なんで突然volatileが出てくるんだ? 全然関係ないぞ
2019/02/25(月) 11:12:53.53ID:/Zb+jKgT0
Read動作を確実に実行するためだろう
プログラム上はSFR変数からダミー変数への代入にしか見えないので何の演算にも関与しないと判断されて
コンパイル時の最適化で処理が削除される恐れがある
SFR変数はvolatile宣言しておくのが普通
2019/02/25(月) 11:41:24.89ID:KHsK1sBo0
それはREADの回数やタイミングの話だろ
READとWRITEで対象が異なる場合があることと何の関係があるんだよ
2019/02/25(月) 11:52:53.97ID:/Zb+jKgT0
そこに拘っていたのか
てっきりメモリとIOによる変数の扱いの注意点のことかと思っていたわ
2019/02/25(月) 11:58:40.63ID:QDSDQN71x
volatileなしだと、同じsfrにwriteした直後にreadすると最適化により実際にはreadされないことがある。
2019/02/25(月) 12:03:53.38ID:s/jxdMxMa
メモリとIOは違うっていっても、要は裏でなんかやってるだけだし。
だからvolatileなんて話も出てくる。
2019/02/25(月) 12:15:38.73ID:KHsK1sBo0
>>305
他に何に拘っていると言うんだ?

> 書き込みと読み出しが別のものに繋がっていることもある
 ↑
 何の関係があるんだ
 ↓
> volatileは本来このためにある

答えるか撤回かどうなんだ
2019/02/25(月) 12:41:00.22ID:QDSDQN71x
>>308
>>306
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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