- 1 名前:デフォルトの名無しさん [2012/05/04(金) 04:05:26.52 ]
- C言語の入門者向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 100 toro.2ch.net/test/read.cgi/tech/1333108892/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 157代目 toro.2ch.net/test/read.cgi/tech/1335517816/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/ ideone.com/
- 445 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:40:08.01 ]
- >>443
VS側はコンパイラのオプションでエラーを出さない様に出来る。
- 446 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:40:29.59 ]
- >>438
配列名は式中では配列の先頭要素へのポインタとなる。 ただしsizeof, &のオペランドになったときは例外。
- 447 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:59:34.84 ]
- >>444
すべて仰るとおりです。すごいですね!! VisualStudioでcppで作成し、mainにreturn 0;を追加したところコンパイルできました。ありがとうございました。 >>445 ありがとうございます。 オプションがどこにあるかよくわからなかったので、cppとして作成しました(^_^;)
- 448 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:01:41.01 ]
- いえいえ
- 449 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:32:19.49 ]
- いいぇいいぇ
- 450 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:35:06.28 ]
- イェイイェイ
- 451 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:36:05.52 ]
- 君と ウェイ! ウェイ! ウェイ! ウェイ!
- 452 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 23:57:44.68 ]
- いっつだってワークワーク
- 453 名前:デフォルトの名無しさん [2012/05/16(水) 04:02:50.68 ]
- 通常正であるコストを、無限のコストとして-1を設定したときに
コスト同士の比較で、コストが最小となるものを求めるときに //cost1,cost2,minはint min=cost1; if ((unsigned)min > cost2) min=cost2;・・・(1) 上のif文と(完全にではないですが)同等の条件として if(min == -1 || (min > cost2 && cost2 != -1) ) min = cost2;・・・(2) (1)のような(unsigned)-1 = INT_MAXを使った書き方は推奨してよいものなのでしょうか? 標準Cでは、符号あり→符号なしの変換はbit列を維持することが保証されているようですが、 具体的には(unsigned)-1のような使い方は、一般的に使われているのかが知りたいです
- 454 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 04:08:33.93 ]
- Cの仕様としては保証されないが使われてるね。
- 455 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 04:09:27.02 ]
- そもそも
(unsigned)-1 = INT_MAX が成り立つ保証がない。
- 456 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 04:40:31.68 ]
- >>454
裏技みたいなものなのですかねえ 手持ちのC参考書には signed X → unsigned Yにおいて X=Y、x < 0 のとき y=x + (1 + Y_MAX) と書かれており、 調べてみたら JIS X3010 www.jisc.go.jp/app/pager?id=90394の 6.3.1.3項にも同様のことが書かれているのですが JIS規格と、Cの仕様って必ずしも一致しないのですかね
- 457 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 11:06:09.34 ]
- entryの宿命はよ。
- 458 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 11:15:43.81 ]
- >>456
それは見えないが処理系依存と書いてるんじゃないのか? そもそも符号付整数を1の補数であらわすのか2の補数であらわすのか あるいは別の形式かも処理系依存だろ。
- 459 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 13:15:05.20 ]
- だろ。!
- 460 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 13:23:31.11 ]
- >>458
しつこい
- 461 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:03:02.10 ]
- 理解できないからって恥ずかしいやつだな。
- 462 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:16:53.92 ]
- 処で、どっかにLinuxのtmpfile()のソース落ちてないかな。
- 463 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:18:45.67 ]
- このスレと何の関係が?
- 464 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 14:22:53.45 ]
- Cの標準関数やから。
- 465 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 15:27:35.21 ]
- handle closeとファイル消去の紐付け方法を
判んない思いつけないんでしょ462は
- 466 名前:462 mailto:sage [2012/05/16(水) 16:34:47.06 ]
- いや、単にファイル名をどう生成しているか知りたいだけ。
creat()してすぐunlink()していることは想定内。
- 467 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 20:13:55.04 ]
- >>462
オプソなんだからそりゃどっかにあるだろ glibcでググればいいと思う
- 468 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 22:39:20.09 ]
- Cの仕事ってあんの?
- 469 名前:デフォルトの名無しさん mailto:sage [2012/05/16(水) 23:23:43.25 ]
- うん
- 470 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:36:39.95 ]
- C言語のプログラム上からpythonのプログラムを実行したいです
- 471 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 00:47:19.40 ]
- はい、すれば良いかと思います。
- 472 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 08:29:37.48 ]
- >>467
あ、盲点だった。 ってことで、早速glibcのgitwebを見てみた。 stdio-common/tmpfile.cを見たら、中で__gen_tempname()を呼んでいた。 で、tempname.cを見ると……中身が__set_errno()だけだった(TT
- 473 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 10:57:56.52 ]
- >>471
教えてください
- 474 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:00:25.25 ]
- LinuxでCの勉強をする場合定番のコンパイルは何ですか?
VC++2010無料版のcl.exeしか知りません
- 475 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:06:32.50 ]
- つgcc
- 476 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:10:58.93 ]
- わかりました
gccで勉強します
- 477 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 11:30:36.12 ]
- >>473
system("python yourProgram.py");"
- 478 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 17:35:04.16 ]
- gccしか使わなくね?
- 479 名前:デフォルトの名無しさん [2012/05/17(木) 18:59:16.56 ]
- 一様に乱数が発生していることを検証するプログラムを
コードに追加すること. 確認方法は,生成した乱数の発生度数を階級毎にカウントし, その各度数を表示する. また,発生した乱数が一様になっていない場合は, 改めて一様乱数を生成する部分の修正を行うこと.
- 480 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 19:50:13.35 ]
- いえいえ
- 481 名前:デフォルトの名無しさん [2012/05/17(木) 20:47:00.97 ]
- ある数列が一様乱数であることの証明ってすげー難しそう
どのような予測も未来永劫すべて退けるってどうやるんだ
- 482 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 20:59:13.93 ]
- それが出来ればチューリング賞もフィールズ賞も夢じゃない!
ガンバれ! おれはやらんけど!
- 483 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:19:24.54 ]
- ふう
はら減った
- 484 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:50:07.96 ]
- ideone.com/HE5Qg
剰余を求める関数で、 このシフト演算の意味がわからないんですが、 何のためにやるのでしょうか
- 485 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 21:53:34.13 ]
- >>484
2進法で筆算してみるよろし
- 486 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 22:39:59.41 ]
- うん
- 487 名前:デフォルトの名無しさん [2012/05/17(木) 23:30:52.93 ]
- #include<stdio.h>
int main(){ int num1, num2, num3, num4; printf("整数1 : "); scanf("%d", &num1); printf("整数2 : "); scanf("%d", &num2); num3 = num1/num2; num4 = num1-(num3*num2); printf("%d を %d で割ると %d 余り %d\n", num1, num2, num3, num4); printf("%d を %d で割った小数値は %f\n", num1, num2, (float)num3); return(0); } で、num1に17、num2に5と入力して、%fの所に3.400000と表示したいんだけど3.000000と表示されるのは何故?
- 488 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:34:15.70 ]
- なんでintで割り算してんだアホ
- 489 名前: ◆QZaw55cn4c mailto:sage [2012/05/17(木) 23:38:47.15 ]
- >>487
ideone.com/bcE0W
- 490 名前: ◆QZaw55cn4c mailto:sage [2012/05/17(木) 23:39:46.81 ]
- >>488
×なんでintで割り算してんだ ○なんでint を intで割り算してんだ
- 491 名前:デフォルトの名無しさん [2012/05/17(木) 23:41:34.86 ]
- >>489
キャスト(だっけ?)について教えてくれますか?
- 492 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:54:38.10 ]
- intを変えろ
あとは分かるな
- 493 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:54:49.30 ]
- 以下は同一ですか?
sizeof(array) / sizeof(*array) sizeof(array) / sizeof(array[0])
- 494 名前:デフォルトの名無しさん mailto:sage [2012/05/17(木) 23:58:13.02 ]
- >>493
Just try and you can find out.
- 495 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 00:05:37.70 ]
- ためしてみな、そうすればわかるさ
- 496 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 01:12:29.68 ]
- >>487
floatは必要に迫られない限り使うのは避けよう。 %fより%gを使おう。
- 497 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 01:27:00.23 ]
- >>481
このケースだと階級毎にカウントとか書いてるんだから 単純にカイ二乗検定すればいいんでしょ 数列のテスト方法は大量にあって、TAOCPはそれだけで一章使ってた気がする
- 498 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 07:50:21.45 ]
- >>496
やはり風呂よりdouble?
- 499 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 07:58:11.20 ]
- >>496
>%fより%gを使おう。 これはお勧めできない。%g は値によって出力結果が大幅にかわり事前に予測できないのが非常に問題。 安易につかって破綻し泣ごにょごにょごにょ
- 500 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 09:52:36.05 ]
- あほすぎwww
- 501 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:15:14.49 ]
- >>499
printf("%f, %f\n", 1e10, 1e-10); printf("%g, %g\n", 1e10, 1e-10); どっちが自然?
- 502 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:18:03.75 ]
- C言語の入門者向け練習問題サイトってありませんか?
- 503 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:19:05.43 ]
- 問題1)1から10までの数値をランダムに生成せよ
問題2)大吉 中吉 末吉 吉 凶を表示するおみくじを表示せよ こんなやつ
- 504 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:22:22.34 ]
- ステマかよ
宣伝したいサイトが出てくるまで粘るんだろどうせ アホはさっさと立ち去れよ
- 505 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:28:32.60 ]
- 出た出たw過剰反応w
- 506 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:34:05.83 ]
- どっちにしろここで聞くよりググった方が早いな
- 507 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 11:34:50.33 ]
- とりあえず
Project Euler はやっておくかな
- 508 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:15:10.47 ]
- ダメなサイトなら紹介してる。
ttp://www.nslabs.jp/c_pointer.rhtml
- 509 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:15:55.70 ]
- プロジェクトオイラーは簡単な奴なら入門レベルでも解けるけど、
難しいのだと数学的知識がないとどうにもならない
- 510 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:25:33.14 ]
- すみません構造体のことで教えてください、あるサイトで
main.h struct Images{ int hero; 以下省略 }; main.cpp int LoadFiles(){ //ファイル読み込み処理をここに書く g_images.hero = 以下省略 } とあるんですが、「images.hero」でそのまま使えないんでしょうか? なぜg_を付けているのか、何の意味があるのか分からないです
- 511 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:44:34.07 ]
- >>510
それだけ提示されても何のことやら。めんどくさいから全部貼れ。 ついでに質問もよく判らん。 まぁ、g_で始まっているからにはグローバル変数とでも言いたいのではないかと思うが。
- 512 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:52:00.02 ]
- 変数名とタグ名の区別がついてない
- 513 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 12:57:17.48 ]
- タグ名はImagesだぞ。目は大丈夫か?
- 514 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 13:16:51.40 ]
- 標準ライブラリの質問はココで質問してもいいですか?
- 515 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 13:54:09.79 ]
- >>510
構造体はただの鋳型 使うにはそこから変数などの形で実体を作る必要がある たぶんソースのどっかでg_を付けた名前で変数宣言してるだろ? >>514 おk
- 516 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 15:34:27.50 ]
- お前らのおかげですっげーお手軽なお遊びゲームできたwwww
数字の1を入力するだけで戦闘できて、しかも自分のHPは減らない、うは面白www これで毎日暇潰せるwww お前ら本当ありがとうwww しんでくる
- 517 名前:デフォルトの名無しさん [2012/05/18(金) 16:04:56.62 ]
- argvの内容を4番目以降消して、
(argvの要素数は4以上あるものとする) 後でその領域を使えるようにしたいです。 void main(int argc, char* argv[]) { while (argc>3) argv[--argc]=NULL; } これでは文字列の内容がちゃんと消去されてないし、 指していたメモリが開放されていないと思うのですが、 正しい方法を教えてください。
- 518 名前:デフォルトの名無しさん [2012/05/18(金) 16:19:08.24 ]
- 二次元配列を渡す時の仮引数の書き方を教えてください。
二次元配列を渡す時、受ける側はポインタの配列で受けるのでしょうか。 また、二次元配列を渡す時の実引数は、何を渡したらいいのでしょうか。
- 519 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:25:00.64 ]
- typedef struct{int hairtsu[SIZE][SIZE2];}hairetsu2jigen;
void f(hairetsu2jigen a);
- 520 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:31:21.48 ]
- >>517
汎用性のある手段はない。一般的には、メモリ解放を意識する必要もない。 >>518 配列を渡したいのか配列へのポインタを渡したいのか要素へのポインタを渡したいのかはっきりしろ。 つーか、その辺りが判らないなら具体的にやりたいことを書け。
- 521 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:33:05.66 ]
- >>517
検索して調べてみた感じだと、 argvがどういうふうに確保されるかは環境依存だから、 freeしようとするのはやめとけって感じでした。 freeしないとしたら空文字列を代入すればいいのかな?
- 522 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:34:56.28 ]
- >>520
ありがとう。 逆にいうとargvのために確保された領域が 勝手に他から読まれる心配はしなくていいってことですか? セキュリティの観点からも気になるんだけど。
- 523 名前:デフォルトの名無しさん [2012/05/18(金) 16:37:25.05 ]
- >>519
それだったら始めからグローバルな二次元配列を書きます >>520 上位の関数で二次元配列を宣言して、下位の関数にアドレスを渡して、下位の関数で二次元配列の処理をしたいのです。
- 524 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:37:46.05 ]
- >>521
の質問は、 while (argc>3) argv[--argc]=NULL; と while (argc>3) argv[--argc]=""; だったらどっちがまとも? っていう内容です。
- 525 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 16:48:19.96 ]
- 519に対してグローバルがどうとか言い出すあたり全然わかってない割合の方が高そうだな
- 526 名前:デフォルトの名無しさん [2012/05/18(金) 17:00:08.05 ]
- >>519さんのやりたいことがわからないのですが。
構造体を返そうとしてるつもりなのでしょうか。 そうだとしたら何故return値がvoidなのでしょう。 Cは値渡ししかできないですよね。 もしそうでないとしても、それなら何故仮引数が構造体を指すポインタじゃないのでしょうか。 構造体はreturn出来るから構造体のメンバーに二次元配列を宣言したのでしょうが、何をしたいのかわかりません。 教えてください>>525さん
- 527 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:06:44.15 ]
- 自分の中の理屈で逆切れかます欠陥人格
- 528 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:07:58.93 ]
- >>526
二次元配列とか、そこらの本見れば書いてあるだろ。 人のミスにつけこむような、つまんない議論やめれ。
- 529 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:10:08.70 ]
- void f(int a[2][2]);
void f(int a[][2]); void f(int (*a)[2]);
- 530 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:11:44.88 ]
- 「仮引数の書き方」の話が「値を返す書き方」に変わっているような気がする。
自分の無知を棚に上げて挑発的な態度を取っているように見えるのは気のせいか?
- 531 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:13:19.55 ]
- >>526
>525じゃないけど答えてみる。 >518では「二次元配列を渡す」と書いてあって二次元配列を参照渡しした意図はどこにも書いてない。 従って、値渡ししている>519のやりたいことは自明。 配列を戻すことを考慮する必要がないのだから、戻り値がvoidなのも至極当然。
- 532 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:15:34.50 ]
- フルボッコw
- 533 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:16:27.80 ]
- >>524
どっちもまともじゃない。 引き数リストは使用しないのなら放っておけばいい。 「勝手に他から読まれる」のは何を想定しているのか判らないが、 それを心配するなら>524のどちらであろうとも全く無意味だ。
- 534 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:17:21.17 ]
- >>531
s/参照渡しした意図は/参照渡ししたいとは/
- 535 名前:デフォルトの名無しさん [2012/05/18(金) 17:25:03.78 ]
- >>520さんに指摘されたように、もっとはっきりとやりたいことを書くべきでした。すみません。
本買って勉強してきます。 プログラミングの本と常識の本を。
- 536 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:33:53.77 ]
- >>535
一転して素直で、今度は人格が心配になる。 まあガンバレ。
- 537 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:41:36.59 ]
- ふう
- 538 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:53:23.75 ]
- >>533
argv[1]=argv[3] argv[2]=argv[4] の後に、argv[1]とargv[2]を使った操作 をやるので、argv[3]とかargv[4] をどっかでいじられると困るわけです。 strcpy使えばいいのか?
- 539 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 17:59:43.92 ]
- 判らん人だなぁ。何の保証もないコードを幾ら捻っても詮無いだろうに。
関数に渡すために無駄な心配をしているのなら、 オリジナルのargvを渡さずローカルにコピーしたlocalArgVでも渡せばいいだろうよ。
- 540 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:01:49.16 ]
- いじろうとしてるのはお前だけのような気がするが
- 541 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:09:53.74 ]
- >>538
勘違いかもしれんが、それだとコピーじゃなくてポインタのすげ替えにしかなってないんじゃね? たしかに危なっかしいな。
- 542 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:15:49.03 ]
- >>538
誰から守ろうとしてるの? デバッガでアタッチされて改変とかの心配?
- 543 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:20:50.50 ]
- >>542
mainを起動した本人以外が文字列の内容を読む心配。 argv[3]='\0' したところで、argv[3][1]以降に入ってた文字は残骸としてメモリに残ってるんでしょ? C++だと勝手にデストラクタが発動するからライブラリの責任だけど、 Cだとゼロ埋めとか自分でするの?
- 544 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:23:27.19 ]
- 543だけど、C初心者なんで、まずは慣習的な方法を教えて欲しいだけなんだ。
うっとうしかったらすまん。
- 545 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:27:59.13 ]
- んなつまらん事気にするなら
main/argvじゃなくてmainCRTstartupをまづ如何にかしようとするべきだな
|

|