1 名前:デフォルトの名無しさん [2012/01/13(金) 22:05:06.14 ] C言語の*入門者*向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 94 toro.2ch.net/test/read.cgi/tech/1324648274/ ★過去スレ 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++の宿題片付けます 155代目 toro.2ch.net/test/read.cgi/tech/1325685876/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
528 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 02:30:51.20 ] そもそもの目的を言え。 m精度がいるのに高さ無視とか、どうせ大した意味もないんだろうけど。
529 名前:デフォルトの名無しさん [2012/01/23(月) 02:40:10.74 ] >>528 はい。 2点の距離を図り速さで割って そこまでにかかる時間を求めたいのです。
530 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 02:44:24.19 ] だったら道路情報じゃねえか 話にならんわ
531 名前:531 mailto:sage [2012/01/23(月) 03:43:29.63 ] 系列データの始点座標(x,y) 移動方向dir ステップ数stepsといった 入力されたデータをテキスト形式でファイルへ保存しないといけないのですが ファイルには-1076994648 2516192 8 1536358 といったわけの分からない数字が保存されます どうすればいいでしょうか? codepad.org/T7yR4vHH
532 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 03:49:24.86 ] x,y,dir,stepsに適切なデータを代入してやればいい
533 名前:531 mailto:sage [2012/01/23(月) 04:11:49.03 ] >>532 すいません具体的にはどういうことでしょうか?
534 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 04:20:00.15 ] 課題説明に記載されている書式なんてわからんから答えようが無い
535 名前:531 mailto:sage [2012/01/23(月) 04:36:55.59 ] >>534 すいません課題説明はこちらです ideone.com/eZmWI ファイルの入出力以外は問題ないようです
536 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 04:43:16.68 ] めんどくさいからよく読んでないけど save_textfil(int startpos[][2], int movedir[][MAXMOVE + 1], int movesteps[][MAXMOVE + 1]) のように渡してそれらを順次出力するだけでは?
537 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 08:13:05.15 ] まぁ、宿題スレに行け、と。
538 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:15:54.94 ] 宿題スレでは干されていました。
539 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:02:51.92 ] じゃ、諦めろ。
540 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:16:49.74 ] #include<stdio.h> double asd(double dx,int no) { int i; double tmp = 1.0; for(i=1;i<=no;i++) tmp *= dx; return (tmp); } int main(void) { int n; double x=0.0; printf("No.1:"); scanf("%f",&x); printf("No.2:"); scanf("%d",&n); printf("answer=%.2f",asd(x,n)); return 0; } 実行結果が No.1:5.0 No.2:2 answer=inf となります。なぜでしょう?
541 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:18:01.17 ] >>540 %f だから
542 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:20:40.25 ] #include<stdio.h> double asd(double dx,int no) { int i; double tmp = 1.0; for(i=1;i<=no;i++) tmp *= dx; return (tmp); } int main(void) { int n; double x; printf("No.1:"); scanf("%4.1f",&x); printf("No.2:"); scanf("%d",&n); printf("answer=%.2f",asd(x,n)); return 0; } 実行結果が No.1:5.0 No.2:answer=inf となりました\(^o^)/
543 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:25:04.22 ] >>542 %4.1f だから
544 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:27:58.60 ] >>543 lですかぁ ありがとうございます 本には1とかいてあるようにみえたので・・・
545 名前:デフォルトの名無しさん [2012/01/24(火) 20:07:37.80 ] C言語を知っていれば、なんでもできると思う人います?
546 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:10:33.78 ] そう思うやつはC言語を理解してない。
547 名前:デフォルトの名無しさん [2012/01/24(火) 20:32:53.92 ] 結局、基本はC言語だよね
548 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:37:02.06 ] >>545 君の言う「なんでも」というのが「妹を作りたい」とか 「ヨガファイアを身に付けたい」とか云うことなんだとすれば、 そんなことを思う人はキチガイだ。
549 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:37:21.10 ] >>545 はい
550 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:46:11.59 ] C言語を始めたいと思ったんだけど、「Borland C++ Compiler 5.5」の設定ができない… ilink32.cfg は拡張子変更できたんだけどbcc32.cfg が .txtファイルのままになってしまう
551 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:50:19.84 ] >>548 自己紹介乙。
552 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:53:55.18 ] >>550 setbccでググるといいかも
553 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:56:02.76 ] >>545 Cを知っていれば他の言語は簡単、みたいな意味だったら20年くらい前はよくそんなこと言われてたなって感じ。
554 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:00:30.49 ] 「妹を作りたい」、「ヨガファイアを身に付けたい」と言う理由で C言語を学ぼうと思った人がいるかも知れない。
555 名前:デフォルトの名無しさん [2012/01/24(火) 21:02:51.91 ] 同一翻訳内で同じ文字列は、 同じ領域に割り当てられると 規格で保証されていますか? char *amanojaku(char *str) { return str == "YES" ? "NO" : "YES"; } char *say(char *str) { printf("%s,", str); return str; } main() { // VCでは期待通り、"YES,NO,YES"と出力された say(amanojaku(say(amanojaku(say(amanojaku("NO")))))); }
556 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:07:14.39 ] >>555 "YES,NO,YES,"になると思うけど 保証されないはず
557 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:07:31.46 ] >>555 × str == "YES" ?
558 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:10:04.14 ] >>547 違うな。 ゴールに近い言語を使うのが正解。 VBで目的が達成できるものに、Cを敢えて使う理由なんか、無い
559 名前:デフォルトの名無しさん [2012/01/24(火) 21:12:47.63 ] char型の数字を配列にいれたいんですけど どうすればいいんですか? char a[10]=
560 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:13:58.37 ] >>558 大概excelで出来ちゃうので、プログラムくむ必要がなくなる。
561 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:14:11.05 ] >>555 コンパイラオプションによる。
562 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:14:35.89 ] >>559 char a[10] = { 1, 2, 3 };
563 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:15:04.56 ] 数値じゃなく数字なら char a[10] = { '1'. '2'. '3' };
564 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:15:26.43 ] >>555 コンパイラ依存だったような。 >>557 この話でそこに突っ込みを?
565 名前:デフォルトの名無しさん [2012/01/24(火) 21:22:10.34 ] a3b4と入力したらaaabbbbと出力するようにしたいんですが できません。 教えてくれませんか?
566 名前:555 mailto:sage [2012/01/24(火) 21:24:14.11 ] >>556 やっぱり保証はされないですか 残念です。 >>561 具体的にこのオプションがあればOKとかあれば 注意書きして、この方法を使ってみたいのですが >>564 大抵のコンパイラならOKそうな気がするんですけどね
567 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:30:16.43 ] >>565 ab3と入力したら ・abbb ・aaabbb どっちになるの? あと0の扱いは? a01bb2 とかの文字列はどう解釈すんの? プログラム以前の問題だ
568 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:30:57.36 ] >>555 文字列の比較ならstrcmp()使えよ
569 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:32:06.26 ] >>567 ab3 => abbb a3b3 => aaabbb a01bb2 => abbb
570 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:32:54.55 ] >>565 ab0c12d5 こういう入力だと、出力はどうしたい?
571 名前:デフォルトの名無しさん [2012/01/24(火) 21:36:16.27 ] >>567 すみません。 数字の0と1は入力ミス扱い。 連続した数字も入力ミス扱い。 二桁以上も入力ミス扱い。 ab3はabbbとなります。 お願いします。
572 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:00:55.70 ] >>571 念のため聞くけど、 「連続した数字」と「二桁以上(の数字?)」は何か違う全くベツのモノ?
573 名前:デフォルトの名無しさん [2012/01/24(火) 22:08:36.77 ] >>572 同じです;; 二桁以上の数字は入力ミス扱いです a10やa23など。
574 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:13:00.32 ] >>573 もう少し聞くけど、 もしかしてその文字列は「数字から始まってはいけない」とかいうルールがあったりしない?
575 名前:デフォルトの名無しさん [2012/01/24(火) 22:19:19.40 ] 数字から始まってはいけないですね〜 まぁ早く解いて。
576 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:28:23.66 ] 正体は社交場かなんかと勘違いしてるお子チャマか
577 名前:デフォルトの名無しさん [2012/01/24(火) 22:31:54.75 ] あー気持ちわりいなお前 明らかにお前の方がなめてただろ こっちがいらつくのはあたり前だろ 早く寝ろおっさんw
578 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 22:41:42.77 ] ワロタ パターンマッチングの精度半端ねーな
579 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:43:34.53 ] >>565 #include <stdio.h> #include <string.h> int mprint(char *str) { int i, len, n; len = strlen(str); for (i=0; i< len; i++) { char a = str[i]; if ('0' <= a && a <= '9') return 1; else{ char b = str[i+1]; if ( b == '0') return 1; if ('1' <= b && b <= '9') { n = (b - '0'); i++; } else n = 1; while (n-- > 0)putchar(a); } } return 0; } int main() { char buf[256]; printf("input:");scanf("%s",buf); mprint(buf); return 0; }
580 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:51:28.42 ] >>566 gccで-fwritable-stringつけたら動かないんじゃないの
581 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 23:52:52.47 ] strings、だったごめん。 manから引用 > -fwritable-strings > 文字列定数を書き込み可能なデータセグメントに配置し、同内容の文字列を 1 つの共有オブジェクトにする処理を行いません。これは、文字定数に書き込むことができることを仮定した昔のプログラムとの互換性をと > るために提供されています。‘-traditional’ オプションも同様の効果を含みます。 > > 文字定数に書き込むという考えは非常によくない考えです。“定数” はまさに定数であり、変化すべきではありません。
582 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:52:06.30 ] >>555 これでいけ #include <stdio.h> #include <string.h> char *amanojaku(char *str) { return strcmp(str, "YES") == 0 ? "NO" : "YES"; } char *say(char *str) { printf("%s,", str); return str; } int main() { say(amanojaku(say(amanojaku(say(amanojaku("NO")))))); return 0; }
583 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 00:56:52.34 ] 確かにstrcmp()で何の問題があるのかとは思うけど
584 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 01:05:34.77 ] そんな話なのか? それなら単に2つポインタ使えばいいだけじゃねーのか。
585 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 07:14:03.55 ] 単に規格の範囲を疑問に思っただけなのか 「同じ領域に割り当てられると保証されて」いてほしい理由があって聞いたのか どっちでしょうね
586 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 08:01:41.80 ] 保証されている前提で書いた自分のプログラムをなんとか正当なものにしたいんじゃね? 仕事だったらありえねぇ馬鹿だがw
587 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 08:31:02.40 ] 何で攻撃しまくりなんだよw マクロで文字列リテラルが展開されまくったとき、exe サイズ膨れ上がらないかとか さらにそのソースはいろんなコンパイル環境で使いまわすとか 気にしなきゃいけない可能性はいろいろあるだろうに
588 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 08:34:18.18 ] 使いまわすようなコードに 文字リテラルなんて埋め込むなよ
589 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 09:27:52.57 ] >>587 もしそういう要求があるなら尚のこと、コンパイラ任せにするべきじゃない。 例えば、リテラルへのポインタを返す関数を用意しておけば済むことだ。 それにどうせ、マクロを使ったってリテラルの連結をする場合は別領域だ。
590 名前:デフォルトの名無しさん [2012/01/25(水) 12:24:43.54 ] こういうマクロは規格上許されていますか? VC2008では再帰展開は行われず、aaaがbbb aaaに展開されます。 #define aaa bbb aaa
591 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:37:28.66 ] >>590 Cリファレンスマニュアルによれば、規格上はアリ。ただし古い処理系だと 再帰展開して止まらなくなってしまうケースがあったようだ
592 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 12:51:22.39 ] >>591 ありがとう。これで安心して使えます。
593 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:01:01.04 ] assert("hoge" == "hoge");
594 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:07:38.56 ] 文字列を表示するときにstdio.hをおまじないで書く覚えました このstdio.hみたいな○○.hっていうので他にもどんなことが事が出来るのか知りたいのですが なんていうキーワードで検索したら出てきますか?
595 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:14:33.33 BE:139784674-2BP(294)] >>594 C 標準ライブラリ
596 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:15:45.05 ] >>594 そのまんま"stdio.h"で検索しても それなりのものが出ると思うんだが
597 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:27:18.07 ] >>594 赤くなーれ! 標準Cライブラリ - Wikipedia ja.wikipedia.org/wiki/標準Cライブラリ - キャッシュ limits.h, 整数型の大きさ. locale.h, 文化圏固有操作. math.h, 数学. setjmp.h, 非局所分岐. signal.h, シグナル操作. stdarg.h, 可変個数の実引数. stdbool.h, 論理型および論理値 (C99より追加). stddef.h, 共通の定義. stdint.h, 整数型 (C99より追加). stdio.h ...
598 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:33:59.19 ] 2038年以降のタイムスタンプを取得する方法はないのですか?
599 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 13:56:21.61 ] ポインタのインクリメントについて質問です。 while (*p++) { ... } このpは、ポインタをインクリメントしているのであって、pの指す*pをインクリメントしているのではないのですよね? そうであれば、これは*pが0x00か比較してからpをインクリメントしているのか、それともpをインクリメントしてから*pが0x00かどうか比較しているのか、どちらなのでしょうか。 演算子の優先順位を見ても、間接演算子*とインクリメント演算子++は優先順位が同じなので、わかりませんでした。
600 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:01:06.77 ] 演算順の話じゃない。 後置++の演算値はインクリメント前、したがって*演算子に与えられるアドレスはインクリメント前。
601 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:12:00.71 ] >>599 >while (*p++) { while (*p) {p++; と見なせる。
602 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:14:48.84 ] 見なせません
603 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:21:59.10 ] ++*p *++p *p++ (*p)++
604 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:47:01.82 ] >>595-597 ああああああああああああ赤くなっちまったよ! 最後にすいません これら全部の標準ライブラリを覚えないとやっぱりやっていけないですか?
605 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:55:25.12 ] たかがこのくらいの数でそんな事を言ってる奴には無理
606 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 14:56:30.22 ] うわwwwじゃあ全部覚えるかw
607 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:00:18.81 ] >>606 別に覚えなくとも、うっすら片隅にいれておけばいいよ 標準ライブラリで提供されてるのに自作するのを避けられる、、けど>>606 みたいな人は 自作前にこことかで聞くだろうから未然に防がれるのかな。
608 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 15:01:35.54 ] 概要と主要なやつだけ覚えて、残りは使用する度に使い方検索する。
609 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:21:41.26 ] 例えば、キーボードのJを押すとKが出力されるような自作のキーカスタマイズプログラムを作りたいのですがうまいこといきません。 矢印キーを押すとマウスカーソルを動かす事に最初に成功したので、 同じようにすればキーも変えられると思ったのですが何故か反応せず。 キー関係はマウスと違い何か必要なのでしょうか? よければサンプルプログラムなどいただけないでしょうか
610 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:23:05.54 ] スレチ
611 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:24:15.44 ] フックしたキーを捨てないとだめじゃないかな
612 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:38:40.85 ] HTMLで画像の上にマウスカーソルを乗せるとツールチップが表示されるじゃないですか Cでツールチップを指定した座標に表示させたいのですがなんて標準ライブラリを使えば実現できますか?
613 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:40:19.54 ] webprog行け
614 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:43:59.59 ] いやwebプログラムの質問してるんじゃなくて ツールチップを表示させたいだけです
615 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:51:39.38 ] そんなものはない
616 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 17:53:39.68 ] >>614 付箋アプリみたいな?ウィンドウ作ればいい
617 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:28:25.50 ] #include<iostream> #include<string> int main() { std::string name; std::cout<<"hello"<<std::endl; std::cout<<"こんにちは"<<std::endl; std::cin>>name ;std::cout<<name<<std::endl; } 最後から二番目の行のstdの前の「;」にはなんの意味があるの? それ抜きにするとエラーになるんだけど
618 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:30:12.47 ] std::cin>>name
619 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:38:12.65 ] >>618 std::cin>>name ;
620 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:42:51.90 ] >>619 ;std::cout<<name<<std::endl;
621 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:43:01.47 ] わからない… つまり、std::cin>>nameの結果を表示するために;std::cout<<name<<std;;endl;にしなくちゃいけないことでおk?
622 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:44:43.27 ] あ、もしかしてstd::cin>>name; にしろってこと?
623 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:44:50.34 ] >>621 std::cin>>name
624 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:51:45.51 ] >>622 std::cout<<"hello"<<std::endl ; std::cout<<"こんにちは"<<std::endl ; std::cin>>name ; std::cout<<name<<std::endl ; } べつにこうでもいいよ
625 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 18:54:55.70 ] とりあえず、Cじゃないのはわかってるよな。
626 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 19:19:26.14 ] 素直にスレ違いっていえないのは何で?
627 名前:555 mailto:sage [2012/01/25(水) 21:48:50.01 ] >>581 昔は文字列定数書き換えられたんですね。(確かにconst char *じゃないし) それならば保証は難しそうですね。ありがとうございました。 >>583 単純にパフォーマンスが理由です。 >>584 文字列が英語にしにくい日本語なので、 変数名で処理を書くと分かり難かったので聞いてみました。 enumに日本語が使えればいいんですけど static char *const MISONIKOMI = "味噌煮込み"; static char *const MIZUTAKI = "水炊き"; static char *const OYAKODON = "親子丼"; char *kondate(char *yesterday) { if (yesterday == MISONIKOMI) return MIZUTAKI; else if (yesterday == MIZUTAKI) return OYAKODON; else return MISONIKOMI; } char *kondate(char *yesterday) { if (yesterday == "味噌煮込み") return "水炊き"; else if (yesterday == "水炊き") return "親子丼"; else return "味噌煮込み"; }
628 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 21:55:16.53 ] コメントに書けばいいじゃねぇか。