2 :
デフォルトの名無しさん :2013/09/27(金) 19:57:08.71
< `∀´>ニダー
3 :
デフォルトの名無しさん :2013/09/27(金) 20:15:41.15
前スレ
>>988 が気になって眠れないんですがどっちなのでしょうか?
4 :
デフォルトの名無しさん :2013/09/27(金) 20:21:45.82
#include <stdio.h> int main(int argc, char **argv) { while (*argv) { while (**argv) { printf("%c", **argv) (*argv)++; } putchar('\n'); argv++; } return 0; } ポインタを学習するのに最適なコード gcc -S test.cでおk ポインタ厨滅殺のため、テンプレ追加でオナシャス!!!
>>4 argvって最後にNULL入るんだな。初めて知った。
6 :
デフォルトの名無しさん :2013/09/27(金) 20:26:33.25
>>3 >>4 に対して
987 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 19:08:21.67
>>984 こうやって関係あるな
(*argv)++;
と
*argv++;
との違い
988 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 19:23:42.68
それはインクリメントされるモノまで違う
990 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 19:31:56.27
インクレメントされるのはアドレスですが?
996 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 20:01:58.97
>>988 マジかよこんな奴でもマやってられるのかよ
俺なんかマにもってこいだな
Googleあたりやとってくれないかな
998 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 20:08:54.09
>>990 本当か?
999 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 20:19:08.65
>>996 この馬鹿何いってんの?
>>4 以前、バグってるコードを調べたら、これみたいに引数の数をargcじゃなくて
*argvがnullかどうかで調べてたんだよな。
argcを使わなくて引数の終わりをチェックするなんて、そのコードと
>>4 でしか
見たことないんだけど、どうやって思いつくんだろう。
昔はそうやって書いてたとか?
>>8 Solarisだと、NULLが入ってなくてバグってたんだけど環境依存じゃなくてCの規格なのかね。
10 :
デフォルトの名無しさん :2013/09/27(金) 20:33:37.62
11 :
デフォルトの名無しさん :2013/09/27(金) 20:35:33.21
プログラミング言語C 第2版 P140 標準規格では・・・argv[argc]はヌル・ポインタであることが要求される。
13 :
デフォルトの名無しさん :2013/09/27(金) 20:40:01.13
規格ってのは、こうなっていて欲しいなあ、と言っているだけ 実際に「正しい」のは、規格に違反している部分にも対応しているコード 別に難しい概念じゃない いくら自分が法律を守っていても、巷にはチンピラヤクザの類がいる 渡る世間は鬼ばかりってやつだよ それでも結果を出せるやつが「正しい」んだよ
>>10 while (*s++ = *t++)
のもダメか?
16 :
デフォルトの名無しさん :2013/09/27(金) 20:48:06.91
ほらな、こういう根拠法令のない不当要求てのはあるんだよ
かかる火の粉は払わにゃならん
>>14 アホ、カス、クズ、首吊って死ね
17 :
デフォルトの名無しさん :2013/09/27(金) 20:48:37.23
>>12 知らなかった。
正統な書き方だったんだな。
20 :
デフォルトの名無しさん :2013/09/27(金) 20:51:44.14
>>4 このコード何の処理してるのかさっぱりわからないのだが、俺に教えてくれなイカ?
21 :
デフォルトの名無しさん :2013/09/27(金) 20:51:57.96
何がダメなのか、結局「俺ルール」の域を出ないkzホイホイ
22 :
デフォルトの名無しさん :2013/09/27(金) 20:52:58.59
#include <stdio.h> int main(int argc, char **argv) { while (*argv) { while (**argv) { putchar( *((*argv)++) ); } putchar('\n'); argv++; } return 0; } さらにクソにしてみた
24 :
デフォルトの名無しさん :2013/09/27(金) 20:54:26.58
>>20 実行してみれば?
領域違反になるかもしれんが
26 :
デフォルトの名無しさん :2013/09/27(金) 20:57:12.87
顧客が本当に必要だったもの。 #include <stdio.h> int main(int argc, char **argv) { while (*argv) { puts(*argv++); } return 0; }
28 :
デフォルトの名無しさん :2013/09/27(金) 21:03:05.67
30 :
デフォルトの名無しさん :2013/09/27(金) 21:05:15.64
バカすぎるだろ 入院しろ
この程度も読めないのに煽ってたのwwww うわーww
ポインタ説明してプログラムの動きを間違えてるな
ttp://www.grapecity.com/japan/powernews/column/clang/021/page03.htm 文字列中でスペース(0x20)が何文字目に現れるかを調べる場合、文字列から1文字ずつ取り出してはその内容を調べる
──という動作を行うことになります。そのためには、リスト1のような流れが考えられます。
リスト1:文字列からスペースの現れる位置を調べる〜冗長なソース
char *p; --------------- 取り出した1文字を受け取る
int n = 0; ------------- カウンタ
p = "Hello world!"; ---- 文字列の先頭アドレスを代入
while (*p != '\0') { --- 終端まで繰り返す
if (*p != 0x20) { ---- スペースでないとき
n++; --------------- カウンタを増加
p++; --------------- 次の1文字へ
}
else { --------------- *pがスペースのとき
printf("%d 文字目にスペースを発見しました。\n", n+1);
}
リスト2:文字列からスペースの現れる位置を調べる〜簡略版
char *p;
int n = 0;
p = "Hello world!";
while (*p++) {
if (*p != 0x20) { /* スペースでないとき */
n++;
}
else {
printf("%d 文字目にスペースを発見しました。\n", n+1);
}
Precedence Operator Description Associativity 2 ++ Suffix/postfix increment Left-to-right 3 * Indirection (dereference) Right-to-left
>>12 だったら、argc なんてつけなきゃよかったのにな。
引数の終わりを示す情報が複数あるのはバグの元だし。
>>36 要するにPerlさいつよ他は糞ってことだ
38 :
デフォルトの名無しさん :2013/09/28(土) 00:55:15.79
× さいつよ さいきょう
39 :
デフォルトの名無しさん :2013/09/28(土) 00:56:15.79
argvって何のためにあるんだろう。 コマンドラインから入力ってCUIの世界だけじゃん。
41 :
デフォルトの名無しさん :2013/09/28(土) 01:02:50.09
42 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/09/28(土) 01:09:25.77
GUIがCUIプロセスをパイプにつなげて、こきつかってることもある。典型的な例がIDE。
うひゃ、これ読んでみろって言われた char (*(*x[3])())[5];
44 :
デフォルトの名無しさん :2013/09/28(土) 01:18:21.78
>>39 Windowsではドラッグアンドドロップされたファイルはコマンドラインから渡される
>>44 参考になるソースとかサイトはありませんか。
lpszCmdLineでググる
>>45 なんで
>>44 に出てきた単語を検索窓に入れることすらできないんだよゴミ
>>44 すでに起動しているアプリの上にD&Dされたら、
WM_DROPFILES:
hDrop = (HDROP)wp;
DragQueryFile((HDROP)wp, 0xFFFFFFFF, 0, 0))
DragQueryFile(hDrop, 0, sFileName, sizeof(sFileName));
じゃなかったかと
>>13 規格に準拠してない処理系やコードは「C言語」を名乗れない
C言語の規格を真似したなんだかよくわからん言語でしかないよ
51 :
デフォルトの名無しさん :2013/09/28(土) 09:35:08.45
>>49 うんこのくせにレスつけるんじゃねー
全然違う
52 :
デフォルトの名無しさん :2013/09/28(土) 11:55:25.77
おまえらQZに嫉妬しすぎだろ くやしかったら実力つけろ
それがどういう目的の煽りかよく分からない QZの実力がこのスレ住人の平均の1割程度なのはバレてるから嫉妬というより同情しかできないし そりゃ実力をつけるに越したことはないけど、あまりにも底辺にいると比較されると自分の実力がかなりあるように感じるし 真意が分からなくてもどかしい
54 :
デフォルトの名無しさん :2013/09/28(土) 12:55:50.18
>>54 C言語の規格を真似したなんだかよくわからん言語にC言語と名付けてもまぁ詐欺にはならんと思うよ
56 :
デフォルトの名無しさん :2013/09/28(土) 14:23:34.22
Qzが駄目なところ 他人が指摘した内容なのに自分が調子にのるところ
>>43 スルーされてるけど、char* [5]を返す
関数ポインタ(void)型[3]要素配列でいいんだよな?
59 :
デフォルトの名無しさん :2013/09/28(土) 14:40:18.12
lsでプログラムのサイズを調べてドヤ顔するゴミくずだから
関数は普通の配列であれポインタ配列であれ配列は返せないだろ ポインタ配列へのポインタなら返せるけど
61 :
デフォルトの名無しさん :2013/09/28(土) 14:43:18.76
VC++でデバッグした後、おかしくてプログラム見直したら 全く書いた覚えのないコードが付け加えられたんですがウイルスですかね?
違げーよ
>>43 はchar [5]へのポインタを返す関数ポインタ(void)型[3]要素配列
63 :
デフォルトの名無しさん :2013/09/28(土) 14:53:37.37
>>61 変なクスリやってるからそういうことになるんだろ
これなら問題なくコンパイル出来て動く char (*func(void))[5] { static char a[5] = "abcd"; return &a; } int main(void) { char (*(*x[3])(void))[5] = { func, func, func }; puts(*(x[0]())); return 0; }
配列は返せないけど配列をメンバーに持つ構造体なら返せる。 Cってなんかダメだよな。
>>55 程度問題だろうけど、その手の奴をベンダーが販売したら詐欺に問われてもおかしくないと思うが。
67 :
デフォルトの名無しさん :2013/09/28(土) 15:08:40.98
独自拡張とかバグとかはあるけど、ぜんぜん違う言語をCって言ってるのはないだろ。 basicやCOBOLは方言バリバリだけど。
69 :
デフォルトの名無しさん :2013/09/28(土) 15:50:00.04
「C」のくせにSmalltalkが使える言語とか
obj-cとかC++とか、一応違う名前になってる
やっとC99対応に乗り出したマイクロソフトさん
>>70 その辺はまだ当時のCを最大限活かせるよう設計したからいいが
C#は何故Cを頭に付けたのかもはや解らんな…
Cってつけときゃ勘違いした初心者が触ってくれる
74 :
デフォルトの名無しさん :2013/09/28(土) 17:30:30.58
75 :
デフォルトの名無しさん :2013/09/28(土) 17:44:32.90
>>56 自演じゃねーよ
自演して何が楽しいんだ?
コピペマン参上!まで読んだ。
潮騒のメモリー107歳はおばあちゃん禿げしくーwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ごめん、スレ間違った
(´・ω・`)
何行かあるファイルを読み込んで、中身の文字列を行毎に逆にして新たなファイルに書き出すにはどうすればいいですか? ファイルを読み込む&書き出すは分かるのですが、肝心の行毎に逆にする作業がわかりません。
81 :
デフォルトの名無しさん :2013/09/28(土) 18:45:09.12
だいたいC系って読みにくいんだよ 読めるけど言葉のリズムが悪い しーぷらすぷらす しーしゃーぷ おぶじぇくてぃぶしー そこで俺は新しいC系言語の名前として「C$」を提案する 読み方は「しーどる」!! シーフードカップヌードルを彷彿とさせるスッキリとした名前だ
>>80 ダブルポインタの扱いまで習得してから出直せ
ダブルポインタまで使いこなせるようになったら
strchrで\nを検索して
各行頭のアドレスを配列に入れ
最後にforで回して逆に書き出す
fgetsで一行読み込む。 strrevで文字列反転。 fputsで一行書き込む。 EOFまで繰り返す。
84 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/09/28(土) 18:54:47.85
あっ、一行読み込んだ後に'\n'を取り除き、一行書き込むときに'\n'を書き込む処理が必要だった。
>>51 いや「すでに起動しているアプリの上にD&Dされたのであれば」、これであってるね。
他の方法でもあるのか?
ABCは知ってても、それだけじゃ困ります。
>>65 K&R1の昔は構造体も返せなかった
巨大な構造体を返す馬鹿はいないと善意に解釈したのが愚かであった
構造体を返せるようにしたとたん、配列をメンバーに持つ構造体なら返せるとかほざく輩が湧き出てきた
>>81 実際にはシーダラーと呼ばれる運命なので却下
system("tac abc.txt");
Cって文字扱い難くね 他のスクリプト言語やM$言語なんかは1つの関数でフォーマット変えたり分割できたりするのに
修行が足りん
その分処理速度は早い スクリプト言語と比べたら100倍レベルで違うんじゃないかな
93 :
デフォルトの名無しさん :2013/09/28(土) 19:26:49.79
94 :
デフォルトの名無しさん :2013/09/28(土) 19:30:01.03
CよりJSのほうが速いってことで決着ついてるはず。
今の最適化技術ならpascalやら構造化basicあたりでもCと大差ないバイナリが できると思うけど、これだけCが普及するとどうしようもないな。
あーそっかそっかうんうんそういううんはいはいなるほどね わかっただいたいわかったうんうんそういうことねはいはいはい
>>94 同じくらい労力かけて最適化したらCのほうが早い。
98 :
デフォルトの名無しさん :2013/09/28(土) 19:32:36.89
VC++で迷路ゲームというアプリを作ったんですが他PCに移動してやろうとしたら dllファイルがありませんが出てきて、一つずつダウンロードしても結局最終的に はダメでした。どうしたらいいですか?
他の言語でもCと同等の速度が出せる、ってのはいいんだ。 C以外の言語だと、Cよりも早いコードが出せるぜ、ってなコメントがあるから荒れる
100 :
デフォルトの名無しさん :2013/09/28(土) 19:33:42.76
Cは実行中の最適化がないのでどうやってもJavaやJavascriptには勝てない。
>>98 インストーラー作ってそれでもっていけば、参照してるDLLも持っていってくれるんじゃないの。
102 :
デフォルトの名無しさん :2013/09/28(土) 19:36:50.94
releaseでビルドしてないんだろ 後スレチ
Java使いはCをマーシャリングツールくらいにしか思ってないが、結局Cが無いとJavaは何も出来ない
106 :
デフォルトの名無しさん :2013/09/28(土) 19:55:14.74
>>92 だーかーらー、そういう比較は意味ねえって
せいぜい
>>90 みたいのを量産することになるだけで
107 :
デフォルトの名無しさん :2013/09/28(土) 20:08:59.51
ベンチマークはコールドスタートになるので実行時最適化にとってかなり不利。 最適化の分遅くなる。 だがしかし、たった一度しか実行しないソフトウエアは少ないので、 実用上はCよりスクリプトのほうが速い。
>>107 ベンチマークも同じコードをべらぼうな回数、繰り返し実行してるけど。
ケチャック (SHA-3) を実装された方はいますか? レファレンスを読んでみても理解できないいし、C言語のソースコードを読んでも、 コメントがついてなくて、よく分かりません。 どなたか、詳細なコメントつきのソースコードをうpしてくれると嬉しいです。
JKとCしたい
>>107 がJavaのほうが速い実例をだせばいいけど、出ないんだろうな。
実行前に最適化しておけばいい(終了
114 :
デフォルトの名無しさん :2013/09/28(土) 20:17:58.69
Cによる最適化が不十分な例を出されてもねえ
116 :
デフォルトの名無しさん :2013/09/28(土) 20:30:53.92
まあ認めたくないのはわかるよ。 でもこれが現実なんだよね。
Javascriptてなに?
カレーがおいしくなる魔法の粉のことだよ
コリアンダーみたいのか
120 :
デフォルトの名無しさん :2013/09/28(土) 21:00:31.42
おまいら、コードの話以外だととたんに元気だな
121 :
デフォルトの名無しさん :2013/09/28(土) 21:01:33.32
>>111 惜しいな、レス番が 107 ならウケたのに
ポインタっての使わないと C ではプログラム書けないんでしょうか?
123 :
デフォルトの名無しさん :2013/09/28(土) 21:39:19.75
124 :
デフォルトの名無しさん :2013/09/28(土) 21:44:35.22
速度面で負けると、Cの良さはアドレスを指定してメモリの読み書きができること だけになるね。 これも特定用途以外では悪い部分になるしね。
125 :
デフォルトの名無しさん :2013/09/28(土) 21:47:35.44
チップセレクト読めないアホはお呼びでない そんなクズにRAS/CASが読めてるわけもないし
>>122 書けるだろう
hellow world
>>82 >>108 ポインタはまだ習っておらず、ポインタ無しでやらなければいけません。
>>83 このやり方はポインタを使わないで大丈夫ですか?
>>127 >ファイルを読み込む&書き出すは分かるのですが、
これをポインタなしでやってるんだ
へぇ〜
>>128 ファイルポインタだけは使ってますが、一般的な?ポインタは習っていません。
>>129 ファイルポインタも一般的なポインタですが、何か
>>130 それではファイルポインタのみ使うやり方はありませんか?
132 :
デフォルトの名無しさん :2013/09/28(土) 22:17:33.22
>>124 は逃げたか?
NMI のタイミングも当てずっぽうだろう、てめーのコードわ
ノートパソコンでC++のプログラミングをしてみようと思っているのですが、 コンパイラとテキストエディタをDLしたら容量が大きすぎたのか、 後でそれを削除した後もパソコンの具合が悪くなったままです。 ノートパソコンのWindowsではなくマッキントッシュのようなメモリが多く使えるOSで プログラミングしたほうがいいということでしょうか。それから、まだほかに DLしなくてはならないものがありますか?
135 :
デフォルトの名無しさん :2013/09/28(土) 22:31:26.16
最初にDLするのはUbuntu。 ココを間違えると取り返しがつかない。
137 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/09/28(土) 22:33:31.75
>>80 携帯から
#include <stdio.h>
char buf[1024];
int main(void) {
FILE *fin, *fout; int i, j;
char c;
fin = fopen("input.txt", "r");
fout = fopen("output.txt", "w");
while (fgets(buf, 1024, fin) != NULL) {
for (i = 0; buf[i] != '\0' && buf[i] != '\n'; i++);
if (buf[i] == '\n') buf[i] = '\0';
i--;
for (j = 0; j < i; i--,j++) {
c = buf[j]; buf[j] = buf[i]; buf[i] = c; }
fprintf("%s\n", buf);
}
fclose(fin); fclose(fout);
return 0; }
JavaVMがC以外で書かれてるとは考えられない。ならCを上回る事は不可能
139 :
デフォルトの名無しさん :2013/09/28(土) 22:35:10.23
CとC++は違う言語なのか だから俺にはレスがつかない 失礼
141 :
デフォルトの名無しさん :2013/09/28(土) 22:38:19.31
オブジェクト指向に挫折した人を救うべく開発されたのがC言語なのです。
>>141 C言語だけできたところでプログラミングのデザインができなかったらただの
計算機にしかならないのでは?
143 :
デフォルトの名無しさん :2013/09/28(土) 22:43:49.30
オブジェクト脳を持つ優秀な人が設計して、挫折組がコーディングするのです。
>>134 開発はWindowsでも大丈夫。
そこに書いてある情報だけではなぜトラブルになっているかはわからない。
>>144 DLしすぎたからだと思います。他にも80MbくらいあるPHPのコンパイラをDLしてます
>>145 パソコン初心者か?
でかいファイルをダウンロードしただけで動作が重くはならんぞ
再起動してみ
147 :
デフォルトの名無しさん :2013/09/28(土) 22:57:40.99
一行修正。 fprintf("%s\n", buf); ↓ fprintf(fout, "%s\n", buf);
>>137 #include <stdio.h>
char buf[1024];
int main(void) {
FILE *fin, *fout; int i, j;
char c;
fin = fopen("input.txt", "r");
fout = fopen("output.txt", "w");
while (fgets(buf, 1024, fin) != NULL) {
for (i = 0; buf[i] != '\0' && buf[i] != '\n'; i++); ←ここには実行文は必要無いですか?
if (buf[i] == '\n') buf[i] = '\0';
i--;
for (j = 0; j < i; i--,j++) {
c = buf[j]; buf[j] = buf[i]; buf[i] = c; }←これはどういう意味でしょうか?
fprintf("%s\n", buf);
}
fclose(fin); fclose(fout);
return 0; }
>>126 printf( ) になに渡してると思ってるんだよ
>>150 ・getlineは改行入らない
・std::reverse使え
・スレタイ100回声に出して読め
>>80 の応用。
何行かあるファイルを読み込んで、行の順を逆にして新たなファイルに書き出す
Cのコードを書け。
例)
123
ABC
アババ
↓
アババ
ABC
123
>>148 >for (j = 0; j < i; i--,j++) {
> c = buf[j]; buf[j] = buf[i]; buf[i] = c; }
c ← *j ← *i ← c(=*j)
つまり、*j ← *i、*i ← *j
配列中の、ある箇所と別の箇所の内容を、入れ替える
(変数cは、入れ替え用のメモリで、特に意味はない)
j++で、jは配列の先頭から、後ろのほうへ進んでいき、
i--で、iは配列の後ろのほうから、前のほうへ進んでいく
ただし、j < iで、jは、iより前のときのみ
xor使えばtempいらない
K & R のと、今のじゃ、どこが違うん? 3行でよろ
>>157 K&R1 は一度翻訳単位や関数単位の処理から抜けると、関数の呼び出しに際しての入出力界面に無頓着。
double f(doube, double)に平気で f(int, int) を渡せても、エラー、警句皆無
double を返してくるはずを int で受けても、エラー、警告皆無
極めつけは ヌルポインタ。ヌルポインタを渡したつもりが、数値の 0 がわたってしまい、そんなことにもコンパイラは無頓着。
最後のは今でも注意しないときいけないね。可変長引数にヌルポインタを渡すときはキャストすること、execv*() とかね。
hellowワロタ
161 :
デフォルトの名無しさん :2013/09/29(日) 10:31:18.69
>>157 1 関数プロトタイプ
2 const, volatile
3 関数ポインタのデリファレンスが不要
三行と指定されてるのに1だけを長々と語るゴミ屑は早く死ねば良いのに
161は釣られたんだと思う
>>157 main(argc, argv)
int argc;
char *argv[];
>>161 構造体を引数や返り値に取れるようになった、はでかいよね?私見では余計な改悪だとおもっちゃうけどね
enum, void は?
そういえば void * のかわりに char * をつかってたよね今の教科書でも execl() で末尾に (char *)NULL をかくとかときどきみるね
unsigned char なんてあったっけ?
long float とか long double とか混乱してたよね?
printf()群の書式指定子 %*d って昔からあったっけ?
#if 0 とかもたしか ansi からでは?#elif だけでしたっけ?
#define でも ## のおかげで ANSI では生成的マクロ=ジェネリックができるようになったね、テンプレート様には負けるけど
いろいろいいたいことがあるけど、プロトタイプ宣言でおなかいっぱい
165 :
デフォルトの名無しさん :2013/09/29(日) 13:26:39.28
>>158 4行とも、今も同じだが?
C++ に似て非なる関数原型とconst
あはは、1行で言えちゃった
>>165 >今も同じだが?
あら、そうでしたっけ、まあ翻訳単位が別だとねえ
C++はリンカに渡す名前を曼珠沙華でしたっけ、昔、far/near ポインタくらいそうすれば関数減ってよかったのにね
167 :
デフォルトの名無しさん :2013/09/29(日) 14:09:18.74
farポなんかないさ farポなんか嘘さ 寝ぼけた人が見間違えたのさ♪
168 :
デフォルトの名無しさん :2013/09/29(日) 14:42:31.32
私見 wwwww > ls -l プログラムファイル
169 :
デフォルトの名無しさん :2013/09/29(日) 15:40:46.66
ソケットってなんですか?
172 :
デフォルトの名無しさん :2013/09/29(日) 19:35:54.96
VC++でリリースでコンパイルしたけど dllファイルがありませんって出てきました.... どうしたらいいですか?
>>172 それだけでは何も分からない。どのdllが無いといつ出たの?
>>172 > どうしたらいいですか?
回答が得られる質問方法を学びましょう。
176 :
デフォルトの名無しさん :2013/09/29(日) 22:33:50.06
だろうな あいつ疲れすぎだよ
MAC OS X で C やろうと思ったら、何 C がいいですか? できれば C99 対応ので
マカーか
clang一択だろうw
>>172 VC++ DLL ファイルが見つかりません
で、検索せよ
まず、ここに書き込む前に、エラーメッセージで検索する癖をつけよ
いや、ふつーにXcode標準のGCCでいいだろ
Mac だったら、clang も GCC も標準で入ってるんだよね?
185 :
デフォルトの名無しさん :2013/09/30(月) 04:58:54.87
MacつーかApple自体がオワコンだからなんとも 業績落ちまくりじゃん iphoneも売れ行き落ちてるし この間は切り札のdocomoでの販売したから今期は持ちこたえるだろうけど、 この後待ってるのは再び飽和状態による新機種売上の落ち込み 主要携帯会社では全て出してしまったからもう切り札なし これからプログラミングやるならWindowsかLinux
一人が二台,三台もってもいいもの,ってなにかないですかね iphone は一台でいいや
androidの入ってる機種は総じてゴミ
190 :
デフォルトの名無しさん :2013/09/30(月) 09:47:55.65
Androidの世界シェアは8割 iphoneの世界シェアは1割5分 iphoneの世界シェアがAndroidの世界シェアを超えてるのは世界でも日本だけ iphone使いは世界の流れに乗り遅れた情弱でFA
>>190 元のマニュアルも読まずに質問するゴミクズか
お前みたいなゴミクズに使ってもらう前提で開発してあるわけじゃねーんだよ
説明書読まずに使い方が分からないとか頭悪いにもほどがある
193 :
デフォルトの名無しさん :2013/09/30(月) 10:41:42.00
>>192 英語でキツイと思ってたけどみながらなんとかやってみます。
ありがとうございました。
>>193 じゃあプログラミング言語の前に英語やらなきゃいけないんじゃないの
物事の優先順位すら決められないのか
呆れた
質問する時は一口大に、簡単に答えやすくまとめて俺を気持ちよくさせろ それ以外はゴミクズ
日経新聞にOS別のスマホ世界シェアが掲載されているそうだが、 ・android 79.3% ・iOS 13.2% ・Windows Phone 3.7% ・blackberry 2.9% という状況だそうで、Androidが前年比10.2%、iOSが-3.4%と、Android好調が伝えられている。 一方国内では、5/10の調査で、2012年度の出荷台数シェアが ・iOS 35.9% ・Android 64.9% ということでiPhoneが売れている特殊な国として有名だ。
英語はやっとけ
文字化け関係でandroidが嫌われるのか?
某社長の営業努力の賜物であろう
>>185 >MacつーかApple自体がオワコンだからなんとも
それはあんたの希望()だろ?
これから C をやりたいって言ってるような
>>177 や他から見たら、
Windows の方が激しくオワコン
てか、もう終わってる
信者の頭がかわいそう
Android は別にいいんだけど、メーカーがね(以下ry
xperia買えよ
MacがオワコンではなかったとしてもWindowsオワコン説には無理がありすぎだな
そろそろリアルだろう
ガキが多くなったな
>>207 俺もそう思ってる。
一般人向けにPC自体が存在を消そうとしている状勢においてWindowsの居場所なんて残されてないと思う。
むしろLinux, Mac の方が、特殊ユーザーに支持されてるので、今後もPC用OSとして命脈を保つ可能性が高いと思う。
エロゲが充実してるwindowsが滅びるはずがない エロが全てを支配するエロを舐めるな
一般人向けにPC自体が存在を消そうとしている状勢ってどこの世界線の話だ… 過剰供給だったものが正常化しているだけであって、PC需要が限りなくゼロに近づいてるって話ではないだろう
>>211 お前の周りだけ「世界」が違うようだな(笑)
PC使わないような仕事の人はいいよね 目が疲れなくて
スマホやタブレットでソフトウェア開発をしている企業は見たこと無いなあ
現業以外大体誰でも仕事でPC使ってるはずなのになあ 仕事してる人間は一般人じゃないのかあ
PCのみ PCとスマホやタブレットの併用 スマホやタブレットのみ
>>215-216 つーか、信者の思いとは裏腹に、MS自身が、サーフィスで一般人向け用途のPCをリプレースしようとしているのが、俺らの世界線なんだが。
>>220 >つーか、信者の思いとは裏腹に、MS自身が、サーフィスで一般人向け用途のPCをリプレースしようとしているのが、俺らの世界線(笑)なんだが(キリッ
って言われてもさあ、仕事でそんなもんすぐに乗り換えるわけねえじゃん
バカなの?
C言語以外の話題は元気だな
>>177 ですが、
clang にするか GCC にするか、迷います。
Linux だったら GCC でいくし、FreeBSD だったら clang だけど、
Mac の OSX ではどっちがいいの?
ちなみに C は独学です。
どうして一つに絞ろうとするんだ? どっちもできるようになればいいじゃないか
特定のOSのプログラミング学ぶのにどのOSがいいですかって話ならわかるけど ただCのプログラミングをしたいってのに、なにを迷うんだ。
好みとか性に合う会わないとかあるから両方調べて良い方をメインにした方がいい それくらいガッツが無いと勉強できん
学校の課題で出たC言語でコンビネーションを出力するプログラムが書けません たとえば 1, 2, 3 と数字があって 3 C 2 の場合 1, 2 と 2, 3 と 1, 3 を出力させたいんです。 n C m で n と m を可変で実装したいんですがさらっと出来る方いらっしゃいますか?
宿題は宿題スレへ
再帰使えば簡単
馬鹿乙
質問内容は「さらっと出来る方いらっしゃいますか?」だ やり方なんて聞かれてないだろ
それくらいPGなら簡単だけど条件がよく分からん。
236 :
宿題バイト :2013/10/01(火) 00:19:57.32
>>228 できるよ。
メアドに送ってきたらやるよ。
そのかわり500円くれ。
掲示板で質問したら本文が残るからメールで教えてあげる。
237 :
宿題バイト :2013/10/01(火) 00:20:39.41
いつまでにやればいいんだ? 明日とかなら簡便。 3日後とかなら良いよ。
さらっと出来るとわかったので解決しました ありがとうございました
ありがとう
sも引数にすればいいのに
242 :
デフォルトの名無しさん :2013/10/01(火) 08:17:04.22
Cにもアキュムレータってある?
xが1、yが2 x&y → 0 x&&y → 1 がわかりません
定義がわからないことがわかった
245 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/01(火) 09:48:08.81
>>243 xを二進で表すと01であり、yを二進で表すと10である。各位ビットごとのAND演算を行うと、1の位が0 AND 1=0で、
ニの位が1 AND 0=0となるので、(x&y)==(1&2)==0となる。一方、x&&yは論理積である。xもyも非ゼロであるからtrue&&trueとなってx&&y==trueである。
>>242 その概念はありません。
敢えて言うなら、int変数が該当するかもしれません。
>>242 アセンブラの話と想定すると
アキュムレータはないけど
変数でそれっぽく計算するための演算子はある(++,+=,>>など)
何か違う気がする
c++のstlにならシーケンスの総和を求めるaccumulate関数がある
CPUの話?
アセンブリャにもアキュムレータあるよ ベースポインタもこーどセグメントもデェスチネーションINDEXも
>>252 いきなり得意気に一部のCPUの話をされても……
アキュムレータ程度なら無くても作るのは簡単だろ Cだとテンプレートないからマクロのがいいだろうけど
255 :
デフォルトの名無しさん :2013/10/01(火) 16:56:00.47
アキュームレータという呼び方、インテル以外でもするの?
二次元配列で array[固定][動的] というのはできますが array[動的][固定] とする方法があったら教えてください
二次元配列に拘らず、構造体経由したら? struct A { type e[固定]; }; struct A* array; array[動的].e[固定] になる
int (*array)[固定]; int *array[固定];
{ int jx, jy, j; static char *a; float *X, *Y; a = (char *) malloc(sizeof(float)*Lx*Ly); for(j = 0; j < Lx*Ly; j++) a[j] = (char) 120; (中略) for(j = 0; j < n ; j++) { jx = MIN2(MAX2(0, (int)(X[j]*(float)Lx)), Lx); jy = MIN2(MAX2(0, (int)(Y[j]*(float)Ly)), Ly); a[Lx*jy + jx] = (char) 250; } (以下、略) 超初心者です。上はあるサンプルコードからの抜粋です。 a[j]=(char) 120 a[Lx*jy + jx] = (char) 250 それぞれ、配列aに何を代入しているのですか?
260 :
256 :2013/10/01(火) 17:36:40.10
'\x78'と'\xfa'
>>261 すみません、当方の環境では、(char)250 は、-1となるのですが・・・・
(gcc4.2)
264 :
259 :2013/10/01(火) 17:50:32.62
まちがえました、-6 です
char の範囲が -127 〜 127 の系で (char)250 の結果かー
-128 〜 127 ですね
267 :
259 :2013/10/01(火) 18:25:49.65
つまり、(char)120とは、何をしとるんでしょう?? ふつうに120とするのと何がちがうのですか?
>>267 1)charにキャストしてる
2)まあ意味は無い。char型の変数に代入してることを強調したかったのでは
>>267 普通に120だとintだが、(char)120と書けばcharになる
ただ左辺がcharならコンパイラがcharにしてくれる
次にコード見たプログラマのためのおまじないみたいなもんだろう
270 :
259 :2013/10/01(火) 19:24:47.14
横からだけど
>>259 > static char *a;
このような場面でstaticにする理由をご存じの方いらっしゃいますか?
>>271 このコードでは意味はない
ただ問題もない
273 :
271 :2013/10/01(火) 20:52:01.00
asctime();やlocaltime();などは関数内の static struct tm バッファへのポインタを返すね。 あと外部に関数内のstaticを公開しない場面でも使われるね。 例えば何度も呼ばれる関数で前回の状態を覚えておくのとか。
>>275 > asctime();やlocaltime();
> ctime();やlocaltime();
か
ヒープ領域返すのはどうなんだろ
ヒープ領域返すのは普通か xx_Createとxx_Deleteとか作ればいいか
localtime() == gmtime() を規格が要求している件
280 :
デフォルトの名無しさん :2013/10/01(火) 22:23:11.46
コードセグメントが80286からなのは知ってる
なぬ?
8086からだった アチャーw
はじめて読む8086オススメ
ぴょまいら何歳なの?
286 :
デフォルトの名無しさん :2013/10/01(火) 22:50:38.88
ちな俺21
はじめて読む486、お勧め 特に、int 20が秀逸
for(...) { 処理1 処理A 処理3 } for(...) { 処理1 処理B 処理3 } という感じでfor文の中に1箇所(1行)だけ違う処理(上記AとかB)がある場合、 マクロとか使って簡略化できないのもでしょうか?
>>272 > ただ問題もない
リエントラントでなくなる
ことが問題になることはあるかも
>>280 x86 と言えど一部の CPU であることは知っておいた方がいい
冗長にしておいた方が結局は後で手を入れるときにやりやすかったりする 最適化しすぎるのもどうかと思うね
>>288 マクロでできるし
フラグで分けることもできるし
ここでいう処理Aや処理Bって、関数呼び出しなの?それとも処理の塊なの?
>>288 例えば↓のような書き方はできる
#include<stdio.h>
#define MACA { puts("a"); }
#define MACB { puts("b"); }
#define MACMAIN(ARG1) { \
for(i=0;i<2;i++) { \
puts("1"); \
ARG1 \
puts("3"); \
} \
}
int main()
{
int i;
MACMAIN(MACA);
MACMAIN(MACB);
return(0);
}
素直にifでいいじゃん
>>288 二回ぐらいなら素直にベタ書き
もっと多いなら関数化して、if か 関数ポインタ
ここで聞くようなレベルならマグロは使うな
c99 の inline さんがよきに計らってくれるよ
gcc -S [filename]してみ
freadの第2引数と第3引数を間違えると不都合な場合はあるでしょうか? 第1引数がint型のポインタだったりすると、場合によってはSegmentation Faultすると思いますが、 void*やchar*に読み込む場合は変わりないですよね? もしレアケースであっても違いの出る場合があったら教えてください。
INT_MAXをfor文の条件式にいれると出力されなくなるのですがどうすればいいでしょうか
修正すれば?
>>304 初心者なのでどこを修正すればいいのか分からないです、、、
#include<stdio.h>
#include<limits.h>
int main(void)
{
int x,n;
x=0;
for(n=2;x<=INT_MAX;n=n+2)
{
x=x+n;
}
printf("int型での偶数の総和は%d,最大のnは%d",x,n-2);
return 0;
}
x は int型だから x に何かを足してINT_MAXを超えることはないでしょ オーバーフローしてマイナスの値になってる
ありがとうございます、理解しました
>>305 初心者がどうかしたの?
言い訳してるゴミが成長するわけないだろ
成長しないゴミに教えるような無駄な労力を使わせるな
二度と来るなよ
311 :
デフォルトの名無しさん :2013/10/02(水) 18:15:24.47
指定日以外ゴミをださないように[当番]
int型での正の偶数の総和と最大の偶数を求めるの? #include <stdio.h> #include <limits.h> int main() { int i, max_even = 0; double sum = 0; for (i = 2; 2 <= i && i <= INT_MAX; i += 2) { sum += i; max_even = i; } printf("int型での偶数の総和は%.0f,最大のnは%d", sum, max_even); return 0; } 時間かかるよ int型での偶数の総和は1152921502593581312,最大のnは2147483646
なぜdoubleを使うのか?
短気な人多いよね
317 :
デフォルトの名無しさん :2013/10/02(水) 19:23:14.01
>>305 みたいに初心者を免罪符に使うってクズの典型じゃんw
318 :
305 :2013/10/02(水) 19:24:05.89
>>314 大学からの問題だったのですが、問題がすごく不親切なんです
恐らくint型で表現できる最大の偶数の総和と総和に使われた最大の偶数nを求めろってことだと思います
さきほど書いたソースコードを少し改良したらいけました
お前らははじめて読む8086、はじめて読む486、はじめて読むMASM、プログラミングの力を生み出す本、エキスパートCプログラミング詠んでから出直してこい
>>318 は人間の初心者なんだろ。
まともな思考回路してないし、
迷惑だから書き込むな。
荒らすのが目的ならまたどうぞ書き込んでください。
323 :
305 :2013/10/02(水) 19:31:39.74
プログラム板に来たのはこれが初めてでして、質問をする場所が間違ってたのならすいません スレタイ的にここが質問スレだと思ってしまいました
>>323 頭がアレな人が一人ずっと頑張っているんだよ
スルー推奨
C言語については初心者でもいいが、「人間の初心者」はお断りだ。
>>303 をみて答えられるエスパーなどいない。
328 :
デフォルトの名無しさん :2013/10/02(水) 19:41:41.92
>>323 お前が余計な情報を付加するからだろ
自業自得
そんなことも理解できない奴がプログラミング()
かかってこいよ
>>326 日立のマイコンか?
いいんじゃね、別に
兎にも角にも今の若いのはassemblerの知識がないから駄目なんだよな
初心者に噛み付いてる人については、どう思いますか?
>>328 プログラミング関数(引数なし)の呼び出しですね、わかります
俺はZ-80アセンブラプログラミング入門とMS-DOSマクロアセンブラ入門だったな
336 :
デフォルトの名無しさん :2013/10/02(水) 20:08:09.29
ゼッパチいいよなゼッパチ
このようにかわいそうな人がいるのです
338 :
デフォルトの名無しさん :2013/10/02(水) 20:15:13.65
テンプレ?
Z80だとアレだけど、ARMとか全然かわいそうって感じしないな
ここまで68020はいない
ろくまんはっせんもよいよね リニアなアドレス空間がよいよね
343 :
デフォルトの名無しさん :2013/10/02(水) 20:44:24.81
副業で食っていけるようになりたいんだけど 勉強するならやっぱC?
php
C++をマスターできれば、C・C#・Java・Objective-Cまで一気に理解できるはず
初心者向けスレでの嫌がらせしか出来ない手合いは、無視に限る。
C/C++はポインタを理解できるかがポイントらしい。 JavaとかC#だとオブジェクトの入れ物としか考えられてないが、具体的なメモリアドレス (現在では機械的に仮装アドレスになっているが)を示してヒープを確保するなりスタックを 使うなりすればどの様にも使うことができる。 アセンブラ→C→C++が近道に見えるが、アセンブラで組める環境がなあ…
そこでM$のDEBUGの出番ですよ さすがにMASMまではついてこないけど
351 :
デフォルトの名無しさん :2013/10/02(水) 22:18:16.38
C++の質問なんだけど int型データ3つの構造体があります typedef struct{ int iData1; int iData2; int iData3; } t_ST; この構造体が例えば10個あります 値はランダムな物が入ってます それを、ソートするアルゴリズムを考えてるんだけどなかなかうまくいかない ソート方法はiData1昇順→iData1昇順を保ったままiData2昇順→1,2保ったまま3昇順 例えば {1,1,1} {2,1,1} {2,0,1} {1,1,3} {1,0,1} と並んでたとしたら、結果的に {1,0,1} {1,1,1} {1,1,3} {2,0,1} {2,1,1} とソートしたい。知恵をお貸しください。
学習用ならCASLでいいじゃん 今はもう無いのかな
351の補足 C++のコンテナを扱うdequeは使っていい前提です vectorは遠慮願います(ソース統一性のため) 関数の汎用性は高ければ高いほどありがたいです 最低条件として、データ数は何レコードあってもソートできること
>>351 安定ソートを使って
1.iData3 でソート
2.iData2 でソート
3.iData1 でソート
これでおk
基数ソートってのと同じ考え方
>>353 ぐぐりましたが読みづらいですね…
>>355 iData3でソートって指定の仕方はどうするんでしょうか?
deque<TEST>test();
stable_sort(test.begin(),〜〜,test.end());
だとは思うんですが分かりません。
358 :
デフォルトの名無しさん :2013/10/02(水) 22:30:12.20
>>354 t_STを比較する述語を用意してstd::sortを使う。
分かりました。C++スレに行きます。申しわけございませんでした。
ぶっちゃけると分からない
後だしするような奴には馬鹿の壁がある
363 :
デフォルトの名無しさん :2013/10/02(水) 23:07:53.05
後出しと初心者を免罪符にする奴はクズ
>>340 アセンブラで組むなら、6502が最高だと思う。
>>305 はプログラム組む資格ないでしょ。
頭が悪いほどにも程がある。
必要のない情報を書いて何がしたいのか意味不明。
必要のない情報から雑談を誘発させようって荒らしかね。
プログラム組む資格が無いのはむしろ
>>355 頭が悪いにも程がある。
> 安定ソートを使って
> 安定ソートを使って
> 安定ソートを使って
> 安定ソートを使って
> 安定ソートを使って
> 安定ソートを使って
こんなバカが回答とか激わら
確かに 6502 は最高に面倒臭いな
368 :
デフォルトの名無しさん :2013/10/02(水) 23:23:38.75
文字列のソートする時も 安定ソートを使って 0.文字列の最大長を求める 1.1文字目でソート 2.2文字目でソート 3.2文字目でソート ... n. 最大長までソート とかやるんだろうな。激わら
369 :
デフォルトの名無しさん :2013/10/02(水) 23:27:38.18
超並列向きかもですね。 よくわかりませんが。
370 :
デフォルトの名無しさん :2013/10/02(水) 23:32:37.91
激わら
>>355 =プログラムを組む資格も回答する資格もない
ひとつくらいは出来てるだろう
基数ソートはO(1)のアルゴリズムを使うときには有効
これ基数ソートで駄目な理由て何があるの? 使ってくださいと言わんばかりのデータ定義だけど。
基数じゃないからじゃね?
バケットなしでデータごとにソートすると提案してたんか。 そりゃ馬鹿と言われるわ。
>>379 要素数が 0 または 1 のときに限り正しい可能性がある
どういう可能性? 結局、ソート関数を空呼び出しするだけ遅いような。
バックスペースキーがめり込むようになった。部品をよく見るとプラスチックが少し摩耗していた。 使っていないscroll lockの部品と取り替えたら治った。
>>355 のバカっぷりを笑ってるだけで、別にあさっての方向には行ってないだろw
Where is day after トゥモロー?
スクリプトからくると、Cの戻り値がついた関数名が多いんですけど、あれは大事な事なんですか? vAbc()とかint16Hoge()とか。 名前の付け方に違和感を感じるこの頃。
スクリプトからくるの意味がわからんけど それを書いた人の趣味では
Scriptにもリターン値あるが… sub marine { $hoge = 10 }
>>387 hoge厨はさっさと消えろ
ここはお前の落書き帳か?
>>385 長さが大事って強調したいんじゃない?
たまに見かけるけど、そんな一般的な名付けじゃない
>>388 ダマスカス
そのままブーメランにしてやんよ
あ、
>>351 でキチガイみたいなプログラム書いてみた
構造体を無理やりint*にreinterpret_castしてstd::lexicographical_compare()で比較した
構造体は途中にパディングを入れられても文句は言えないからこういうのはやったらダメです
>>391 お前日常会話でも、あって言ってそうだなw
あっあっ厨乙
>>392 プログラムが書けない無能はそういう所で人の重箱の隅をつつく事しか出来ないですよね
395 :
デフォルトの名無しさん :2013/10/03(木) 21:36:54.02
ゲームの製作において画像や動画を パスで読み込みするときはPCによって変わるんだけど どうやってるんですか?パス名がユーザーによって変わるのに 何で毎回読み込めてるんですか?
相対パスというものがあってな
397 :
デフォルトの名無しさん :2013/10/03(木) 21:45:04.41
>>396 例えばhtmlのjavascriptだとどうなるんですか?
C言語の環境だとVC++もDelphiのアプリもちゃんと相対パスでできると
主運だけどhtmlでも大丈夫ですか?
今ってハードとソフトってどっちの性能が優れているの? 正確に言えばどっちかの進化にもう片方が付いていけてないってのはあるのですか?
void main(void)ってあり?
あり
>>399 日本語とコンピュータの本を勉強しなはれ
>>402 ハードの性能をソフトが引き出せてない
それとは逆にソフトの性能が良すぎてハードが対応できない
とかあるのですか?と聞いています。
>>403 チューニング、コードの最適化ならいろな方法があるが
405 :
デフォルトの名無しさん :2013/10/03(木) 22:17:28.51
Cのスレなら、ハードウェア優先だろう。すなわち、ソフトウェアがおいついてない。 デバイスドライバがタコだからうんぬん・・・
ソフトウェアはもっと快適に動くようになるって事ですか? これ以上最適化する事とかあるんでしょうかね? もう考えられる事はとっくにやってるんじゃないですか?
ムーアの法則でぐぐってみ
手頃な質問か
デバドラなんか、ハード屋の言うとおりにレジスタ叩くだけだから ハード屋の考える限界までは性能出せるけどそれ以上にはならないし、それ未満ならダメプログラムだ
411 :
デフォルトの名無しさん :2013/10/03(木) 22:33:31.84
そもそもハードをフル回転させるどころか 休ませて省電するのが今のトレンドだろ
>>385 変数をハンガリアンにするときもある、一時アプリケーションハンガリアンを志したときもある
今でもスコープに関してハンガリアンはやるときもある
しかしハンガリアンの評判は昔も今もよろしくない、当時も馬鹿にされた、システムハンガリアンはしない
関数については返り値に関するハンガリアンはやらない、ただシステムコール/API と区別をつけたくて、自分で定義した関数をハンガリアンとしたことはある
今は、システムコール用にハンガリアンラッパを置いて、サンドボックス的なモジュールを経由して本尊をコールしようかと検討中
まあ、一般には関数にハンガリアンはしないと思う
>>400 int main(void) が一般的
void main() はキチガイ扱いされるのがオチだからやめておけ
C11の_Genericで何か面白いことは出来ないだろうか
hoge使うような奴をまともに相手にするのが間違い hogeの意味すら説明できない奴がほとんど 意味を説明できないものを使うとか、 しかも他人に何かを伝えるときに使うとか 頭おかしいんじゃね?
ぬるぽ
> 意味を説明できないものを使うとか、 これが違うね。hoge厨はここを理解していないのか。
anti-hogeの人はfooはいいの?
おれはhogehoge()とかよく使う。
俺もtypedef int HogeのHoge hage()とかよく使う
じゃあ俺も
ほげはげwwwwwwww
英語ができないってかわいそうだな 俺なんかpublic virtual const def pureし放題だもんな
Cでもhogeし放題だもんな
C以外でもhogehogeし放題だろ
hogeとか馬鹿じゃねwww
要素が20~30個のデータに対して 高速なソートアルゴリズムの名前を教えてください。 78K0Rという16bit CPUを13.5MHzで動かしていますが 中央値を求めるために4ms以下にしたいです。 バブルソートにしたら8ms以上かかってしまいました。 データは struct{ int x, y; } v1, v2; 比較式は (long)v1.y * v2.x < (long)v2.y * v1.x intは2バイト、データはint x, y; ポインタは4バイトです。
>>440 ソートは自前で実装してる?
inline化するとか、変数をregisterに割り付けるとか、どうだろうか
>>440 それって
A>B かつ B>C のときに A>C が成り立たないから
ソート結果に意味がなさそうな気がする
445 :
440 :2013/10/04(金) 19:03:02.79
みなさんありがとうございます。
>>441 クイックソートでしょうか。
とりあえず、探してきます。
>>442 自前です。ライブラリは使えません。
比較式はソート関数内に直接書いています。
registerも使ってみます。カウンタに使えば良いでしょうか?
>>443 条件を書き忘れてました。すいません。
データの範囲は0≦xです。
もとは以下の式です。
v1.y / v1.x < v2.y / v2.x (実数として)
傾きの大きさを比較します。
>>445 inlineっつうのは、C89ならマクロ関数で書くってことだ
展開されたアセンブリコード見て、サイクル数足していけばそれが本当に出来るか分かるんじゃないかね
シェルソートもあるよ
449 :
デフォルトの名無しさん :2013/10/04(金) 20:10:03.58
プログラム作成スピードは遅いが質のいいのを作るプログラマか スピード速いが凡庸で最低条件を満たすプログラムしかつくれないプログラマ だとどっちが重宝しますか?
作成スピードが速くてテストもドキュメントも書いて 質のいいのを作るプログラマ
存在するかどうか、可能であるかどうか。ただしく、すなおにかんがえるひとがいい。 雑なひとは、だめだめ。プログラマにむいてない。論理的な思考が必要
達人プログラマーおすすめしておくは
プログラム作成スピードは遅い ← 訓練中なら仕事が来る。いつまでもそれではこまる 質のいいのを作る ← 上に行くほど理解者がすくなくなる(誤解されやすい。けおとされる可能性もある) スピード速い ← わかりやすいから仕事が来る 凡庸 ← 実務というのは、そういう一面がある。没個性(ほぼ期待どおりの仕事ができる) 最低条件を満たす ← わかりやすいから仕事が来る
最低条件を超えるものも未満のものも、作る必要ない
455 :
440 :2013/10/04(金) 21:31:32.67
>>446 >>448 コムソートとシェルソート使えそうなので試してみます。
>>447 マクロ関数というのが使えるか調べてみます。
みなさん、ありがとうございます。
よくつれました◎
半分おわったところで打ち切っていいしね
0以上r未満の整数から重複無くn個選ぶ順列rPn通りから1つを一様な確率で時間O(n)で作るソースください。
>>440 > (long)v1.y * v2.x < (long)v2.y * v1.x
意味不明
> (long)v1.y * v1.x < (long)v2.y * v2.x
ならわかるが。
こういう事ならソートする前に積を計算しとけ。
中央値を求めるならば全部ソートする必要はなくて、クイックセレクトと呼ばれるアルゴリズムが存在する。
こんなのに喜々として公開オナニーを見せつけるゴミクズはいつまで生きているんだろう。
とっとと死ねばいいのに。
>>460 小学校の算数も分からないゴミが偉そうにw
462 :
デフォルトの名無しさん :2013/10/05(土) 09:25:50.82
ゴミしかいないスレ
>>460 >クイックセレクト
thx4 keywords これはいいね
464 :
デフォルトの名無しさん :2013/10/05(土) 09:33:53.01
またゴミが来た
太陽捕まえんぞ()
>>445 >比較式はソート関数内に直接書いています。
ソート関数にしないで、main内に比較式を書く。
ゴミがドヤ顔でゴミ知識披露w
>>466 コールとリターンで9サイクル浮くな
0.7usくらいか
469 :
440 :2013/10/05(土) 12:12:25.76
コムソートとシェルソートを試して、5msくらいになりました。
>>457 >>458 charやintのインデックスのソートに置き換えてみましたが、
インデックス構築とアドレス演算のコストがバカにならないらしく
遅くなってしまいましたのでリストも使えなそうです。
あとは、代入回数を減らすとか、そういう最適化になりそうです。
ありがとうございました。
組み込み始めたんだが規格全然まもられてなくてワロタ わけわからない実行時エラーばかりで心が折れそう
ゼッパチ?ゼッパチ?
その守られてない規格って何だ? 実行時エラーは自分のせいじゃないのか
組み込みはじめました おでん、煮込みか
Cのヘッダかソースから関数宣言を取り出すのに簡単な方法ないかな? ctagsが使えるかと思ったんだけど、宣言を複数行にわたって書いている場合 関数の型や引数を取りこぼしてしまうのでダメだった。 yacc/lexの定義から自分でパーサー作るなんてのはさすがにやりたくないし。
色々やったが結局パーサが一番楽だし確実だよ
そこでbison/flexですよ
477 :
デフォルトの名無しさん :2013/10/05(土) 19:41:26.67
cproto
ざっくりやるならヘッダを { } と ; で区切るだけだが 精密にやりたいなら bisonでパーサーだな C系の宣言はキーワードで切り出せないから思ってる以上に厄介なシロモノ 自分で好きにいじれるならヘッダに定型のコメントを突っ込むのが楽
この早さなら言える 今日はオレの誕生日 プログラミングは置 いといて、英語の勉 強するは。。。。。
プログラムなんか作ってどうするのよ 周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに プログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ しかも10年も経てば今やってることなんざ時代遅れの何の役にも立たない糞知識と化すの分かってるのに 時間とエネルギーの無駄TOEICの勉強でもしてた方がなんぼかマシ残念
英語を勉強することが目的ではなく、英語を使って何ができるかです
PGで成功するには高専とか専門学校言って信用できる友人作って起業した方がいい
>>477 >>474 ありがとう、今回はcprotoでいけた。
言われて気づいたけど、昔同じようなことをやるのにdoxgen使ったのを忘れてた。
486 :
デフォルトの名無しさん :2013/10/05(土) 21:36:48.73
一番速いソートはバケットソートでしょ。 ほぼ時間0で探索可能。 クイックソートなんて比べ物にならんくらい早い。
>>440 >>445 > v1.y / v1.x < v2.y / v2.x (実数として)
比較関数で毎回この計算していたら遅くなるね。
最初に20〜30個の y / x を求めて、それに対してソートすれば
ずいぶん早くなるんじゃないの。
>>445 > データの範囲は0≦xです。
> v1.y / v1.x < v2.y / v2.x (実数として)
x == 0.0 の時もあるのか…
491 :
487 :2013/10/05(土) 22:57:40.84
>>490 ああ、そうか。
> v1.y / v1.x < v2.y / v2.x (実数として)
を計算するわけじゃないね。
俺の書き込みは見なかったことにしてください。
doubleのある値fより大きい最小の値が欲しい場合、f*(1.0+DBL_EPSILON)でいいんですかね? それとも、この式だと問題ありますか?
?
>>492 よく分からないが、多分よろしくないと思う
横だけど、doubleの定義は?
あぁ、fが負の場合が考慮されてないってことですかね?正の場合なら問題ないですか?
人の話を聞く気がないのね、お休み
>>492 機械イプシロンの意味分かってるかな
int main(void)
{
double d = 1.0, e;
e = d + DBL_EPSILON;
if (d == e)
puts("d == e");
else
puts("d != e");
return 0;
}
これの意味が分かれば理解出来てるだろ
>>492 f + DBL_EPSILONじゃないの?
ヒント:指数
仮数部をint型とみなして1足せばいいんじゃね? double a = -1.0 / 9; uint64_t b = *((uint64_t*)&a); uint64_t c = (((uint64_t)1) << 54) - 1; uint64_t d = b & (~c); uint64_t e = b & c; uint64_t _e = e + 1; uint64_t _b = d + _e; double _a = *((double*)&_b); printf("%.20f, %.20f\n", a, _a);
>>492 例えば f が0よりも大きく、かつ0に最も近い値だった場合はどうなる?
505 :
デフォルトの名無しさん :2013/10/06(日) 01:30:02.38
非正規化数の場合は確かに問題ありますね。正規化数なら問題ないでしょうか?
変数++の++がないことに気づかないで半日バグってた・・・
>>506 default: が defualt: になってた俺よりマシ
f + f * DBL_EPSILON だとどうだろう
>>492 任意の浮動小数点数の機械イプシロンはその指数部の値に依存しているから、単純に掛算ではもとまらないと思う。
指数に依存するから掛けるんじゃねーかな? 求まらない例ってどんなのがある?
仮数なら乗算だけど、指数ならべき乗じゃないの
FPUん中どんな処理するか知らんけどビット動かすだけなら x+=(*(double*)&(*(uint64_t*)&x & 0xfff0000000000000))/0x8000000000000; じゃね
>>508 どんなエディタ使ってるのさ
Emacsならイチコロさ
てかプログラマがドザーってどうよ まさかCygwinで開発してるの? Virtual Boxとか?
>>515 ベンダー提供の組み込み開発環境って、Windowsばっかじゃね
まさかアプリケーション作成で今さらC使うやつなんていないだろうし
>>507 open64のnextafterの実装見てみたら、非数とかチェックした後は
指数と仮数を区別したりせず単にuint64として1足してるだけだった。
仮数部の桁上がりがあるときは全bit0になるからこれでいいんだな。
523 :
デフォルトの名無しさん :2013/10/07(月) 23:07:03.72
>>517 Cのインタフェースが用意されていれば、どの言語でも結合できる
果たして自分でやってみた上での発言だろうか?
とうしろうだろうjk
SDL
527 :
デフォルトの名無しさん :2013/10/08(火) 08:34:49.27
>>522 ダメに決まってんだろ バカ
理由は自分でかんがえろ
「俺に聞け」スレで言う台詞じゃねーな。
529 :
デフォルトの名無しさん :2013/10/08(火) 11:22:31.98
C言語以前の問題だから
530 :
デフォルトの名無しさん :2013/10/08(火) 11:54:53.00
スルー検定、死屍累々だな
倍精度実数型の変数xを定義して、2.84521で初期化する。また、整数型の変数をそれぞれ、a=1.b=2.c=3と定義する。y=ax^2+bx+c yが上の式で与えられたとき、yの値を計算して、画面出力のプログラムです。 浮動小数点型の変数xとyを定義して、それぞれに、1.5,1.2を代入する。 z=x^2-y^2 zの計算をして、結果を画面出力するプログラムです。誰かわかりますか?
/*
>>531 前者 */
#include <stdio.h>
int main()
{
double x = 2.84521;
int a = 1;
int b = 2;
int c = 3;
printf("y = %g\n", a * x * x + b * x + c);
return 0;
}
/*
>>531 後者 */
#include <stdio.h>
int main()
{
float x;
float y;
x = 1.5;
y = 1.2;
printf("z = %g\n", x * x - y * y);
return 0;
}
ありがとうございます( ^∀^) 助かります。
円の半径radiusが10.0cmのとき、円周circumおよび面積areaを求めるプログラムの作成、ただし、変数はdouble型、円周率は3.1415926とし、小数点以下5桁目まで表示。 出来ればお願いします。
πは 3.14159265358979… だから 3.1415926 ではなく 3.1415927 であってほしいな
宿題スレの方がいいんじゃん
539 :
デフォルトの名無しさん :2013/10/08(火) 20:47:29.52
スレ的にどこまでが入門?
脱初心者するまえにハゲと同レベルにはなりたいね
542 :
デフォルトの名無しさん :2013/10/08(火) 21:08:20.49
>>541 はぁ?
明確な基準もないものを掲げてんの?
お前プログラマーじゃないだろ
早く板から出ていけ
数年前までは物理的に門があったんだが撤去されちまったからな
羅生門
南大門
>>522 試してみればわかるが、両者は必ずしも一致しない。
とはいえ、差は高々1LSBだし依存するのはおそらく仮数部のMSBにだから
QZの言ってることは正しくないと思うがな。
double f = M_PI;
union {
double d;
unsigned __int64 u64;
} a, b, c;
a.d = f * ( 1.0 + DBL_EPSILON );
b.d = f;
b.u64 += 1;
__int64 diff = a.u64 - b.u64;
ハッシュテーブル作りたいんやけど チェイン法 と オープンアドレス法 どっちがいいの?
スピード重視ならオープンアドレス法 データの削除と追加が頻繁に行われるならチェイン法 平均的な速度と効率を出すには両者併用
549 :
デフォルトの名無しさん :2013/10/09(水) 00:35:36.78
チョンからのアクセスをCGIレベルで弾きたいのですが、設計から教えてください。 判定にはAPINICからテキスト形式のIPアドレスリストをダウンロードして使いたいと思います。 リストは週1程度で定期的に取得する予定です。 このリストはどのような形式で持っておくのが良いのか望ましいのでしょうか。 CSVのようなテキストファイルで持っておくのか、データベースに入れておくのがよいのか。 またそのときの表記は123.123.123.123/30のような形式が良いのか、123.123.123.123〜123.123.123.126のような形式が良いのか。 もしくはもっと他の方法が良いのか。 判定方法にも関わる部分なので判定方法も含めて回答をお願いします。
550 :
デフォルトの名無しさん :2013/10/09(水) 00:48:50.20
ファイルよりDBが早い 表記は正規化
>>546 >差は高々1LSBだし
ためしてみると結構一致しますね.もっとだめかと思ってた,float で試してみました.
http://codepad.org/pkYX1f3i >依存するのはおそらく仮数部のMSB
?
仮数部の刻み幅,いいかえるといただいたコードにある「+= 1」の実際の量を決めるのは指数部なのでは?
>>547 −548
オープンアドレス法における衝突時処理のいろいろなやっかいさ(削除するときも空白マークとは別の削除マークをつけないと、そこで途切れちゃうよね)を考えるとまずはチェイン法でお手軽に組んじゃうよね。
チェインの方法を二分木にするとか結構うまくいきそうだ
>>549-550 Linuxのiptablesを参照すれば?
Linuxのパケット・フィルタリング、netfilter(iptables)では、
適用ルールを線形探索するので、ルール数が5千以上あると、
性能が極端に低下する
32ビット・カーネルでは、25,000で、カーネルメモリが不足する
次に、IP rangeは、IPアドレスが連続している場合にのみ、
使えるが、アドレスがうまくまとめられないこともある
3つ目は、IP setで、不連続なIPアドレス
(+ネットワーク・アドレス、MACアドレス、ポート)を、
1つのルールにまとめる
ただし、カーネル2.6.39以降で使える
線形探索は、データ数nに比例する、O(n)ので、
2分探索、O(log n)のアルゴリズムが選択できれば、速い
>>547-548 オープンアドレス法は、アルゴリズムがややこしそう
>>551 数値としての実際の値に影響するのは指数部だが、それには元の値との掛算でいい。
>>546 で言っているのは、真の後者との1LSBの差が何によるものかということ。
(1.0+DBL_EPSILON)の仮数部のビットパターンは定義により以下のようになる。
#(1)はケチ表現で省略されたビット
(1)00...01
このとき、次のビットパターンで表される任意の値との乗算は
(1)a*...**
以下の加算と同等だが
(1)a*...**
(0)00...01a*...**
このとき、aのビットが1のとき繰上げが起きると推測。
まあ、ここの動作は環境依存かもしれないが。
お前らネトウヨかよ…
仕事で中韓に投げると余計な手間が増えるから、 この業界だと中韓嫌いが多いんじゃねーの?
558 :
デフォルトの名無しさん :2013/10/09(水) 19:41:07.49
インドの山奥で修行して♪
ダイバダッタか?
まずはHogeで修行しないと
561 :
デフォルトの名無しさん :2013/10/09(水) 20:48:24.97
俺は Cu か Al まで Au の化身にはなれなかった 師匠の禁を破り Pb も使うが
青の錬金術師か?
Hogeのクェイサー
プログラミング初心者です。 学校で巡回セールスマン問題が出されたのですがプログラミングが出来ません… 近似解を求めれば良いのですが、とりあえず地点が5つ(地点0〜地点4)の場合を考えています。 それでスタート地点を地点0に固定にして開始して移動コストの一番少ない地点に飛び、 今度はその地点から移動コストの一番少ない地点に飛び、を繰り返して5箇所回るプログラムを考えています。 学校からはプログラムの雛形が与えられており、cost[i][j]が移動コストで iが移動元の地点の値、jが移動先の地点の値になっています。 続きます
地点0から始めて移動コストが一番少ない地点Xを求めるプログラムはわかるのですが、 地点Xから地点Yまで、地点Yから地点Zまで、と求める方法がわかりません。 具体的には地点Xから地点Yを考慮するときに、地点0と地点Yを抜いた残りの地点を任意の変数に格納する方法がわかりません。 例えば地点0から地点3に移動した時、残りの地点は地点1,2,4となるのですが、これを求める方法がわかりません。 これがわかればまずはひとつ進みそうなのですが…。 因みに出力はlist[N]で、N=0から回る順番を入れます(0→2→3→1→4と回るときはlist[N]={0, 2, 3, 1, 4}となります) わかりにくい説明ですみません。
ググれ 話はそれからだ
>>566 訪れたかどうかのフラグを配列で持つ。
例えば、visited[N]={1, 0, 1, 0, 0}なら残りの地点は1,2,4
>>565 ,566
課題の制約ある?
例えば、ダイクストラ法使っちゃダメ、とか。
570 :
デフォルトの名無しさん :2013/10/10(木) 01:10:47.02
ソケット通信以外の通信って(実用的に使われてるもので)あるの?
パイプとか?
>>570 ソケット以下の層の通信なら映像配信とか機械制御とかいろいろあるけど
何を以ってソケットと言ってるのか
573 :
デフォルトの名無しさん :2013/10/10(木) 01:30:19.74
WEBからデータ受け取ってごにょごにょしたい時に ソケット以外の通信ってあるのかなと思って
575 :
デフォルトの名無しさん :2013/10/10(木) 01:58:40.81
じゃあソケットの勉強だけでいいんだね サンキュー
576 :
デフォルトの名無しさん :2013/10/10(木) 02:03:27.82
学校の課題の問題で詰まったから教えてほしい 要素の数が40の文字型配列 str1, str2, str3 を、初期値なしで宣言する。 その後、str1 に "Let's" を、str2 に "study" を、 str3 に "programming." を代入し、これらの文字をつなげて出力するプログラムを、strcat 関数を使わない場合と使った場合の2種類作りなさい。 n1がなんちゃらってやつなのはなんとなく分かるんだけど、どこで使えばいいか・・・
>>576 strcat 関数を使わない場合
printf("%s%s%s¥n",str1,str2,str3);
581 :
549 :2013/10/10(木) 11:28:52.45
ありがとうございます。 とりあえず試験的に現在製作中のサイトでのみチョンDenyをしたかったのですが、 もうiptablesで80番443番ポートをチョンDenyします。
おまえらネトウヨかよ…
>>578 ごみかすだなぁ。
せめて、work[0] = '\0'するか初回のstrcat()をstrcpy()に変更するかしろよ。
出題意図がstrcat()相当の関数を自作しなさいってことだったらNGだな。
業務ならまだしもそれ以外なら基本的に中韓は火壁で全ポート弾くだろ
韓国だけ弾いてる。
どちらかというとネトサヨだけど 中韓は最優先、次点で露、南米を弾く
自宅鯖やってるんだけど 中韓からのブルートフォースアタックが異常に多い
アタック一度来たところは容赦なく遮断してる
おまいら纏めてスレ違い。
昔韓国からのアクセスを全ポートで弾いたら日本のとある施設からアクセスできなくなったことがある 俺の設定ミスかはたまた
clangってMacでインストールするの楽?
馬鹿には厳しい
>>592 特になんにもやった覚えはないが入ってるな
~:$ clang --version
Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix
~:$ uname -a
Darwin server.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
亀レスすみません。
>>568 なるほど。そうすれば良いんですね。
しかし自分のレベルでそれをうまくできるか…とにかくやってみます
>>569 制約はないです
最小経路探索法のクラスカル法と 最短経路探索法のダイスカトロ法の違いが分からん。 どっちも同じアルゴリズムになるんだが。
最小全域木問題のラスカル
598 :
デフォルトの名無しさん :2013/10/10(木) 20:00:02.88
Cのgotoって 何で :LABELじゃないの? LABEL:だと解析しにくくないか? 例えばforというラベルがあったらどうするんだろう? for:だとコンパイルエラーになりそうな気がするが。
予約語は使えないだろjk
アセンブラのラベルが label: だったっしょ
Cってポインタとか難しいわー
そんな決まりあったっけ?
Rubyよいよね Cで書かれてるってところがスレチじゃなくてよいよね
>>598 その書き方DOSとかのバッチファイルだけのやね、他の処理系はたいがいラベルは Label: と後ろにコロンを置くものだよ
606 :
デフォルトの名無しさん :2013/10/11(金) 08:33:30.14
バッチファイルだと、 goto for :for できるし、このほうが合理的だね さすが、後でできたもの goto ラベルのあの書き方は BCPL からあったものだし
バッチファイルみたいにラベル行はラベルしか書けない という手抜き仕様でないと、行頭コロンはしづらいんだろうね
608 :
デフォルトの名無しさん :2013/10/11(金) 09:25:33.47
え? だって改行は空白類じゃん
609 :
デフォルトの名無しさん :2013/10/11(金) 16:56:07.48
ところでC11の機能って使ってる?
610 :
デフォルトの名無しさん :2013/10/11(金) 16:56:40.16
あとC++14の予定はあるのにC14は無いのは何故かな?
既に言語として完成されてるからに決まってるだろ
keyword: 蛇の足
C11ってどんな関数がプラスされたの。 VSでCの標準関数、使うと警告でて 「僕達、マイクロソフトは、こんな関数を用意したよ だから、こっちを使って」って出るたびに、うっせーバカ って思う。 あ、あと新しい関数や仕様の紹介やページのURLもし 張ってくれたら、俺にしたらどうでもいいので 持ってるNEXUS7をゴミ箱にすてます。 はー、AndroidアプリでC叩くのに忙しいー
614 :
デフォルトの名無しさん :2013/10/11(金) 19:58:47.74
>>614 atomic/threadとか、gets削除とか結構まともな変更入ってるな。
動的に宣言した2次元配列を引数にするときにプロトタイプの引数はどういうふうに書けばいいの?
動的に確保はできるが、動的に宣言はできない。
>>619 ごめん間違えました
配列の大きさは実行時に決まるのにプロトタイプの引数はどうすればいいの?
621 :
デフォルトの名無しさん :2013/10/11(金) 20:41:00.51
多分ポインタを使うことになる。その2次元配列らしきものはどういう風に確保してるのか?
>>621 とりあえず可変長配列です
まず大きさを入力してもらいその大きさの配列を可変長配列で宣言します
でもプロトタイプで引数はa[ ] [3]みたいに大きさを宣言しなくてはいけないので困ってます
ご存知の方がいましたら教えてください。
質問内容としては、
下のQAと同じ質問です。
http://okwave.jp/qa/q7823570.html 特に
----------
デフォルトゲートウェイがない状態で、C言語にてUDPのブロードキャストを送信したいのですが、
sendto: Network is unreachableとなってしまいます。何が原因なのでしょうか...
----------
この部分の理由ってわかりますかね?
624 :
デフォルトの名無しさん :2013/10/11(金) 21:08:47.77
また宣言と確保を混同してるよ…… int **pp; pp = (int **)malloc(n * sizeof(int *)); for (i = 0; i < n; i++) pp[i] = (int *)malloc(m * sizeof(int)); こんな風に書けば、ppはint **型で渡せる。サイズを表すm,nも一緒に渡せばいい。
>>624 void display(int **a);
int main()
{
scanf("%d", &n);
scanf("%d", &m);
int pp[n][m];
display(pp);
}
これでいけますか?
>>625 いや、単にLinux上でgatewayを設定していない状態だと
ブロードキャストをsendtoで送ろうとすると
エラーになるのだけど、何故だかわかる人いますかって話だよ。
setsockoptあたりで回避策があるのかなど知っている人がいたらなと。
>>630 知らないなら無理してレスしなくていいぞw
無視してくれ
634 :
デフォルトの名無しさん :2013/10/11(金) 21:36:56.26
>>224 Xcode入れれば?
勝手にコンパイラもインストールされる
\((*.*))/
638 :
デフォルトの名無しさん :2013/10/11(金) 22:09:50.15
void display(void *a, int n, int m) { #define A(i,j) ((int *)a)[(i) + (j) * n] ... } int main() { int n,m; scanf("%d", &n); scanf("%d", &m); int pp[n][m]; display(pp, n, m); }
#define A(i,j) ((int *)a)[(i) * m + (j)] でなくて?
話せば分かる
教えてあげないよ、ジャン
くやしい(棒)
644 :
デフォルトの名無しさん :2013/10/12(土) 00:06:55.04
くやしい棒って全然違う意味に・・・いや何でもない
俺も「くやしい棒」って何だ?と思ってしまった
647 :
デフォルトの名無しさん :2013/10/12(土) 08:30:23.63
>>629 こういうアホがブロードキャストしようするとは、世もまつだな
世も桐だ
埋め。
次が坊主かKKKかで、世代が分かる
アメリカのKKK? 釣れた?
世も、とんがれとんがれ
653 :
629 :2013/10/12(土) 13:02:23.92
自己解決
結局、DHCPなどでやってると思い、
フリーのソースを参考に実装しました。
解決方法としては、socketをSOCK_RAWで作成し
自分でパケットを作れば問題ありませんでした。
>>647 知らないならレスしなくていいよw
てかそんなに悔しかったのかよ・・・。
これで勉強になってよかったね。
655 :
629 :2013/10/12(土) 13:09:05.11
勉強になった、ありがとう
658 :
566 :2013/10/13(日) 01:11:43.07
数日前に質問したのですが、わからなかったので質問させてもらいます。
>>568 のvisited[N]={1, 0, 1, 0, 0}なら残りの地点は1,2,4
になるのは頭ではわかるのですがプログラムに出来ません…
どのようにすればよろしいでしょうか。
残りの地点の配列をplace[N]として
for文とif文で1と0の時で処理を変えれば良いのはわかりますが、
0の時に数値を代入するにはどうすればいいのかわかりません。
>>658 n番目の移動でxに移動する場合、list[n] = x とすればいい。
xを求めるには、visited が0の場所すべてについて、n-1番目に移動した
場所と距離がもっとも小さいものを探せばいい。(移動コストが隣接の移動間の場合)
移動コストをトータルで計算するのなら、仮の移動をして、全部移動した(n=Nとなった)
ときにコストを計算する。NP困難なので、この仕様にはしないほうがいい。
学校の宿題ならここで聞く前に先生に聞きなさい。
>>659 >NP困難なので、この仕様にはしないほうがいい。
>>565 で近似解とあるから、いいんじゃね?
661 :
566 :2013/10/13(日) 03:27:29.41
>>659 そのvisitedが0の全ての場所を探す方法がわからないんです(~_~;)
あとこの課題月曜提出で教授の連絡先がわからないというオマケ付きで
ここで質問しました。すみません。
提出は火曜じゃね?
次式のXに倍精度実数型データを入力しyを計算し、小数第二位まで表示。 y=(2x+1)(5x-3)/3x^2+2 実行結果 xに2.5を入力した例。 y=2,75
>>663 何で?
>>661 がどこの大学かは知らないけど、うちの大学は明日も問答無用で普通に授業あるよ
666 :
1 :2013/10/13(日) 14:16:25.12
日本の大学なら国民の祝日は休みだが
>>666 日本の大学だよ
チョンチュン留学生がかなり多いが
#include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFLEN 256 int main(int ac, char **av) { char buf[BUFLEN]; double x, y; while(1){ fprintf(stdout, "x = ? "); if(!fgets(buf, sizeof(buf), stdin)) break; if(!strlen(buf) || buf[0] == '\r' || buf[0] == '\n') break; if(!sscanf(buf, "%lf", &x)) break; fprintf(stdout, "x: %f\n", x); // y = (2. * x + 1.) * (5. * x - 3.) / (3. * x * x) + 2.; y = (2. * x + 1.) * (5. * x - 3.) / (3. * x * x + 2.); fprintf(stdout, "x: %20.17f, y: %20.17f\n", x, y); } fprintf(stdout, "\n---END---\n"); return 0; }
669 :
デフォルトの名無しさん :2013/10/13(日) 15:26:03.73
BUFLENだってきっしょW BUFFERLENGTHって書けないのかよこいつだっせW
結局sizeof(buf)してるから#defineは不要
名前なんて飾りです(AAry)
頭文字は「亜」か?
strとかcountとか省略したのとしないのがまぜっているのが嫌い
>>668 おやくそく
そのコードだと入力が BUFLEN - 1 バイト以上でちょん切れるね.
BUFLEN = 256 なんてサイズを増やしてなどという姑息なことをせずに,なんとかなりまへんかね?
675 :
デフォルトの名無しさん :2013/10/13(日) 15:50:01.80
わけのわからぬ特亜の主張
676 :
デフォルトの名無しさん :2013/10/13(日) 15:55:33.17
どの程度のことができるようになったら 「Cできます」と言えますか?
>>674 sscanf()でdoubleを読むだけなのに、そんなにバッファを大きくしてどうするんだ。
>>676 コンパイラが作れるくらいっていうのが業界の統一見解。
yaccとか使わないで、パーサージェネレーターの段階から自作できないと、コンパイラが書けるとか言ったらダメ。
OSは作れなくてもいいのか
>!strlen(buf) ちょっとアホすぎるんじゃないだろうか
682 :
デフォルトの名無しさん :2013/10/13(日) 16:29:35.27
>>678 そこまでだと何ヶ月もかかりそうですね
とりあえず入門書を読んで、簡単だったからできたと思ってしまいました
>>678 カーネル、システムコール知ってますかと思うた
684 :
デフォルトの名無しさん :2013/10/13(日) 16:35:50.48
>>683 そんなことはC言語知らなくても知ってるだろう
>>681 strlenが何を返したときに条件をみたすのか、そのときbuff[]はどうなってるのか考えてみたら?
>>686 !strlen(buf) は、strlen(buf) == 0 と等価だよ?
最初の1バイトだけチェックすればいいのに 文字列の最後まで走査してるからアホっつってんだろ
690 :
デフォルトの名無しさん :2013/10/13(日) 16:42:18.18
if(!buf[0] || buf[0] == '\r' || buf[0] == '\n') break; こういうことか
そもそもそのケースで文字列長が0になることってあるのかな
ないけどフェイルセーフとしては悪くはない
>>691 いきなりctrl-zとかctrl-dを押されたらどうなのかね。
694 :
デフォルトの名無しさん :2013/10/13(日) 16:46:28.57
フェイルセーフって意味知ってる? 使ってみたかったじゃねwwwwwwwwwww
695 :
687 :2013/10/13(日) 16:46:47.14
>>685 言語の仕様書が書ける以下なんだ
2層コンパイラ?
OSの知識と、プログラミング言語の知識は独立
>>678 ちょっと厳しんでないかい,簡単な数式処理くらいで勘弁してくれ
700 :
デフォルトの名無しさん :2013/10/13(日) 17:08:13.04
ドラゴンブック相当のパーサジェネレータは書けるだろうけど、実用には ほど遠いよ。
701 :
デフォルトの名無しさん :2013/10/13(日) 17:08:31.06
702 :
デフォルトの名無しさん :2013/10/13(日) 18:20:56.20
プログラムのサイズを調べるプログラムが書けたら「出来る」と言っていいよ
>>694 例えばfgetsを別な関数で置き換える事が将来あるかもしれない
その関数の仕様如何では役に立つ可能性はある
705 :
デフォルトの名無しさん :2013/10/13(日) 22:53:31.23
本当にQzは低脳だな。バカすぎる。
いい加減国に帰って欲しいですね
707 :
710 :2013/10/13(日) 23:08:57.94
>>700 > 実用にはほど遠いよ。
どう言うところが?
708 :
デフォルトの名無しさん :2013/10/13(日) 23:12:35.12
特に字句解析のテーブルが大きすぎるとこかな。 構文解析の進行によって字句解析のモード変える必要もあるだろうし。 ドラゴンブック相当では実用にならないと思う。 チマチマ改良しても意味なさそうなレベルなんだよね。
709 :
デフォルトの名無しさん :2013/10/13(日) 23:17:18.21
実際に作ってみたらガッカリ。 多少性能悪くても使えるレベルだと予想して取り組んだのに。 お勉強レベルで、実用には程遠かった。 特に字句解析。 構文解析は改良すれば使えそう。 でもなぜか、巷では構文解析を再帰下降で手書きしようみたいな解説が多いよね。 字句解析のほうが手書きする意義大きそうなのに。 対象の構文規則が解析能力を超える理由なら意味わかるんだけど。 そうでもないし。
710 :
710 :2013/10/13(日) 23:26:20.44
>>708 > 構文解析の進行によって字句解析のモード変える必要もあるだろうし。
???
711 :
デフォルトの名無しさん :2013/10/13(日) 23:31:19.05
> ??? ???
712 :
710 :2013/10/13(日) 23:35:53.45
なるほど、??? だとわからんか。 その程度ならしょうがないわな。
713 :
デフォルトの名無しさん :2013/10/13(日) 23:40:16.28
構文解析で字句解析のモードを変える需要は広く認知されている
主要な字句解析器生成系はモードをサポートしている
>>710 に説明責任があるな
715 :
710 :2013/10/14(月) 00:01:04.64
>>714 > 構文解析で字句解析のモードを変える需要は広く認知されている
具体的にどういうケースで?
>>715 ドラゴン嫁
前提知識が不足
話にならん
717 :
710 :2013/10/14(月) 00:11:51.86
>>716 ああごめん、具体的に書けないならそう言ってくれていいから。
718 :
デフォルトの名無しさん :2013/10/14(月) 00:19:39.23
ドラゴン以前 lexのstateの存在意義すら知らないボンクラは参加資格無し
719 :
デフォルトの名無しさん :2013/10/14(月) 00:25:04.37
よくありがちなのは、空白文字やコメントじゃないかな? これらを構文解析で処理しようとするとコンフリクトが起きることが 多くて、字句解析に頼るほうが楽になるとかあるよ。 JavascriptやHTML5の仕様では仕様書内にモードへの依存が明記されているし。 実際に必要とされているから実装されているんじゃないのかな?
720 :
710 :2013/10/14(月) 00:25:47.43
はいはい、具体的に書けないからってきゃんきゃん吠えるなよ (w
721 :
デフォルトの名無しさん :2013/10/14(月) 00:26:12.23
逆に、710さんはなぜモードが必要ないと考えるの?
722 :
デフォルトの名無しさん :2013/10/14(月) 00:27:44.69
あと、
>>710 の意味も知りたいな。
正直ほんとに???。
723 :
710 :2013/10/14(月) 00:33:38.73
>>719 すまん、
>>720 は
>>718 宛だ。
> よくありがちなのは、空白文字やコメントじゃないかな?
もうちょい具体的に書いてくれまいか。一応 C スレなので、C の例である?
> 実際に必要とされているから実装されているんじゃないのかな?
スクリプトとかだとそう言うケースがあるのは思い付くんだが、通常のプログラム言語であるんだっけ?
724 :
デフォルトの名無しさん :2013/10/14(月) 00:37:48.00
あ、別の人に聞いてくだし〜。 さようなり〜。
725 :
710 :2013/10/14(月) 01:06:08.44
Ubuntuも使えない雑魚が。
726 :
710 :2013/10/14(月) 01:10:09.87
>>724 なるほど、具体的に聞かれると困るようですな。
727 :
566 :2013/10/14(月) 01:28:55.22
>>662 ありがとうございます!参考にさせていただきます!
おはようございます。プログラム始めて1週間の工房です 3時間ほど足りない脳みそ使って考えてみたのですが解決しないので質問します 予想では引数の受け渡しがうまくいってなくてkazu関数の値を返せていないからだと思うのですが... よろしくお願いします #include <stdio.h> int kazu(int,int); int main(void) { int migi,hidari,kekka; scanf("%d %d",&migi,&hidari); kekka = kazu(migi,hidari); switch (kekka) { case 0: printf("少ない\n"); break; case 1: printf("普通\n"); break; case 2: printf("多い\n"); break; } return 0; }
729 :
728 :2013/10/14(月) 05:58:54.69
改行制限に引っかかったので分けました 続きです int kazu(int migi,int hidari) { int goukei = migi + hidari; if (goukei > 10) return 2; if (goukei > 5 && goukei < 10) return 1; if (goukei < 5) return 0; }
いきなりプログラム貼られてよろしくお願いしますとか言われても・・・
731 :
デフォルトの名無しさん :2013/10/14(月) 07:34:51.61
俺らに聞く前にコンパイラの警告をしっかり理解しろ 合計が10の場合
デバッガーの使い方を覚えろ 合計が5の場合
エスパーすると、migiとhidariの合計値で動作を変更したいのだと思うが、条件式がおかしい。 int kazu(int migi,int hidari) { int goukei = migi + hidari; if (goukei > 10) return 2; // 合計が10より大きいなら2を返す if (goukei > 5 && goukei < 10) return 1; // 合計が5よりも大きく、かつ10より小さいとき1を返す if (goukei < 5) return 0; // 合計が5未満のとき0を返す } あと、どの条件にも当てはまらないとき、関数の最後で値を返していないので警告がでるはず。
734 :
728 :2013/10/14(月) 10:23:26.88
>>730 こういう場合、どうやって聞くのがよかったでしょうか?
後学のために教えてもらえないでしょうか
>>731 >>732 算数ができていませんでした...ありがとうございました
>>733 分かりやすく指摘してもらいありがとうございました!
一応、これで指示通り動きました
if (goukei >= 1 && goukei <= 3){
return 0;
}else if (goukei >= 4 && goukei <= 7){
return 1;
}else if (goukei >= 8 && goukei <= 10){
return 2;
}else{
return 3;
}
もう少し寝てご飯食べてまた勉強しようと思います
ありがとうございました
>>734 >こういう場合、どうやって聞くのがよかったでしょうか?
大抵は、以下の1.〜3.の情報があればいい。
自分が質問された場合に、欲しい情報は何か?と考える習慣があると役に立つ。
1.やりたい事
例:
0未満の入力の場合、”小さい”と表示。
0以上の入力の場合、”大きい”と表示。
2.実際に起こった事
例:
0入力の場合に、"小さい"と表示されてしまう
3.回答者が状況を再現出来る程度の情報
例:
コンパイルが上手くいかない場合は
言語の種類、コンパイラのバージョン、OSのバージョン
736 :
728 :2013/10/14(月) 10:45:25.82
>>735 要点をまとめて質問すればよかったんですね
これからは気をつけようと思います
ありがとうございました
737 :
710 :2013/10/14(月) 11:05:00.89
おっ、礼儀正しい奴だな
738 :
デフォルトの名無しさん :2013/10/14(月) 11:12:00.32
なぜなら、each、map、lambda、yieldなどがあるからです。
宿題として宿題スレへ丸投げすりゃいいのに
741 :
デフォルトの名無しさん :2013/10/14(月) 13:19:09.04
2次元配列って難しい?
742 :
デフォルトの名無しさん :2013/10/14(月) 13:24:55.67
1次元配列と2次元配列の違いを教えろ下さい
743 :
デフォルトの名無しさん :2013/10/14(月) 13:30:34.94
1次元配列 == {1,2,3,4}; (配列を1つだけもっている) 2次元配列 == {1,2,3,4}, {5,6,7,8} (配列を複数持っている) でおk?
本質的には両者には全く差がない
746 :
デフォルトの名無しさん :2013/10/14(月) 14:05:54.85
747 :
デフォルトの名無しさん :2013/10/14(月) 14:07:18.71
>>746 入門スレに逃げて来た奴に触っちゃだめ。
749 :
デフォルトの名無しさん :2013/10/14(月) 14:15:03.51
750 :
デフォルトの名無しさん :2013/10/14(月) 14:16:00.17
>>747-748 いいから早く答えろください
それともこのスレには本物の約立たずしかいないのですか?
751 :
デフォルトの名無しさん :2013/10/14(月) 14:19:30.38
>>750 よくわからないけどありがとう♪
けれども一応解決しました
1次元配列 [i]
2次元配列 [i][j]
3次元配列 [i][j][k]
……
なにが違うって見た目から違うだろ。 わからない理由がわからんわ。
753 :
デフォルトの名無しさん :2013/10/14(月) 14:21:04.96
754 :
デフォルトの名無しさん :2013/10/14(月) 16:09:35.00
755 :
デフォルトの名無しさん :2013/10/14(月) 16:19:54.69
>>723 おまえさ、一応 C スレなら翻訳段階くらい理解してきているよな?
実際、翻訳段階ごとに予約語や識別子のテーブルはガンガン変わるし
756 :
710 :2013/10/14(月) 16:26:27.62
>>751 違うよ
1次元配列 [i]
2次元配列 [j][i]
3次元配列 [k][j][i]
……
こうだよ
758 :
デフォルトの名無しさん :2013/10/14(月) 16:39:14.47
759 :
710 :2013/10/14(月) 16:52:53.66
>>758 だから書けない奴には用はない。
まあ字句解析の話に翻訳段階とか予約語とか言う奴なので相手するだけ無駄かな (w
760 :
デフォルトの名無しさん :2013/10/14(月) 17:11:29.82
>>759 字句解析と予約語は関係ねえって?
バイト単位、エスケープ単位、トークン単位と変わっていく中で???
761 :
デフォルトの名無しさん :2013/10/14(月) 17:30:22.62
野暮用入ったんで今日は落ちる 2ちゃんできるのは明後日くらいの見込み
2ちゃんでき升
763 :
710 :2013/10/14(月) 17:54:06.63
>>760 > バイト単位、エスケープ単位、トークン単位と変わっていく中で???
...、無理すんなって (w
ドラゴンブックも第二版はちょっとなあ…
766 :
デフォルトの名無しさん :2013/10/14(月) 21:36:51.23
まだやってたんだ。 得るもの何もないのに。 僕は今日、新しいパーサジェネレータを考えたよ。
768 :
デフォルトの名無しさん :2013/10/14(月) 22:32:18.02
769 :
710 :2013/10/14(月) 22:51:19.37
頑張って 5円かな
770 :
デフォルトの名無しさん :2013/10/14(月) 23:31:28.48
考えただけで実装してないから無理。 今わくわく中。
771 :
デフォルトの名無しさん :2013/10/14(月) 23:40:40.94
まだやってんのw っていうか、今時Cなんて出来てもチンカスくらい不要だろ OSをかけるレベルまでに到達してるのは極一握りの人間 大抵の奴は標準出力にhello worldと出力して終わりw
772 :
デフォルトの名無しさん :2013/10/14(月) 23:46:56.67
どっからどう見ても710がわかっていないんだけど、ほかの人たちは 世間がHello Worldだから説明する必要があるんだろね。 普通に考えたら710()でスルーできるはず。 あと、Cの時代はもう終わったほうがいいね。
773 :
710 :2013/10/15(火) 00:04:50.83
>>772 日本語からやり直せ。
て言うか、書く内容ないなら ROM ってろ。
775 :
デフォルトの名無しさん :2013/10/15(火) 01:43:12.85
std::queueにclearがないんだけど、 以下のうちだと、Bのほうが少ない記述で、しかも高速だよね? A: std::queue<T> qEmpty; std::swap( q, qEmpty ); B: q = queue<T>();
半径rを入力して、円の面積sと円周c、および、球の面積gsと体積gvを計算し、小数第二位まで表示する。 なおπ=3.1415とし、gs=4πr^2 gv=4πr^3/3 実行結果にxに10を入力 input radius 10.0 En no menski=314.15 Enshu=62.83 kyu no menseki= 1256.60 kyu no taiseki=4188.67 誰かお願いします。
どうぞ↓
Perlでオナニーしてくるはwwww
そういえば球の体積 4πr^3/3 とかの公式って 積分使わないでどうやって求めるの
780 :
デフォルトの名無しさん :2013/10/15(火) 12:46:37.42
微分
>>779 アルキメデスが水槽に球を沈めてなんたら
内接と外接で簡単な大小の図形を作って (外接 - 内接) / 2 + 内接
Perlでオナニーした結果wwwwwwww perl -v はい草wwwwwwww
ちからゔぁりえり?
786 :
デフォルトの名無しさん :2013/10/15(火) 13:51:45.31
クソワロタwwwwwwww さとえりか
PHPerだけど、C勉強するにはエキスパートCプログラミング読めばOK?
PHPを勉強する時に、一冊で足りましたか? まあPHPごときじゃそれでよかったのかもしれませんね
>>788 ネットのC入門みたいなサイト見れば十分だろ。
791 :
デフォルトの名無しさん :2013/10/15(火) 18:10:00.58
>>788 PHPなんてクソ言語にerなんて付けてる時点で無理
792 :
デフォルトの名無しさん :2013/10/15(火) 18:18:20.06
>PHPerだけど なぜこのくだりがあるのか全く分からない。 さまか"多少ならプログラム経験ありますけど"の意味で付けたわけじゃないよね? まさか違うよね? PHPなんてプログラム言語に部類されない電子産廃なんだから。
乞食「料理の経験はありますよ、コンビニの破棄弁当もらってきたりとかゴミ箱漁ったりとかね」 PHPer「プログラム経験はありますよ、PHPでシステム開発したりとかね」 同じレベルwwwwwwwwwwwwwww それ料理じゃないしプログラムじゃないからwwwwwwwwwwwwwww
>>784 力張エリ
他板違いなのにありがとうw
これで4次元超球の超体積 π^2*r^4/2 も出せるんかな
高3のとき受験勉強から逃避して計算してたけど超角錐がイメージできない
795 :
デフォルトの名無しさん :2013/10/15(火) 18:26:36.46
黙れ雑魚 俺はcakePHPでバリバリプログラミングしてたんだよ お前らみたいな低レイヤーに言われたくないわwwwwwwww
それで食えてるなら C言語やる必要はないやね
C を勉強するって言うことは、単に(コンピュータ)言語を勉強することではないよ
799 :
デフォルトの名無しさん :2013/10/15(火) 19:42:00.46
PHPとCは割と似てるから初めてよりだいぶ楽だよ。
801 :
デフォルトの名無しさん :2013/10/15(火) 20:46:11.05
PHPを勉強することとはPHPのモジュールの使い方を覚えることである Cを勉強するということはCでモジュールの作り方を覚えることである
>>801 すこし違うな
Cを勉強するということはCで世界の作り方を覚えることである
>>801 おまえは馬鹿なんだから黙ってればいいのに…
>>802 おまえも801と同じく馬鹿なんだから黙ってたほうがいいぞ。老婆心ながら
>>804 おまえも801と同じく馬鹿なんだから黙ってたほうがいいぞ。
Cとphpがにてるとよく言うが、 全く違うと思う まだperlとCの方が似てるんじゃないかと
CとC++って兄弟みたいな関係? お互いの短所を補い始めるみたいな
Cで動くコードは、C++でもほとんど修正なしで動く
お互いの短所をなめあうみたいな
>>809 おまえも801と同じく馬鹿なんだから黙ってたほうがいいぞ。
>>809 Cでは単なる識別子だけどC++で予約語 (new とか firend とか) の置き換え
それ以外に何かある? (呼び出し規約は環境依存の話だろうしなぁ)
Cで動いてC++で動かないのは旧式の引数記述とプロトタイプ宣言の無い関数を使ったときだけでしょ
int test(int (*a)[]); // ←こんなのの書き換え
C++では char *p = malloc(10); にキャストが必要。
普段意識していないけど、案外あるもんだな C/C++ 差
C99以降の機能をほとんど削除
>>807 そりゃ、HTML寄生型に特化しただけで、根本はPerlの丸パクりだもの、PHPはさ。
PerlもPHPも、$を省略できるといいのに
820 :
デフォルトの名無しさん :2013/10/16(水) 01:06:42.10
C++だとSTLに対してBoostのようなのがありますが Cの場合Boostに相当するのは何?
extern C{}を知らないカスばっかなの?
>>819 $ が付いてるからひと目で変数って分かって便利じゃん
>>822 for($i=0;$i<10;$i++)
一目で分かるって・・・
stlみたいなの使いたいならCなんて使う意味ないよね Javaで書けばいいのに
素直にC++に行くのがいいと思うが
>>823 普通はforeach使うからな
Cが抜けないんだろうな可哀想に
>>820 SRC_ROOT 使えって言ってんだろ
コピペ誤爆った・・危ない危ない glibな
>>827 「10回処理を繰り返す」を foreach でどう書くか示してみて
>>831 今度からforeachを使うようにするよ
でも、$は必要なんだよね?
C++ですらrange-based forが入ったというのに・・・
C++はオワコン
ところで extern "C" {} ではないか
>>830 foreach (0..10) {
print
}
余裕だがな
>>832 Perlは奥が深いぞ
ブレースで囲めばセミコロンさえいらないからな
C++でコルーチン実装してみた
ダイクストラなんなキュー使えりゃできる
そろそろ次スレ立てた方がいいと思う
Cで動的言語書いてみたいんだけど、あれってどういう仕組みなんだろう。変数に型がないって言っても、内部的には型があるんでしょう?
Rubyのソースでも読めばいいじゃん
845 :
デフォルトの名無しさん :2013/10/17(木) 19:35:48.06
RHK
846 :
デフォルトの名無しさん :2013/10/17(木) 19:36:56.11
間違えた RHG
C言語と全然関係無い話だけど、HDDの針のシークのスピードって どのくらいなの?相当早いと思うんだけど。
シングルなら45rpmだったかな。
青木峰郎さんすごいよな 一橋大学出た文系プログラマだぜ
850 :
デフォルトの名無しさん :2013/10/17(木) 21:51:25.85
プログラマって6割は高卒じゃないの? 俺も大学行くんじゃなかった。
RUBYかよ、プログラム言語じゃねーだろ
unionとstructで
さて、どうした
32bitなのにx86なのは何で? 86の由来何だ?
4004→8008→8080→8086
8086系CPU80386から32bitになった
とうとうPentiumより前を知らない世代が現役か 俺も年取るわけだ
Pentium高かったな。Socket7だといろんな銘柄のCPUが出た。現在も粘るAMD
859 :
デフォルトの名無しさん :2013/10/18(金) 00:44:11.74
60MHz(2桁!)が100万超えしてたっけ PCという名の風洞実験室
486DX2の66MHzが安くて速かった
このプログラムの中で書き方がおかしいところとかを教えてください コンパイルは出来るのですが実行できないです… #include <stdio.h> #include <math.h> #include <limits.h> int main(void) { int t=0; double i,sum=1.0,k,check; for(i = 1.0;i < INT_MAX;i += 1.0){ k = (108.0*i*i)/(36.0*i*i-1); sum *= k; check = (M_PI/sum) - 1.0; if(check < 1.0e-6 && check > -1.0e-6){ break; } t++; } printf("%d\n%f\n%f",t,sum,i,check); return 0; }
862 :
デフォルトの名無しさん :2013/10/18(金) 01:01:59.75
>>861 コンパイルしただけでは実行できません。
まずリンクをヤフってください
>>862 リンクをやふるってどうすればいいんですか?
リンクをやふるってググってください
すみません、古谷さんしか出てきませんでした・・・
866 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/18(金) 01:38:47.50
まず、コンパイルしたときに、エラーメッセージが出てるか確認して下さい。 あれば、それをここに貼り付けて下さい。なければ、デバッグ実行をして下さい。 実行が一瞬で終わる可能性もあります。その場合は、return 0;の前にgetchar();を書き加えて、再コンパイル&実行して下さい。
867 :
861 :2013/10/18(金) 01:44:48.96
すみません自己解決しました
sumが溢れてる
>>866 無知ですみません
ありがとうございました!
>>868 sumが溢れるとはどういう状況ですか?
doubleで扱える最大数を超えている
こういう場合はintmaxつかえないのですか?
873 :
デフォルトの名無しさん :2013/10/18(金) 02:26:36.52
>>860 486にDXですらない「無印」があったのは知ってるよな
電波屋さんとの縦割りの壁が今となっては悔やまれる
for文回すときはカウンタをintでやるべきかと
876 :
デフォルトの名無しさん :2013/10/18(金) 08:41:31.97
FPU
long intとか
uint64_tだは、訂正
for(i=0;i<N;i++) for(i = 0; i < N; i++) どっちで書いてますか?
>>879 整形機能にルール付けすればいいレベルの話。
int i=0; x=a[i]; for (i=0;i<N;++i){〜 ばやい for(i=0; の代入を書いたモンかどうか悩む。
(*p)[i] こんなのをたまに見ますがこれはどういう意味なのでしょうか
p[0][i]
884 :
デフォルトの名無しさん :2013/10/18(金) 10:38:18.50
0[p][i]
i[0[p]]
#include <stdio.h> int main(void) { char *q = (char *)0x0100; char **p = &q; printf("%p\n", &p[0][1]); printf("%p\n", &0[p][1]); return 0; }
888 :
デフォルトの名無しさん :2013/10/18(金) 10:50:39.08
八八八
ひひひ
999
892 :
デフォルトの名無しさん :2013/10/18(金) 18:59:03.22
最近は i686互換 と言われてるな
Pro? II? そのへんからなにがなんだかわからなくなってきた…
894 :
デフォルトの名無しさん :2013/10/18(金) 19:44:49.01
895 :
デフォルトの名無しさん :2013/10/18(金) 20:09:22.62
出たw Wikipedia厨w
質問です int main(int argc, char **argv) { public static void main(String[] args) { def main sub main { def main(): } end } } このコードを動かしたいのですが、VisualC++2010というのをインストールしました
C言語ではないようです
>>897 何言語ですか?
オレオレ言語ですか??
>>891 80486以降のCPUはマルチタスクを実装する機能に関してあまり進化していない
900 :
デフォルトの名無しさん :2013/10/18(金) 21:17:13.71
C実践プログラミング P183の実習12-4を作っているのですが 比較の仕方がまずいのか、なぜかif文の中が実行されません。 開発環境はVC++2010 OSはXPです。 デバックの変数ではどちらも同じように見えるのですが・・・。
903 :
900 :2013/10/18(金) 21:25:09.97
#include <stdio.h> #define DATA_SIZE 6 struct ticket_reserve { char name[30]; char depart_code[4]; //depart=出発 3桁のコード char arrive_code[4]; //arrive=到着 char depart_time[8]; //出発時刻 例:12220302 = 12月22日3月2日 char arrive_time[8]; //到着時刻 };
904 :
900 :2013/10/18(金) 21:26:16.12
struct ticket_reserve ticket_date[DATA_SIZE] = { {"美しい海便", "ac2", "gt6", "12220302", "12230304"}, {"風が気持ちいい便", "ac2", "df7", "12220502", "12220503"}, {"夏を感じる便", "de4", "iu8", "04021211", "04021213"}, {"寒いけど心が引き締まる便","3e2", "te2", "01110825", "01110827"}, {"真夏の夜を感じる便", "ff4", "ff9", "08250101", "08250106"}, {"ネタがねぇ便", "gt6", "gr2", "06311112", "06311114"} }; char search_depart_code1[4] = "ac2"; char search_depart_code2[4] = "de4";
a
906 :
900 :2013/10/18(金) 21:28:39.29
int main() { int i; for ( i=0; i<=DATA_SIZE - 1; i++) { if( ticket_date[i].depart_code == search_depart_code1) printf("出発便[%s]を見つけました!:出発コード%s\n", ticket_date[i].name, ticket_date[i].depart_code); if( ticket_date[i].depart_code == search_depart_code2) printf("出発便[%s]を見つけました!:出発コード%s\n", ticket_date[i].name, ticket_date[i].depart_code); } getchar(); return(0); }
ぬるぽ
>>906 ×if( ticket_date[i].depart_code == search_depart_code1)
○if( strcmp(ticket_date[i].depart_code, search_depart_code1) == 0)
struct ticket_reserve { char name[30]; char depart_code[4]; //depart=出発 3桁のコード char arrive_code[4]; //arrive=到着 char depart_time[9]; //出発時刻 例:12220302 = 12月22日3月2日 char arrive_time[9]; //到着時刻 }; にしないとまずくないか? ようわからんけど
911 :
900 :2013/10/18(金) 22:52:23.57
>>908 文字列は文字列関数で比較しないとダメなんですね。
ありがとうございます。動作しました!
>>909 確かに配列が1足りないですね。
ご協力ありがとうございます。
>>910 別サイトに投稿ありがとうございます。
すっきり見やすくて、理解が深まりました。
先頭からの比較文字数を指定できるstrncmpと言うモノもあるのですね。
勉強になります。
秋の夜はふけてゆく
913 :
デフォルトの名無しさん :2013/10/19(土) 00:27:20.86
バリバリの初心者で申し訳ないのですが、scanf関数の意味が全く理解できません。 scanfはどういったときに使うのでしょうか?
914 :
忍法帖【Lv=40,xxxPT】(2+0:5) :2013/10/19(土) 00:31:29.06
>>913 ある程度進んだ者はscanf()を避け fgets()+sscanf() で処理することを好むことは覚えて置いていい
お褒めに与り恐悦至極。
918 :
デフォルトの名無しさん :2013/10/19(土) 16:09:20.85
時間tを秒の単位で与え、○(h)○「min」○「sec]の時間と分と秒に換算して表示する。 実行結果(10000秒)を入力 Input Second−>10000 10000「sec]=2[h]46[min]40[se] このプログラムをこのようにやってみました。 #include <stdio.h> int main (void){ int t,h,min,sec; printf("Input Second->"); scanf("%d\n",&t); t=(10000/60)/60; printf("[sec]=[h][min][sec]%d\n",t); return 0; } ですが、表示されません。 分かる方教えてください。
t=(10000/60)/60; printf("[sec]=[h][min][sec]%d\n",t); なにやっとん… とりあえず理解しなきゃいけないのは = が値の代入だということw 次にscanf,printfの挙動ですかね
なんか時代はD言語らしい…
この理解度だと、上の2行を書くのが課題で他は丸々コピペだろう 考える気がまったく感じられなくて素直にコード教えてやる気になれん
剰余も理解しないと
923 :
710 :2013/10/19(土) 17:01:40.97
>>918 > ですが、表示されません。
嘘書くなよ、なんか表示されてるだろ。
それちゃんと書けよ。
>>918 本当にこのコードなら、コンパイル出来ないと思う。
925 :
デフォルトの名無しさん :2013/10/19(土) 17:36:26.79
Input Second-> です。
926 :
710 :2013/10/19(土) 17:43:42.63
>>925 10000 とか入力して、リターンキー押したか?
927 :
デフォルトの名無しさん :2013/10/19(土) 17:46:10.36
ポインタがどうしてもわかりません。 void**(**(**p)(void (**)(void (**)(void (**)(void (**)(void (**)())))))); ってなんですか?
929 :
710 :2013/10/19(土) 17:51:32.11
>>928 自分が使わないプロトタイプなんて無視するのがよい,必要に応じて理解できるようになるものだ
>void**(**(**p)(void (**)(void (**)(void (**)(void (**)(void (**)()))))));
>ってなんですか?
使わないからしらん
そもそも void ** に意味があるかどうかもよくわからない.
931 :
デフォルトの名無しさん :2013/10/19(土) 18:47:06.15
void**( **(**p)( void (**)( void (**)( void (**)( void (**)( void (**)() ) ) ) ) ) );
yaccでイチコロやろ パーサかけや
やっぱりポインタは皆さん分からないんですね 自分だけじゃなかった
934 :
デフォルトの名無しさん :2013/10/19(土) 19:12:18.52
教科書にはあんまり突っ込んで書かれてないけど スコープの概念ってやっぱり経験で覚えるものなのかな
936 :
デフォルトの名無しさん :2013/10/19(土) 19:31:54.26
>>935 複数の要素が絡む概念なので
いっぺんに説明すると過負荷になるんだよ
リッチーさんもそのへんを気にしてたし
ただ、最終的に突っ込まない教科書はクソ
教科書はちゃんと突っ込んでるのに読めてない読者もクソ
めっちゃ大事なことだからね
937 :
デフォルトの名無しさん :2013/10/19(土) 19:36:57.72
くるりんぱ
>>935 できる限り狭めにやる練習すると、狭くていいものと広くとりたいものの区分が出来るようになってくる
何でもグローバルにしてるといつまでたっても覚えられんよ
939 :
710 :2013/10/19(土) 20:32:33.97
>>935 スコープは可能な限り狭く
これだけだから。
C99で使う直前に変数宣言する? なんとなくそれはCっぽくないから、俺はやんないけど
#include <stdio.h> int main() { int x = 1; char c; scanf("%[AB]", &c); printf("%d\n", x); return 0; } 常に1と出力されると思いきや、Aと入力した場合は0と出力され、それ以外は1と出力されます。なぜですか? 入力からAかBの一文字をchar型に代入させるする方法も教えて下さい。
942 :
710 :2013/10/19(土) 21:05:39.44
AかBだけ受けとるってやつじゃね
{int a;〜; int b;〜; int c:〜; int d;〜;} は {int a;〜;{int b;〜;{int c;〜;{int d;〜;}}}} を省略しただけだからな
946 :
デフォルトの名無しさん :2013/10/19(土) 21:20:49.11
る程度進んだ者はscanf()を避け fgets()+sscanf() で処理することを好むことは覚えて置いていい
%[AB]なんて書き方知らなかった こうじゃねえの do { scanf("%c", &c); } while (c!='A' && c!='B');
>>941 関数仕様をちゃんと読め。
それは文字ABのみからなる文字列を返すからcharで受けてはいけない。
xの領域を壊している。
>>945 でおおなるほど、と思って
考えながら読んでたら
>>949 でワロタw
これ実際は並列なってるだけか、と思ったんだけど
厳密には順番によって宣言されたスコープが重なっていってるから
>>945 の逆?
>>945 がバカである根拠は二つ
1 コンパイラの制限
{int a;〜; int b;〜; int c:〜; int d;〜;} ではコンパイルできるものが
{int a;〜;{int b;〜;{int c;〜;{int d;〜;}}}}ではコンパイルできない可能性がある
JIS X3010 5.3.4.1翻訳限界
- ブロックの入れ子レベル(127)
- 一つのブロックで宣言されるブロック有効範囲を持つ識別子数(511)
2 Cのブロックは識別子のスコープを限定するだけでなく記憶域期間をも決定する
自動記憶域期間をもつオブジェクトはブロックの外では生存が保証されていない
↓これは正しいが
{int *a; goto l2; l1: return *a; l2:; int b = 1; a = &b; goto l1;}
↓は正しくない。
{int *a;{goto l2; l1: return *a; l2:; {int b = 1; a = &b; goto l1;}}}
void**(**(**p)(void (**)(void (**)(void (**)(void (**)(void (**)()))))));
>>952 >↓は正しくない。
>goto l2;
>>945 がラベルを念頭に置いていたという根拠は?
勝手に取り扱う範囲をひろげて「正しくない」とか牽強付会もいいとこだね
>1 コンパイラの制限
だけで十分だ、2 は蛇足、よって
>>952 は脳足りん
アスペによくある症状やね
957 :
デフォルトの名無しさん :2013/10/20(日) 10:34:57.06
ホームレスになるなら原発作業員になる方がマシかな それでもホームが確保出来る保証はないか
なんで945が正しくないかにgoto変なもん出すまでもなく 識別子の上書き可否の違いが根本なのにねえ やっぱアスペだわ
959 :
デフォルトの名無しさん :2013/10/20(日) 11:15:17.47
>>955 >
>>945 がラベルを念頭に置いていたという根拠は?
アホアホアホアホアホアホアホアホアホアホアホアホアホ
> {int a;〜; int b;〜; int c:〜; int d;〜;} は
〜の部分は任意のステートメント。
goto, ラベルの存在に気付かなかった
>>945 がバカだという証拠にしかならない。
メンバ名指定の初期化が C99 で標準化されているという話をネットで見つけました。 手元にある FDIS で探しているのですが見つけられません。 項番号もしくは規格内での名称でも良いので、知っている方がいらっしゃれば教えて下さい。 FDIS だから載ってないと言うオチだと嫌だな。。。 struct s { int a; int b; }; struct s temp = {.a=0, .b=1};
Designated Initializer
>>962 即レスありがとうございます!
確認できました。
って言うか、普通に§6.8.3 Initializationに書いてありましたね…
Syntax にもEXAMPLE(10〜13)にも…
目を通したはずなんだけどなー。
>>959 だ,か,ら,なんでわざわざ goto ラベルを持ち出す必要があるの?そこんとこ詳しく
生協さんも焼きがまわったね
965 :
デフォルトの名無しさん :2013/10/20(日) 18:06:33.85
>>964 アホアホアホアホアホアホアホアホアホアホ
gotoを使わずに
>>945 は記憶域期間を知らないバカだと立証出来るならやってみろ
チ・ン・カ・ス
966 :
デフォルトの名無しさん :2013/10/20(日) 18:17:49.80
>>964 gotoラベルのスコープを言ってみな、
ここに書かなくても独り言でいいから
>>966 アンカー打ち間違えてよかったな
チ・ン・カ・ス
>>967 それがなに? 記憶域期間を知らないのはそれより恥ずかしい事なんだが
チ・ン・カ・ス
どちらにしろ
>>945 は間違いだしなあ
変数の消滅が宣言順と逆順だなんて規定ない
>>970 ずうずうしいヤツだ
アスペのくせして別人の同調キャラを装うなんて
972 :
デフォルトの名無しさん :2013/10/20(日) 20:08:28.98
そんなに悔しいか? チ・ン・カ・ス
マンカスうるせーぞ
お
>>945 がトンデモなのは満場一致なのに、どうしてどうでもいい細かいところでいがみ合うの?
それは945が頑張ってるからだよ
ウソが広まるのは、技術者の見識に関わる。 ウソつきは業界から抹殺すべき。
そんな流れを一言で言うと、少し前に流行った 「初心者は回答するな」 になる
981 :
デフォルトの名無しさん :2013/10/21(月) 23:01:29.99
\r\n=\nな理由教えて、VisualStudioではそうだった。
違うだろうがボンクラ
>>980 他人に教えるという行為は、
本人自身の理解度を深める効果もあるから、
鍛えてやるためにも大目に見てやった方がいい
>>981 テキストモードだと 内部\n <=> 外部\r\n を変換してる
誰にも「回答するな」なんて命令する権限はないし
誰にも「質問者を罵倒するな」なんて命令する権限はないし
chmod +x お前らに議論する権限を与える
989 :
デフォルトの名無しさん :2013/10/22(火) 01:28:07.30
su - rm -rf /home/neet
kill -HUP これ実は無茶苦茶ひどくない?「死んでも蘇って働け」だよ。地獄だわ…
/usr/local/neet/submit2ch > /dev/null
992 :
デフォルトの名無しさん :2013/10/22(火) 18:48:34.81
my -R /usr/local/jitakukeibiin /usr/local/neet chmod 000 -R /usr/local/neet
うめ
while(1) { myLife = NULL; delete(myLife); }
if (jitakukeibi()) { 2chan() } else { shushin() }
996 :
デフォルトの名無しさん :2013/10/22(火) 21:07:52.81
ウメッシュ
竹中平蔵は、ダヴォス会議の日本の代表だ。 ダヴォス会議の正式名称は、「世界経済フォーラム」World Economic Forumだ。 これはヨーロッパ各国の超財界人たち、貴族たち、そしてアメリカのロックフェラー家などで構成されている。 彼ら超財界人のことを「スーパークラス」と呼ぶ。「スーパーリッチ(超富豪)」とは区別される。 もっと上の方である。“ 雲の上の人々 ”above the lawとも言う。 このダヴォス会議は表の組織であって、裏側はビルダーバーグ会議である。 ビルダーバーグ会議は、世界の超財界人たちの秘密結社である。ここでは秘密の儀式がたくさん行われている。 ここへの入会儀式を受けた者たちは、もうふつうの世界には戻れない。 命令が下ったら自分の国の国益を踏みにじることでも何でもしなければいけない。 裏切ったら殺される。 竹中平蔵は、このダヴォス会議の正式メンバーで日本代表である。 彼はこのダヴォス会議の評議委員である。 だから日本の首相を含めて、会議に参加する者は、竹中の推薦が必要である。 だからその格は盟友だった小泉純一郎よりも上らしい。 彼は、欧米の超財界人たちに魂を売ってしまっている人だ。 アメリカのコンスピラシー・セオリー(「権力者共同謀議理論」と訳すべきだ) の大家であるジョン・コールマン博士(現在77歳。1935年〜)が長年、主張している 「(世界の頂点の)300人委員会」という組織と、このビルダーバーグ会議は、 彼が公表している名簿とほとんどが重なっている。 この竹中平蔵が、2006年に小泉政権が終わったあとに一体、何をしていたのか、 と思いきや、この6年をかけて橋下徹を手塩にかけて育てていたのだ。 竹中平蔵氏が、今の日本国を操っているアメリカの家来の筆頭、 最高幹部なのだとはっきり書いて、私はみんなに知らせる。
998 :
デフォルトの名無しさん :2013/10/22(火) 21:14:54.54
さらりとした梅酒
try { my_life(); exit(1); } catch { exit(1); }
酔わないウメッシュ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。