[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 09/06 22:43 / Filesize : 155 KB / Number-of Response : 705
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 101



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/

2 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 06:44:59.49 ]
すみません。教えてください。
mikrocというコンパイラを使ってPICマイコンで電子工作をしてるのですが、
指定した桁の値を取り出すにはどうすれば良いのでしょうか?

例)x = 12345;という変数の中の値を、a = 1;b = 2;c = 3;d = 4;e = 5;

というように取り出したいです。
C言語についてはPICで遊ぶために0からのスタートでして、ほぼ初心者です。
よろしくお願いします。

3 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 08:04:22.28 ]
>>2
取り出したい桁を右からn桁目とすると
「(n-1)回、10で割った整数」を10で割った際の余りを求めれば良い

4 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 08:48:55.98 ]
>>2
>>3のやり方が正攻法だと思う。
バッファを余計に使って良ければ、sprintfを使うのが簡単かな。
char buf[10];
int x = 12345;
sprintf(buf, "%d", x);

これで、buf[0]: 1, buf[1]: 2, buf[2]: 3, buf[3]: 4, buf[4]: 5
となります。

5 名前:デフォルトの名無しさん [2012/05/04(金) 11:47:36.94 ]
ビットフィールドへのポインタを関数に渡したいです。
しかしポインタのアドレスはバイト単位であり、
無理だということが分かったのですが何か良い方法は無いでしょうか?
なぜこんな事がしたいかと言いますと、とびとびの複数のビットフィールドに対し
同じ処理を行いたく冒頭の事が出来ないか試行錯誤していました。
ご助言頂けると嬉しいです _ _

6 名前:2 [2012/05/04(金) 12:02:37.64 ]
>>3>>4さん!

とてもわかりやすい回答ありがとうございます。
早速実験してみます!

7 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 12:11:24.13 ]
>>5
同じ処理がしたいのならやればいいじゃん。
どうしてもポインタが必要な処理なの?
もうちょっと具体的に状況を書いてみて。

8 名前:5 [2012/05/04(金) 12:36:54.04 ]
>>7
レスありがとうございます!状況としてはマイコンの制御のためにコードを書いています。
具体的には以下の処理を行いたいです。
// 空行まで変数の宣言です。
struct bit {
 unsigned b0: 1;
 unsigned b1: 1;
 unsigned b2: 1;
 unsigned b3: 1;
 unsigned b4: 1;
 unsigned b5: 1;
 unsigned b6: 1;
 unsigned b7: 1;
};
union port {
 struct bit bit;
 unsigned char byte;
};
volatile union port *p2 = (union port *)0x00E4;
unsigned char sw2_before = 1, sw3_before = 1;

if(sw2_before == 0 && p1->bit.b7 == 1)
 p2->bit.b4 ^= 1;
if(sw3_before == 0 && p1->bit.b3 == 1)
 p2->bit.b5 ^= 1;
ですが、現状だとご覧のように同じようなコードが二回繰り返されているので
これを関数として抜き出したいんです。(空行以降の部分です。)

9 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 13:10:03.66 ]
>>8
マクロで書けばいいんじゃね?
仮にビットフィールドへのポインタが有りだとしたらどんなコードを書く?

10 名前:5 mailto:sage [2012/05/04(金) 14:27:08.47 ]
>>9
ありがとうございます!マクロですか、余り使ったことなかったのですが調べてみます!
仮にビットフィールドへのポインタが有りだとしたら以下の様にしたいです。
void led_toggle_switch(unsigned *led: 1, unsigned char before, unsigned char after) {
 if(before == 0 && after == 1)
  *led ^= 1;
}
led_toggle_switch(&p2->bit.b4, sw2_before, p1->bit.b7);
led_toggle_switch(&p2->bit.b5, sw3_before, p1->bit.b3);



11 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 14:45:02.78 ]
ビットフィールドを使わずに、ビット演算でやれば似たようなことはできるね。

12 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 15:29:00.01 ]
>>10
bit位置を示す引数をもう一つ追加。
ledはビットフィールド変数ではなく、byteの方にすれば、

void led_toggle_switch(
unsigned *led: 1,
unsigned bitPos, // 1-7
unsigned char before,
unsigned char after)
{
if(before == 0 && after == 1){
*led ^= (1 << bitPos);
}
}

13 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 15:34:21.91 ]
>>10
いえいえ

14 名前:5 mailto:sage [2012/05/04(金) 15:51:10.19 ]
>>12
なるほど、こういうやり方もあるんですね・・・。全く思いつかなかったです・・・。
とても勉強になりました、ありがとうございます!

マクロも自分で書いてみました。スッキリ纏まって良い感じです!
#define LED_TOGGLE_SWITCH(led, before, after)\
if(before == 0 && after == 1) { led ^= 1; }
LED_TOGGLE_SWITCH(p2->bit.b4, sw2_before, p1->bit.b7);

15 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 16:01:37.31 ]
ビットフィールドのレイアウトがどうなるかは未定義だし、
ビットごとに意味を割り当てるにしてもビットフィールドを使わないことが多いね。

16 名前: ◆QZaw55cn4c mailto:sage [2012/05/04(金) 16:12:34.41 ]
もうビットフィールドなんて廃止したら‥‥‥

17 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 16:49:27.66 ]
>>12
レスが付いた後だけど、今見返すと、第2引き数のコメント間違っているね。

誤)
unsigned bitPos, // 1-7
正)
unsigned bitPos, // 0-7

18 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 16:53:41.76 ]
>>14
マクロ関数書くときは各引数を括弧でくくっておかないと、思わぬ動作をすることがある。

#define LED_TOGGLE_SWITCH(led, before, after)\
if(((before) == 0) && ((after) == 1)) { (led) ^= 1; }



19 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 17:37:22.16 ]
>>14
いえいえ

20 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 19:38:55.05 ]
随分とマトモな流れなんで、スレ間違えたのかと錯覚したわ。



21 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 19:54:41.84 ]
まあオレのおかげなんだけどな、照れること言うなよな ははは


22 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 22:53:48.92 ]
>>16
何で?

23 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 23:34:29.44 ]
理解できないからだろ。聞いてやるなw

24 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 23:46:03.86 ]
>>22>>23
>>16では無いのだが、ビットフィールドって処理系依存だからでしょ。
LSB、MSG並びと、宣言の順番がどうなるか、とか。

あと、ビットフィールドと共用体の合わせ技もよく使うが、
(>>8のportがまさにそれ)
共用体の一方で設定した値を他の型で読んだ時にどうなるかも処理系依存だったりする。

25 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 00:30:24.15 ]
廃止する理由には見えないな

26 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:00:43.97 ]
ビットフィールドはハードに依存した並びが必要ないときはどっち向きでも関係ない(1bitでフラグ的な使い方)
gccだとarchに依存したエンディアンで並び順は考慮でける
コンパイラによっては、並び順をオプション等で指定できるのもある

要は使い分けが出来るかどうか、ビットフィールド

ワケワカでやってハマったから、使えないっていう人がいるからね

27 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:39:16.73 ]
0と1を入れるだけでも32bit変数を使うような時代にビットフィールドとか過去の遺物じゃないのかね

28 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:43:12.51 ]
まさかCでやる全てが32bitのデフォだと思ってるのか?
今世紀最新の遺物だなお前
動く化石だ


29 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 01:52:10.36 ]
>>27もよく解らんが、>>28の応じ方は輪をかけて解らん。

30 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:06:26.65 ]
H8 の unsigned int は 16bit = 2byte
superH は 4byte




31 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:13:55.71 ]
組込とかなら今でも現役だったりするのかね

32 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 02:41:12.25 ]
ビットフィールドを絶対使えとかいってないでしょ

バカとなんちゃらは使いよう

33 名前: ◆QZaw55cn4c mailto:sage [2012/05/05(土) 03:01:06.57 ]
そりゃそなんだけどさー、ビット演算とか、& | ~ でマスクかけてさくさく書いたほうが、結局楽じゃない?
I/Oのビットを立てたり下げたりするのって、普通こうするじゃん?
いや、C に 0xc6 表現以外にも 「0b11000110」とかあればもっといいんだけどさー。
この前、5bit ごとにデータをシリアル化したい、ていうお題がどこかであったけれども、そのときもビットフィールドを使いたいとか思わなかったなあ。

ここはビットフィールドじゃないとっ、ていうお題があるんだろうか?

34 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 03:13:04.97 ]
書けるのに読めない人にはわからないことかも

35 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 03:43:16.00 ]
bool型がどうしたって?

36 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 05:09:09.58 ]
組み込みでは現役というか定石ですね。
マイコンメーカーが提供しているヘッダファイルにもバリバリ。

37 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 05:10:37.10 ]
>>32
しかし、クズは使いようもないな。

38 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:20:33.81 ]
>>33
いちいち定数切るのが面倒。

39 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:39:33.82 ]
質問です
n個の配列を作りたいのですが、下のソースでは、int m[n];の行で
constant expected
と言われます。どうしたら良いでしょうか。
SHARPのPC-G850VSです。

main(){
int n = 2;
int m[n];
}

40 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:50:35.47 ]
nはdefine定義しろよ



41 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 07:56:26.66 ]
>>39
ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。
int m[2];
と書きましょう。

42 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 08:04:01.82 ]
ビット単位の操作が必要なケースでレイアウトを気にしないでいいケースっていうのはかなり稀だと思うんだよな。
まぁ、必要っていう人が居るなら要るんだろうけど、レアケースであることにかわりはない。

gcc と vc++ ではビットフィールドを配置する上位下位が逆ってことで一部のライブラリで問題が起こるってことも聞いたことあるし。
gcc にはオプションで vc++ に合わせるモードもあるんだけど、ライブラリとして使う性格上、他のライブラリとの兼ね合いで
一律に逆転してもまずいっていう。 具体的には gtk がそれ。

あと、久々に規格を見直していて気付いたんだけど、ビットフィールドはなるべく詰め込むことが must なんだな。

> 十分な領域が残っている場合、構造体内のビットフィールドの直後に続く別の
> ビットフィールドはは同じ単位の隣接したビットに詰め込まなければならない。
> 十分な領域が残っていない場合、入り切らなかったビットフィールドを次の単位に入れるか、
> 又は隣接した単位の境界をまたがらせるかは、処理系定義とする。
(JISX3010:2003 の 6.7.2.1 から引用)

ここで言う「単位」がバイトのことなのかどうかがわらないんだが、原文ではどーなってんだろ。
いずれにせよ >>8 のような1ビットが8個の状況では1バイトに連続して配置されることが保証されてる。

あと、ちょっと本質的じゃないがビットフィールドの変わり種の使い方として構造体の代入抑制がある。
幅ゼロで const なフィールドがあると代入できなくなるんだと。
struct A
{

const int : 0;
};
てな感じ。

43 名前:NAS6 ◆n3AmnVhjwc mailto:sage [2012/05/05(土) 08:20:47.91 ]
DirectXでビットフィールドはバリバリ現役だったりする

44 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 08:27:22.09 ]
で、貴様らは入門スレで何を話してるんだ
おっさんだろ

45 名前:デフォルトの名無しさん [2012/05/05(土) 08:56:49.82 ]
> ANSI-ANSI-Cでは配列宣言の要素数は定数でなくてはなりません。
c言語に限らずこういうのを他の言語でも見かけるが、これって何で?
>>39の例の方が柔軟で良さそうに思えるのだけど。

46 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 09:13:36.47 ]
>>45
ローカル変数はスタックに取るのが普通だから、
コンパイル時に配置を決めてしまいたいんだよ。

47 名前: ◆QZaw55cn4c mailto:sage [2012/05/05(土) 10:33:19.72 ]
>>36
んー。定石ですか。

48 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:19:57.15 ]
>>46
配置を決めたいのが理由じゃねーよ。
隠れて何かしないってのがCのポリシーだからだろ。
決めなくても実現できるのはわかるよな。

49 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:23:05.84 ]
つーか、c99なら普通にできるだろ。

50 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 11:24:42.88 ]
前スレでも出たが制限はあるけどな。



51 名前:デフォルトの名無しさん [2012/05/05(土) 14:45:42.23 ]
質問おねがいします

for文の中で、下のように10倍、100倍、1000倍、10000倍のような計算を
変数”i ”を使って一つに纏める簡単な方法はありますか?
よろしくお願いします。

for(i = 1・・・


x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;

x = x * 1000;

x = x * 10000;

52 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:52:11.70 ]
>>51
この程度がわかんなかったら
後々の学業に支障をきたすレベル
有体に言えば脳障害と見間違う程にひどい


53 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:53:54.19 ]
for (i = 1; i < N; i *= 10)
{
x = x * i;
}

54 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:56:40.57 ]
i *= 10;

55 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:15.92 ]
>>52
お前が脳障害だろ。
>>51
まず日本語を勉強しろ。

56 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 14:57:57.95 ]
>>55
ホンモノの脳障害の糞詰まりのクソ野郎がお出ましかw
巣にこもってでてくんなアホ


57 名前:デフォルトの名無しさん [2012/05/05(土) 14:58:11.12 ]
>>52
ごめんなさいorz
プログラムのプの字も知らず、あるきっかけで数日前にC言語というものを触り始めたばかりですorz

>>53
ありがとうございます。
"i*"が味噌なんですね?
ちょっとやってみます

58 名前:51 [2012/05/05(土) 14:59:27.28 ]
>>55
すみませんどこか日本語おかしかったでしょうか?



59 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:00:03.52 ]
やりたいことと例示している内容が違ってる気がする
32bit整数だとオーバーフローしてるし

60 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:01:36.33 ]
>>51
x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;
x = x * 10000;

をそのまま解釈すれば
x = x * 10000000000;
だが、お前がしたいこととは違うんじゃないのか?
日本語ができないならせめて元のコードを示せ。



61 名前:51 [2012/05/05(土) 15:04:07.61 ]
>>59>>60

ああ、そういうことですか
100億なんて数字は使わないし、計算できないですもんね

本当はこうでしたすみません

x = x * 10;
-----------ここから下を省略したい--------------------
x = x * 100;
x = x * 1000;


62 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:06:06.55 ]
だからそれならx = x * 1000000;
でいいだろが。

63 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:13:42.39 ]
for (i = 10; i <= 1000; i *= 10)
{
x += (x * i);
}

こういうことだろうか

64 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:22:17.36 ]
ここはこの程度と宣う>>52に自分が脳障害じゃないってことを示して欲しいとこだな。

65 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 15:42:05.10 ]
やべぇw
脳みそにクソが詰まった人間同士がクソの垂れ流しあいをしてるwww
素晴らしいw

相手はズブズブのシロートなんだから
やりたいことくらい察してやれよwww
ンなことだからオマイラは脳みそに怪しい部分をお持ちですね
とか言われんダよww

66 名前:デフォルトの名無しさん [2012/05/05(土) 15:42:37.04 ]
もう全部ソースを晒せばいいと思うんだ。

67 名前:デフォルトの名無しさん [2012/05/05(土) 15:47:12.87 ]
やりたいことは察してやるのではなく、引き出してやればいいのだ。

68 名前:デフォルトの名無しさん [2012/05/05(土) 16:36:13.95 ]
うんこがなんか言ってるな。

69 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:38:18.94 ]
しゃべるクソなんだからしょうがない


70 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 16:58:04.18 ]
>>51
行き詰まったから質問してるんだろうけど、もっと手前で道を間違ったから行き詰まってるんだよ。
例えて言えばお前の質問は「どうやったらこの道を進めるんですか?」と言ってるようなもんだ。
行き止まりの進み方を聞いたってこっちは知らんがなとしか言えない。 そこは進めない。
「どうやったらxxに行けるんですか?」と聞いてくれれば、 xx がどこか言ってくれれば回答しようがあるんだよ。

要は「自分が行き詰まっているところ」じゃなくて「目的地」を示せってこと。



71 名前:デフォルトの名無しさん [2012/05/05(土) 17:14:44.10 ]
日本語でおk

72 名前:39 mailto:sage [2012/05/05(土) 20:02:31.92 ]
>>48
というと、n個の配列を作る方法はあるのでしょうか。(n=2とは限らない)

73 名前:デフォルトの名無しさん [2012/05/05(土) 20:08:19.73 ]
mallocなりcallocでええやん

74 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:08:26.24 ]
>>72
無い
そういう方法は標準では用意されてない
最初に配列の個数を決めたら後で変えることはできない

こういうのを静的配列と呼ぶ
実行時に配列の長さnを変えられるのは動的配列、
Cは動的配列を標準では提供していない
「C 動的配列」で調べれば出てくる


75 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:14:41.58 ]
コテで無能自慢するのが流行りなんかね

76 名前:デフォルトの名無しさん [2012/05/05(土) 20:21:28.26 ]
知らなかったの?おっくれてるぅ

77 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 20:26:13.72 ]
>>72
C99 ではかなり条件が緩和されてる。
seclan.dll.jp/c99d/c99d04.htm
ただ、ポケコンだと新しい処理系を使うってのも簡単じゃないだろうし…。
普通は malloc でメモリを確保して使うんじゃないかな。

int main(void){
int n = 2;
int* m = malloc(sizeof(int)*2);
//ここで m を使った処理
free(m); // ←メモリの解放
}

78 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:27:13.18 ]
コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。

79 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:32:00.56 ]
>>78
自己紹介お疲れ様です
これからも駄文の垂れ流し、よろしくお願い致します無能様


80 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:39:01.94 ]
>>78
こういう内容の発言なのに自分がコテ付けてないってのは
かなり自家撞着なアホwww
「わたくし、アホでございます」と宣言してるようなモンだw



81 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 20:48:44.01 ]
自己紹介はやめろ

82 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 21:04:27.71 ]
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \   コテなしの無能発言よりはまし。NGできるコテつきは良心的ともいえる。
    |      |r┬-|    |   
     \     `ー'´   /   
    ノ            \
  /´               ヽ
            ___
       /      \
      /ノ  \   u. \ !?
    / (●)  (●)    \ 
    |   (__人__)    u.   | クスクス>
     \ u.` ⌒´      /
    ノ           \
  /´               ヽ
         ____
<クスクス   /       \!??
      /  u   ノ  \
    /      u (●)  \
    |         (__人__)|
     \    u   .` ⌒/
    ノ           \
  /´               ヽ

83 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:42:35.88 ]
>>51
同じく初心者が頭振り絞って考えたけど
こういう事かな?

#include <stdio.h>

int main()
{
int x;
int i;
int j=10;

printf(" 整数を入力\nx=");
scanf("%d",&x);


for(i=0; i<=3; i++)
       {
        x = x*10;
        printf("x * %d = %d\n", j,x);
        j=j*10;
       }
return(0);
}


84 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 22:47:44.92 ]
GNUスタイルは久々に見た
初心者向けの本やサイトでそのスタイルは余りにも見かけない
本当に初心者なのかが疑問に残る
初心者が何もせずに何も見ずにそのスタイルに行きついたなら
ある種の教祖的な素質がある


85 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:02:00.16 ]
>>84
へぇー。 手元にある本をざっと見たら確かにその通りだわ。
でも、俺も昔は >>83 みたいに書いてた。
初心者的には括弧の位置が対応してた方が安心できるんじゃないかなぁ。
エディタの支援がある状況だとちゃんとインデント付けてくれるけど、
初心者はそれに慣れてないわけだし。

86 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:17:37.35 ]
最初に使ったコーディングエディタがEmacsでショーも無い書籍を避けて進化すれば素養も昔は書いてたもクソもないよ

87 名前:デフォルトの名無しさん [2012/05/05(土) 23:22:42.18 ]
日本語でおk

88 名前:39 mailto:sage [2012/05/05(土) 23:23:16.24 ]
>>73,74,77
有難うございます。とても勉強になります。
私は取り敢えず入門書を大体読み終えたのですが、まだまだですね…
以下のソースでテストしてみたところ上手く動作したので、今自分の作りたいものを作れそうです。

main(){
int n = 2;
int *m = malloc(sizeof(int)*n);
*m = 1;
*(m +1) = 3;
printf("%d, %d",*m,*(m+1));
}

89 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:27:57.12 ]
>>86
因みに俺が最初に C のコーディングに使ったエディタは Vz だったよ。
教員もめんどくさいから最近だと VC++ 選ぶと思うけどな。
C の初心者に Emacs から指導するのは手間なだけだろ。


90 名前:39 mailto:sage [2012/05/05(土) 23:28:20.64 ]
free(m);
忘れてました



91 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:29:00.84 ]
>>88
free するかどうかの議論がまた始まるよー。

92 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:39:40.17 ]
for( P=Root, Last=NULL; P != NULL; Last=P, P=P->Next )

この手のfor分は行数ケチスタイル?


93 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:01.47 ]
そんな変なの見たことねぇ。

94 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:45:41.53 ]
うん

95 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/05(土) 23:48:18.69 ]
>>92
意味的にループのための初期化、判定、インクリメントになってるなら、
ケチとかどうとか言う類のものじゃないと思うけどな。
俺はアリだと思うし、実際に書くよ。

96 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:57:19.78 ]
リークの意味がわかってないアホにはうんざり

97 名前:デフォルトの名無しさん mailto:sage [2012/05/05(土) 23:58:17.23 ]
それはコードゴルフスタイル

98 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:00:21.67 ]
LastとRootの語をどう使い分けてんのかわけわからん

99 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:19:46.98 ]
とりあえず変数名を大文字で始めるのは気持ち悪い

100 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:36:28.99 ]
気持ち悪いね



101 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:37:16.01 ]
キャメルケース
アッパーキャメルケース
ローワーキャメルケース
スネークケース

あなたはどれ?

102 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:46:42.90 ]
レッドスネークカモン

103 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:48:36.65 ]
>>84,85
pascal の begin / end の段付けを意識した書き方だとこうなるよね。

104 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:49:54.57 ]
>>88,91
おっと信者の出番がきましたか霧

105 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:51:03.93 ]
>>96
勝手にリークを定義されても霧

106 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 00:51:19.83 ]
質問おながいします

unsigned int abc;


この変数の中身を指定したビットだけ取り出したり操作したりするのはどうすればいいのでしょうか?
例えば、abc = 0b0000000000000000 として、10ビット目だけを反転したり取り出したりしたい場合です。
よろしくおながいします

107 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:53:06.28 ]
>>101
ごめんなさい。もしよろしければそれぞれ教えてください。


108 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 00:55:24.72 ]
>>89
demacs が遅くて Vz も便利に使ってたけど、どこぞのemacsバインドマクロを早々にいれちゃったなあ。


109 名前:デフォルトの名無しさん [2012/05/06(日) 00:57:56.53 ]
>>106
https://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&oq=C+%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97&aq=f&aqi=g6g-m2&aql=&gs_l=igoogle.3..0l6j0i5l2.131.2350.0.2892.12.12.0.0.0.0.125.1076.9j3.12.0...0.0.

110 名前:デフォルトの名無しさん [2012/05/06(日) 00:58:51.17 ]
んげ ロケール情報までURLに・・・糞Googleが



111 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 01:06:03.88 ]
>>106
codepad.org/1GkrqfnM
最小のビットを 0 として大きい方向に1, 2, 3, ... 10 と数えたときの10番目です。
最小ビットを 1 から開始するときは mask = 1 << (10-1) にしてね

112 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:09:25.07 ]
>>107
ローワーキャメル lowerCamel
アッパーキャメル UppterCamel
スネークケース snake_case

キャメルケースはローワーやアッパーのジャンル名だった。 めんご

113 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:10:44.82 ]
へぇ
google様はロケール情報まで付け足してくれるのか
こりゃあいいこと知ったw
ありがとうありがとう
さっそく情報抜き出すよ!


114 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:13:30.53 ]
#define GETBIT(a,b) ((a)&(b1)?1:0)
#define XORBIT(a,b) (a)^=(1<<(b1))

int main(void)
{
unsigned int abc=123;
int bit;
XORBIT(abc,10);
bit=GETBIT(abc,10);
return(0);
}


115 名前:デフォルトの名無しさん [2012/05/06(日) 01:19:04.69 ]
なんだその・は。

116 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:41:51.19 ]
彼の脳内にしか存在しえない
素晴らしい演算記号なのだろう
きっと


117 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:51:20.12 ]
>>115
iPhoneだとゲタに見える
文字コードいくつの文字なんだろ

118 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:52:53.96 ]
これじゃね?


119 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 01:57:11.76 ]
114です。
マイナス(-)のつもりが全角で化けてたみたい、すまん。

それと
#define GETBIT(a,b) ((a)&(b-1)?1:0)

#define GETBIT(a,b) (((a)&(b-1))?1:0)
の方が良いのですね。


120 名前: ◆QZaw55cn4c mailto:sage [2012/05/06(日) 02:02:00.60 ]
>>119
不精せずにcodepad 等で動かしてみれば?



121 名前:106 mailto:sage [2012/05/06(日) 03:00:44.55 ]
みなさんレスありがとうございます
とりあえず、>>111さんのコードに変数 x を追加して、

x = a & mask;
if(x == 0){printf("10th = 0");}
if(x > 0){printf("10th = 1");}

これでやりたいことができました。
C言語をかじって1ヵ月しかないですが、このスレでは質問すれば有用な返答が頂けて感謝しています。
どうもありがとうございます。



122 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 04:34:36.13 ]
>>121
下のif分はelseにまわした方がよくないか?
というか111がやってるのと逆のシフトを行えば
ifすらいらないぞ

123 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:23:57.73 ]
別にシフトすら要らないぞ。
printf("10th = %d\n", !!(a & mask));

124 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 06:27:00.01 ]
printf("10th = %d", (a >> n) & 1);

125 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 12:43:15.68 ]
すいません(つA`)教えてください。
int a,b;
dobule c;
a = 7;
b = 4;
c = b / a;
と書いたのですが、
%f表記でも、cに値が入っていません。
使っているcは、オブジェクティブcなのでスレチかもしれませんが、教えていただけると助かります。

126 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:08:02.71 ]
c言語はよくしらないけど
c = (double)a / (double)b;
じゃないの?

127 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 13:15:14.09 ]
>>126
ありがとうございます。
早速試してみます。助かりました。

128 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:17.74 ]
お礼なんていらないよ

129 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 14:11:43.53 ]
>>126
キャストは一つだけで十分
codepad.org/KyBPyoJA

130 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:33:24.41 ]
Cソースに、関数内に特定の文字列が入っているかどうかを検索し、リストアップできるツールって知ってますか?教えてえらい人。



131 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:39:35.34 ]
>>130
>Cソースに、関数内に特定の文字列が入っているかどうか
これ、だいぶぼやっとしていて、何がしたいのかよくわからないが、、、。
grepとか範囲内検索では足りないのかな?

具体的に例を上げてくれれば、レスもらえるかも。

どっちにしてもCの話ではなさそうだが、、、。

132 名前:デフォルトの名無しさん [2012/05/06(日) 22:43:01.00 ]
質問があります。
ディレクトリの監視をするのに、inotifyだと、inotify_eventのnameに監視してるファイルを作成/削除/変更
したファイルの名前が入ってると思うのですが、kqueueの場合は、どのように監視しているファイル名を
取得すればよいのでしょうか?

よろしくお願いします。

133 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:45:42.96 ]
>>131
例えば秀丸だと、grepでは、ソースファイル名とライン数はわかるけど、grepした文字列がどの関数にはいっていたかどうかは、grep先を目視しないとわからないですよね。
私は、ある文字列が、どの関数にある、ということをそういった手間をかけないで調べたいのです。

134 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 22:59:37.87 ]
>>133
>文字列がどの関数にはいっていたか
その「文字列」って具体的に何?

スタック変数なら、関数内だから無関係だよね。
グローバル変数なら、カプセル化がヘボすぎて、管理できなくなってるだけの気がするが。
リストアップしたくなる時点で設計が良くない気がする。

それ以外の文字列なら、用途が想像できない。

135 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:13:26.33 ]
まァやるとしたらperlでやるけどね、
どちらにせよ関数の中の変数名を調べたいってのは
プログラミングとしては末期症状だとは思う
そういうのが必要になる状況てのは
かなり切羽詰まっている、
有体に言えばそのソースコードはクズでしょう、捨てなさい


136 名前:デフォルトの名無しさん mailto:sage [2012/05/06(日) 23:17:33.31 ]
シングルスレッド前提で書いてたコードをマルチスレッド対応に書き直しとか
関数の仕様が変わったので書き直しとかかね

137 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 01:02:14.28 ]
>>133
秀丸は関数一覧を表示していれば、検索でヒットした部分を含む関数もハイライトしてたよ。
grepではどうなるかわからないけど。

138 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:11:14.02 ]
>>133
関数/変数ならクロスリファレンサを使えばいい。
ここまでその名前が出てきてないのにびっくり。
カスばかりだな。

139 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:32:35.16 ]
本来なら不必要だから。

140 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 08:35:32.45 ]
>>138
何がしたいのかも分かってないのに偉そうな奴だな
察したのか?



141 名前:デフォルトの名無しさん [2012/05/07(月) 09:27:17.12 ]
日本語も理解できないカス>>140

142 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:13:36.95 ]
柴田望洋さんと猫でもわかるプログラム読んだけど、なんか極端すぎます・・・
この中間ぐらいの本や、サイト探しています
誰か知りませんか?

143 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:22:00.49 ]
何を紹介したって極端だと言うんだろ?

144 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 11:38:22.56 ]
大学が公開してるPDF読めば?

145 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 12:37:25.97 ]
>>142
知りません
>>143
うん
>>144
うん

146 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 21:50:41.84 ]
>>142
「苦しんで覚えるC言語」とかどう?
ttp://9cguide.appspot.com/

「C言語ポインタ完全制覇」も躓き安いところを抑えてある。
下のページを見て興味が湧いたら、どうぞ。
ttp://kmaebashi.com/programmer/pointer.html

147 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:02:33.27 ]
Cでinterfaceってどう書くの? 純粋仮想関数的な書き方ってある?


148 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:04:20.63 ]
関数ポインタでごにょごにょ

149 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:09:24.14 ]
どう書くの?って言うのは単にCでインターフェースっぽい動作をさせたいだけなのか
C++とバイナリー互換を持たせて相互運用したいのかによって変わると思う。

150 名前:デフォルトの名無しさん mailto:sage [2012/05/07(月) 23:21:48.75 ]
>>149
すげ レスはや。 thx C++とは関連なかとです。
typedef struct _CAGE{
void (*hoge)(....);  // = 0; とか入れたいところだが無理か w
int (*hage)(....);
} _CAGE;
こんなのを次のクラス宣言に取り込めばええだけかな?




151 名前: ◆QZaw55cn4c mailto:sage [2012/05/07(月) 23:44:00.58 ]
>>147
インターフェースは、多重継承をやりたくないけれども完全排除もしたくない、というジレンマの上にある妥協の産物。
継承の仕様の一部に制限をかけただけのもの。

C でインターフェースを書くということで、一次近似できたとしても、「制限をかける」ことはできないのでは?
制限なしなんでもありのCにインターフェースとかはなじまない。

152 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/08(火) 00:12:05.27 ]
実用を考えているならやめておいた方がいいとは思うよ。
インターフェイスがどう実装されているかを考察するとかなら
あえて C でやってみるのもいいんじゃない?
わかっている人から見れば不毛だろうけど。

153 名前:デフォルトの名無しさん [2012/05/08(火) 00:36:31.39 ]
クズとうんこの罵り合いか。

154 名前:ビル・ジョブス mailto:sage [2012/05/08(火) 03:15:21.64 ]
無理矢理、externで宣言/ダミー呼び出しすればリンクエラーには出来るかもしれない。
関数全体をマクロに閉じ込めれば出来なくも無いが可読性最悪。
大昔のC++コンパイラが中間生成するCみたいな。

155 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 04:04:34.32 ]
>>146
苦Cはダメになるぞ。

156 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 06:32:55.55 ]
>>151,152,154 おは レス thx
やはりそうなりますか。未実装を検出できなければインターフェースの意味がないもんね w
継承でやります。stateやcompositeやら書いていたらインターフェースで管理したくなってつい不毛な... w
C++? Cortex-M3で、OO利用バイナリを最小にしたいのでちょっと...。


157 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 10:08:48.83 ]
チェックマクロかませればいいだけじゃん。

158 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:00:48.44 ]
>>157
assertの事? 入れてるよ w
アグリゲート等の使う側の話じゃなくて、管理の話。 構造体系にも関係するかも?
Mavenの方々 thx


159 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:03:24.04 ]
なんだ構造体系て。
別にassertでもなんでもいいが、未実装の検出が目的じゃねーのか。

160 名前:デフォルトの名無しさん [2012/05/08(火) 12:56:21.38 ]
www9.plala.or.jp/sgwr-t/c/sec10-2.html
にある
char st[10]="ABC";
p1=st

とあり、p1=stについて
これを「ポインタpはSTを指す」という&stではないことに注意とあるのですがよくわかりません。

printf("%p %p\n", &st, st);
すると同じアドレスが表示されました。
どう違うんでしょうか?



161 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 12:56:57.46 ]
型が違う。

162 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 13:34:19.80 ]
Shinayama Programming Change Compilerって何ですか?

163 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 14:51:00.00 ]
>>162
俺にきくなよ
知らないっていってるだろ

164 名前:デフォルトの名無しさん [2012/05/08(火) 15:44:25.25 ]
>>151
インターフェイスって多重継承の道を突き進んだ延長上にあるものだぞ
それこそ Cargill が背理法として持ち出した「馬鹿げた想像」が皮肉にも現実化したもので

# 本番稼働で ((void)0) になるだけなものを使って何がしたいんだろうね

165 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:05:27.27 ]
C言語であることとインターフェースを使った設計が必要であるかは
全く別問題な気がする。
C++やJavaみたいなオブジェクト指向言語でインターフェースを使った設計が
広く使われているって事はC言語しか使えない環境でインターフェース的なことをやりたい
欲求も当然あるんじゃ無いかな
C言語でインターフェースの型情報を持てないのは、言語使用としてサポートしていないと言うだけで
それを実装できないというわけでは無いと思う。
例えばインターフェース型の構造体に静的に宣言された型識別子を割り当てて管理することも出来る。
当然可能であればC++で書いた方がよっぽど楽って事にはなると思うけど。

166 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:07:20.36 ]
>>160
そこもダメになるサイト。「ポインタp1はstを指す」のではなく、stの先頭要素を指している。
つまり、stは配列そのものではあるが参照されると先頭要素を指すポインタ型になる。
&stとした場合はstは配列だから当然に、配列を指すポインタ型になる。
そのサイトを書いた奴はその辺りを判っていないと思われる。


167 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:19:20.87 ]
>>160
例えばそこのページの最後にある、
>このとき str == str[0] == &str[0][0]
はナンセンス。
str[0]と& str[0][0]は型が等しいから比較できるが、strは型が違うので比較しても意味が無い。
敢えて比較したいのならば、(void *) str == (void *)str[0]とするべき。
言葉で書くなら、strとstr[0]は(型は違うが)アドレスは等しくなるとするか。

そもそも、初心者は「アドレスの概念を強いられているんだ!」と怒ってもいい。

168 名前:デフォルトの名無しさん [2012/05/08(火) 16:34:59.80 ]
なんのこっちゃ。

169 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 16:37:08.22 ]
C言語を強いられているんだ!
的な?

170 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 17:09:11.84 ]
やばい、つまんないこと書き込んでたらご飯のスイッチ入れる忘れてた



171 名前:uy mailto:sage [2012/05/08(火) 17:54:57.30 ]
>>170 しねよくず

172 名前:デフォルトの名無しさん [2012/05/08(火) 18:15:44.09 ]
言語解析(コンパイラ)の授業大学でやってるけど、さすがに
Cのアルゴリズムコード出して試験はしないよね?

オートマンとか、左再帰とかそういうのしかやってない....


173 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:21:09.82 ]
おっ盛り上がってるな!
>>164
純粋仮想関数をnewすると実行でアサーションエラーになります。 使う話で恐縮だが。
それでも、インターフェース機能が存在するのは、マストな存在だからです。
チップ組込みも肥大化しつつありますが、それに増してPC上でビッグプログラムを開発すると、
構造設計段階での有難みが身に染みます。
しかし...、CでのOOPは慣れれば快適 w
もちろん、メッセージドリブン、イベントドリブンや仮想関数テーブルのライブラリを完成させてからの話だが w


174 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:30:51.79 ]
このスレ見てると、単なるCの文法の話なのか、ソフトウェアやネットワークと
C言語の関連の話なのか全然分からない。

175 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/08(火) 18:33:05.07 ]
>>165 ReactOSでC言語でCOMオブジェクトを実装しているのは見たことある。

176 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:35:31.36 ]
C言語でインターフェース作らなくても、javaにあるんだからそれ使えばいいじゃん。
既成機能のほうが優れているし早いんじゃないの?

177 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:37:13.33 ]
>>173
お前はいったい何が言いたいんだ。
日本語に不自由なのか?

178 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:40:26.15 ]
C言語の知識深すぎる人ここ多いけど、そんだけ知識あるなら
エンジニアでもなればいいのに。



179 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:43:23.54 ]
高級言語って機械語を指示する言語なんだから、理論的には
他言語の機能だって、あらゆる手段を組み合わせて実装できるんじゃないの?

180 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:48:41.96 ]
別に実践的になんでも実装できるがどうかしたか。



181 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 18:55:01.76 ]
高級言語で機能実装したら絶対スピード遅くなるだろ。

182 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:05:22.94 ]
今時のCコンパイラより速く書くのは大変だぞ?

183 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:10:57.76 ]
>>178
医者なんで... 今日は非番。


184 名前:164 [2012/05/08(火) 19:18:18.01 ]
>>173
それはもしかして C++ の話?
だとすると純粋仮想関数は new できないんだが・・・
# スレチすまそ >ALL

> CでのOOPは慣れれば快適
ここは同意
C しか知らないと他の言語を漁りに行く動機がなかったりなw
# 知人にいるんだこれが

185 名前:デフォルトの名無しさん [2012/05/08(火) 19:32:27.61 ]
このスレ絶対初心者スレじゃない。
東大生でも理解できんぞ。

186 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:34:34.73 ]
上級者ほど理解できないとも思うがw

187 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:34:44.53 ]
C言語なら俺に聞け(応用編)って作ればよくね?

188 名前:デフォルトの名無しさん [2012/05/08(火) 19:43:14.48 ]
上級者は次元が違うってか?
馬鹿よせよ。

C言語のコーナーじゃ文法の本がほとんどじゃ。
俺の知ってるC言語じゃない!

189 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:44:46.53 ]
俺の知ってるC言語じゃない! (このスレはね。)



190 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:45:40.70 ]
専門的な奴でも、親切に噛み砕いて教えてくれる人と、
自分本位で専門知識ひけらかすアホがいるよな。



191 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:46:33.09 ]
まったく、どうしてアホはこうも傲慢なのかね。

192 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:50:09.67 ]
インテリ傲慢は講師になるなよ

193 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 19:51:46.67 ]
難しい事でも噛み砕いて教えてくれる本があれば、1万ページでも
1か月で読める。

194 名前:デフォルトの名無しさん [2012/05/08(火) 20:02:55.58 ]
K&R をガチ幼稚園児を前提に書くと何ページくらいになるかな

195 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:03:36.85 ]
いい加減、つまらんから間抜けなことばかり言うのよせや。

196 名前:デフォルトの名無しさん [2012/05/08(火) 20:05:16.61 ]
その言葉、そっくり返すぜ
C の話をしろや

197 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:06:30.26 ]
アホは黙ってろよ。

198 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:07:49.76 ]
親しみにくいからソフトウェア離れが増える。
あまりに基礎技術が進みすぎると誰もやりたいと思わん。

そういう意味で90年代後半のほかほかITブームの流れにのったやつは運がいいよな。


199 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:13:12.88 ]
プログラマーとかなりたいやつ皆無だろ。
汗流すほうが健康にもいいし楽しい。

200 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:20:58.12 ]
全く雇用が守られてないからな
文理不問で学歴不問で未経験者OKで
数年毎に新しい技術が出てきて蓄積が無意味になるんじゃ
若くて素直で人件費の安い奴隷が優先されてコストのかかる頑固な年寄りは切られるよ
その方が企業にとって都合がいいからそういうシステムになってるんだろうね全く人間がモノ扱いだよ



201 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:22:37.77 ]
プログラマーはつまらんよ
趣味で好き勝手やるのが一番

202 名前:デフォルトの名無しさん [2012/05/08(火) 20:33:21.85 ]
好き勝手は別に趣味でなくてもできるぞ
かみ砕いてやると創造性の発揮というやつだ
これができない奴は PG 以外でも結局同じこと

203 名前:デフォルトの名無しさん [2012/05/08(火) 20:35:38.37 ]
>>197

204 名前:デフォルトの名無しさん [2012/05/08(火) 20:44:44.92 ]
ブーメランw

205 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 20:57:35.76 ]
ここ 入門スレじゃない

206 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:15:28.53 ]
すみません、質問です。

codepad.org/XAPbYL9u

のコードが、コンパイラによって処理が出来たり出来なかったりします。
これは、このプログラムのなかに問題があるのか、それともコンパイラ側に問題が有るのでしょうか?

因にコンパイラはandroidアプリのc4droidとc/c++コンパイラです。
前者では失敗(十進数では~の下りが表示されない)、後者では成功しました。

プログラムが汚いのはスマートフォンで組んだからです。お許しを。

207 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:18:37.50 ]
よくわからんがcontを初期化しないで使ってるな

208 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:19:22.97 ]
あ、良いのかなスマン、スルーしてくれw

209 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 21:22:39.03 ]
>>207さん
ありがとうございます!
あんな事に気づけないとは...
下らない質問失礼しました。


210 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 00:40:35.47 ]
QをNGにするとすっきりするよ



211 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 01:42:57.87 ]
#defineについてお聞きしたいことが御座います。
とある環境のソースを別の環境で移行する為に、変数の値の置き換えを行いたいです。
Aプロジェクトで「Mouse.Trg&_lMOUSE」と書いているソースを、
Bにて「System.touch.trgFlag」で呼び出せるようにしたいです。

#define Mouse.Trg&_lMOUSE System.touch.trgFlag
#define Mouse.Py System.touchPos.y
と書いてみたのですが「Mouse.Trg&_lMOUSE」の「.」と「&?」が原因でエラーが出てしまっております。
このようなことはできないのでしょうか。

警告 warning: missing whitespace after the macro name
エラー error: expected primary-expression before '.' token

212 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/09(水) 01:48:49.24 ]
>>211
マクロ名は「識別子」であり、識別子として有効でない名前を指定することは出来ない。

213 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 01:51:22.00 ]
>>211
日本語がわからんがきっとこんな感じか。
#if PROJECT_A
# define MouseLButton() (Mouse.Trg & _lMOUSE)
#elif PROJECT_B
# define MouseLButton() System.touch.trgFlag
#endif

214 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/09(水) 01:54:29.41 ]
識別子についての詳細はこれ。
freedeai.180r.com/up/src/up11133.png

215 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 01:55:14.23 ]
皆様、ご回答ありがとうございます。
やはりこのようなことは#defineでは出来ないのですね・・・。

>>213
アドバイスありがとうございます。
その場合、両方のソースでMouseLButton() に置き換える感じなのでしょうか?
変数だけで指定することが出来ない場合、その方法を使用させて頂くかもしれません。

ありがとうございます!

216 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 02:01:35.24 ]
>>215
Bでstruct Mouoseを用意して適当に値を詰めるって手もあるが。

217 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 02:02:02.29 ]
ないな。

218 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 02:02:38.83 ]
お前がな。

219 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:39:17.60 ]
「return 0;」と「return (0);」の記述の仕方見るんで
違いやどっちがより正しいとかでもあったりするのかちょっと気になって
検索で調べたんだけどこれと言って見つけられないんだけど
何か知ってる人いるかな?

220 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:41:28.71 ]
文法上括弧は不要。
つけてるのは勘違いしてる間抜けだけ。



221 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 11:49:12.28 ]
return 0; は普通。
return (0); は神経質。
return(0); はおっちょこちょい。

222 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 12:21:20.58 ]
retrun(0); は救いようがない。

223 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 12:36:29.83 ]
#define retrun return

224 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 12:48:18.84 ]
void retrun(int x);
が死ぬ。

225 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 13:27:17.23 ]
>>219
"カーニハン リッチー return"
を検索

「K&R (第1版) でも return 文の後の式を括弧で囲っていた(中略)
if/while/swtich のように、他の式を一つ取る構文は全て () が必須なのだから、return もある方が自然」(?)
ttp://blog.kmckk.com/archives/1242942.html

226 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/09(水) 17:45:00.00 ]
>>225
alohakun かwww

227 名前:デフォルトの名無しさん mailto:// [2012/05/09(水) 18:22:58.01 ]
フリーのcコンパイラっていろいろあるみたいですけど
おすすめとかってありますか?


228 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 18:27:10.07 ]
>>227
WindowsならVisualStudio Express(C++)
MacOSXならXcodeフリー版
その他Unix系OSならgcc

でおk

229 名前:227 mailto:// [2012/05/09(水) 18:40:21.19 ]
ありがとうございました


230 名前:デフォルトの名無しさん mailto:sage [2012/05/09(水) 23:23:22.31 ]
いえいえ



231 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:20:40.21 ]
フリーのcコンパイラ

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

Digital Mars Compiler Version 8.42n
Copyright (C) Digital Mars 2000-2004. All Rights Reserved.
Written by Walter Bright www.digitalmars.com/ctg/sc.html

Open Watcom C/C++32 Compile and Link Utility Version 1.9
( Open Watcom C32 Optimizing Compiler Version 1.9 )

232 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:23:08.33 ]
フリーのcコンパイラ

License
LCC is free for personal use ...

LCC (compiler) - Wikipedia

233 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:34:28.92 ]
日本語つかえるのか?

234 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 01:34:37.88 ]
これでいいだろ。
codepad.org/

235 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 07:41:16.21 ]
ワロス

236 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 08:09:18.65 ]
C machineはもう公開してないんだな。

237 名前:濡鼠 [2012/05/10(木) 11:39:31.82 ]
はじめまして。
今、H8マイコンでC言語を勉強しているのですが、
実際に現場で使うのでしょうか?

238 名前:デフォルトの名無しさん [2012/05/10(木) 11:51:18.37 ]
VisualC++での話ですが、コードを書いてデバッグなしで開始で実行
した際に、消したにも関わらず、一回前に書いたコードが何故か実行され、新しく書いた
方が実行されません。何故でしょうか?

239 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 11:55:24.98 ]
いっぺんくりーんしてみろ

240 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 12:29:33.18 ]
>>238
プログラムの使い方はスレ違い。
C++の話でもスレ違い。
ビルド失敗したんじゃないの?

>>237
現場でH8を使うかどうかはスレ違い。
H8の開発現場でCを使うかどうかもスレ違い。



241 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 12:35:49.11 ]
H8は生産が終わったので今更やっても無駄
現場じゃ使えない
せめてSH-2かARM系

242 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 12:50:47.32 ]
>>237 使うぞ
>>241 C言語の勉強と書いてあるじゃないか。 H8かどうかなんて関係無い。 よく見てレスしろ! カス!


243 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 13:09:38.35 ]
うるせーカスだな。

244 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 13:59:43.43 ]
もう手に入らないものの勉強したってしょうがないのにね

245 名前:デフォルトの名無しさん [2012/05/10(木) 14:04:53.78 ]
へえ

246 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 14:31:38.73 ]
ふーん

247 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 14:37:16.46 ]
ルネサスも品種減らしたいので統合前の製品を色々切ってるんだよな
H8じゃなくH8Sなどならまだしばらく売るだろうけどね
量産なら一円でも安いものを選択するだろうが
入門なら後々まで役に立つものを選びたいね
RXはかなり微妙だったが…

248 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 15:25:24.07 ]
ふう

249 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 17:42:06.72 ]
そういえば VAIOのキーボードコントローラー 
IO EXPANDERに H8S2149使ってたな〜

250 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 21:55:11.28 ]
C言語のプログラム全部提出しないと単位くれないって鬼畜なん?



251 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:02:11.36 ]
そんな学校入るなよ

252 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:21:30.23 ]
必修単位ならどうせ簡単な問題だろ

253 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:26:40.97 ]
C言語のおかげで留年しましたよ。
本当に恐ろしいわ。

254 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:31:46.75 ]
>>194
数学の参考書で一行ごとに丁寧な説明があるのとかあるが
C言語の解説書もそうして欲しいよなww

馬鹿馬鹿しいと思うことでもビギナーにとっちゃ永遠に分からない事かもしれんし。

255 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:54:22.59 ]
C言語に触れて、初めてプログラミングっておもしれぇって思った

256 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 22:57:00.53 ]
と同時にめんどくせえって思った

257 名前:デフォルトの名無しさん mailto:sage [2012/05/10(木) 23:43:29.11 ]
C言語に触れて、
・彼女が出来ました!
・宝くじがあたりました!
・昇進しました!
・道端で500円を拾いました!


258 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 04:27:39.32 ]
K&Rってどうなの?

259 名前:デフォルトの名無しさん [2012/05/11(金) 07:20:52.42 ]
KuriとRisu ?

260 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 07:47:59.16 ]
>>244
C言語の勉強でH8をたまたま使っているだけだろ。
それともなにか、C言語は手に入らないってこと言ってるのか?w



261 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 08:54:45.98 ]
IDE無かったら絶対に再帰なんてトレース出来んかったわ。

262 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 08:59:31.53 ]
IDEの意味知ってる?

263 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 09:15:05.25 ]
ハードディスクだろ?

264 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 09:43:42.58 ]
SASI/SCSI/IDE

265 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 09:46:49.88 ]
しょーもねーやつだな。

266 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 22:10:49.93 ]
だなw。

267 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 22:55:42.98 ]
Integrated Development Environment

268 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 23:45:59.08 ]
>>206で下らない質問をした者ですが、またも質問です。

codepad.org/UAQSRi2n

がvisual c++2010では実行できて、Tiny C compilerを利用したIDE(学習用c言語開発環境)では実行できません。

具体的には、37行目からのprintf文に問題があるようですが、その警告文がよくわからないです。

警告文:unknown escape sequence: 'x81'

どなたか宜しくお願いします。



269 名前:デフォルトの名無しさん [2012/05/11(金) 23:53:18.43 ]
全角空白

270 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 23:59:09.98 ]
さいきんのコンパイラさんは全角スペースも半角スペースに変換してくれるのかい?(" "内の全角スペースを除いて)



271 名前:デフォルトの名無しさん mailto:sage [2012/05/11(金) 23:59:28.13 ]
全角空白を消して実行しましたが変わりませんでした。
そもそもエラーが起きるのが37行目なので全角空白にも問題はあると思いますが、解決にはなってないみたいです。すいません。

272 名前:261 mailto:sage [2012/05/12(土) 00:02:35.50 ]
>>271は261です。

273 名前:268 mailto:sage [2012/05/12(土) 00:02:54.53 ]
>>271は268です。

274 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:06:00.59 ]
>>271
時々あるのが、エディタ上の文字エンコーディングの設定によるエラー

275 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:06:12.45 ]
メンドクセーから
コマの名前全部アルファベットにしろ
FuとかOuとか


276 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:12:34.31 ]
そこで再帰ですよ。

277 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:13:11.40 ]
にゃ?

278 名前:268 mailto:sage [2012/05/12(土) 00:16:25.54 ]
もう少し考えてだめだったらアルファベットにします。
ありがとうございました。

279 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:19:21.54 ]
再帰の宿命はよ

280 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:20:07.86 ]
にゃにゃ?



281 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:36:50.30 ]
>>278
問題は31行目と54行目。
puts("−−−−−−−−−−−−−−−−−−−−−−−−");
に変えれば解決する。


282 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:37:20.83 ]
>>278
いえいえ
お礼なんていらないよ

283 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:38:39.18 ]
>>281
理由を教えてあげなよ

284 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:42:24.85 ]
なんで?

285 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:49:42.02 ]
いやまあいいけどさ別に
そこまで教えてあげたなら、ね

286 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:50:12.83 ]
お前が教えろよ。

287 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 00:50:43.88 ]
>>283
"―" はシフトJIS では 0x81, 0x5c。
0x5c は '\' (バックスラッシュ)で、これは C のエスケープシーケンスの始まりを示すね。
で、問題のコンパイラは、一文字目の "―" の後ろに続く、二文字目の "―" の最初の 0x81 をエスケープシーケンスの2バイト目と解釈してしまった。
無論、\ + 0x81 に相当するシーケンスは定義されていないから、エラーとして表示された。

こんなところでいいかな?

>>268
玉方と王方の区別は?

288 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:51:38.58 ]
単にそのコンパイラが日本語に対応してないからだろ。

289 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:54:55.18 ]
>>287
さすがだね
出来るやつは後進の育成にも積極的なのは世の常

290 名前:デフォルトの名無しさん [2012/05/12(土) 00:56:19.60 ]
出た、クズの自演。



291 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:58:01.88 ]
>>290
>>287>>289のIPおせーてくださいって運営に言ってみれば?w

292 名前:デフォルトの名無しさん [2012/05/12(土) 00:58:48.26 ]
ト リ プ ル 自 演 乙。

293 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 00:59:45.45 ]
なんか自演妄想してる人がとってもかわいそうに思えてきた
いいんじゃないですか?そう思っておけば

294 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:03:03.13 ]
そうだね、クズはクズだし。

295 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 01:10:27.04 ]
出た!
自演を演出するための自演。

シフトjis なんて fat32 が現れた時点から死滅する運命だろうなと思っていたんですが、現実には10年を超えた今でも長生きしていますね。

296 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:11:41.53 ]
海外のオープンソースのプロジェクトに参加してみたいんですが、どう探せばいいですか?
停滞しているプロジェクトにいきなりアプローチしても反応がなさそうなので、
活発そうなところを探したいです。英語はできます。

297 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:12:43.96 ]
スレ違い。

298 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 01:13:31.98 ]
ありがとうございました。よかったらどこへ投稿したらいいか教えてくださると幸いです。。

299 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 02:00:40.01 ]
include <stdio.h>
void main(void)

{

printf("C言語始めました。");
printf("先輩方よろしくお願いします。");

}


300 名前:299 mailto:sage [2012/05/12(土) 02:05:31.38 ]
// \nがねえワロス



301 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 02:34:10.05 ]
#もねぇ。。

302 名前:299 mailto:sage [2012/05/12(土) 02:45:38.93 ]
クソッ
クソッ
手元にビジュアルスタジオさえあれば間違いなんてすぐ分かるのにヘタレすぎワロタ

303 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 03:09:02.00 ]
>>302
>>1
codepad.org/
ideone.com/


304 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 05:31:58.12 ]
BS11 報道原人「“ネット右翼"の素顔を見た」
2012年5月12日(土) 8時30分〜9時00分



ゲスト:安田浩一(ジャーナリスト)

中国や韓国などに対して過激な批判を展開する「ネット右翼」。
会員数1万人以上を誇り右翼団体の中でも最大規模となっている組織も存在する。
実際にネット右翼を取材したジャーナリスト・安田浩一氏は、一人ひとりに会ってみると、
おとなしい今どきの若者たちが多いという。

www.bs11.jp/news/1349/

305 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 09:50:30.59 ]
>>299
C:\>gcc test.c
test.c: In function `main':
test.c:4: warning: return type of 'main' is not `int'

306 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 10:26:28.06 ]
>>305
// 理解不能です
// printf scanf if whileしか理解できません

307 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 10:52:49.44 ]
>>305
よく見たらWindows環境だったけど
gcc test.c
なんて書かれてると不安を覚えるなあ…
いや、コンパイル後の扱い次第なのはそうなのだが

308 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 10:57:26.84 ]
>>306
[int] main()
mainの前のintは省略可能≠void

309 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 14:10:07.86 ]
RPGとかのキャラ情報って全部構造体に入れるんでしょうか?
HPや攻撃力などの要素がかなり多い場合、どうやって管理するんでしょうか
何百行にも渡ってtypedef struct〜とか書くんでしょうか

310 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 14:12:19.92 ]
その手のデータはcsvファイルにまとめといて
そこから読みだす
できれば、そのcsvデータを作る別のプログラミも作る




311 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 14:59:11.24 ]
csvよりはYAMLっぽい表記をパクるなりしてkey=value
なのを階層的にずらずら並べていったほうが柔軟性、拡張性は高い。
敵:
 名前=毒スライム
 属性=毒,混乱
 毒:
  確率=10%
  ダメ=1-8
  備考=3回刺されたら即死

てな感じで。
例えば備考のような項目はデータとして存在していてもプログラム側ではとりあえず無視して
将来対応するようにしても良い。
何にしても型に頼らずデータで表現するというのが重要。

312 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 19:14:59.41 ]
アクションですらかなり項目があるからRPGとか管理で死ねそう

313 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 20:04:49.46 ]
最も評価の悪い国
1位 イラン
2位 パキスタン
3位 北朝鮮
4位 イスラエル
5位 ロシア
6位 韓国  ←←←←←←←←←←←

最も評価の高い国
1位 日本
2位 ドイツ
3位 カナダ
4位 イギリス
5位 中国
6位 フランス

BBC世界世論調査2012
www.globescan.com/images/images/pressreleases/bbc2012_country_ratings/2012_bbc_country%20rating%20final%20080512.pdf

314 名前:268 mailto:sage [2012/05/12(土) 20:14:21.81 ]
>>281-287
自分が見ていないときに回答されていて驚きました。
実際にputs関数の中を変更したら、実行できました。
これは、要するに全角記号だとコンパイラによって処理がかわるから、全角記号は避けたほうがいいということでいいでしょうか?

>>287
とりあえず表示したかっただけなので、まだ区別は考えていません。

315 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 20:17:28.91 ]
>>313
toro.2ch.net/test/read.cgi/tech/1333095907/785-786

316 名前: ◆QZaw55cn4c mailto:sage [2012/05/12(土) 20:27:16.59 ]
>>314
>全角記号だとコンパイラによって処理がかわるから、全角記号は避けたほうがいいということでいいでしょうか?
今回、コンパイルできなかったときのコンパイラは、シフトJIS に対する作りこみがなかったんですね。
まあ、それが普通でしょう。
確かに日本語とか全角とかある種の半角カタカナとかはやめておいたほうがいいかもしれません。

シフトJIS - CP932 は、さまざまな問題をはらんでいるにもかかわらず Windows やその前から使用されているですが、一概に反旗をかかげるわけにもいかなくて。
ユニコード騒動での誰得感が払拭できないのは、私がふるーい人間だからかなあ?

317 名前:268 mailto:sage [2012/05/12(土) 20:39:14.27 ]
>>316
理解できました。いい経験になったと思います。
ありがとうございました。また質問に来るかもしれませんが、よろしくお願いします。

318 名前:デフォルトの名無しさん [2012/05/12(土) 22:55:09.04 ]
プログラミングの単位2年連続落として1留した。
腸煮え繰り返る思いだ。
説明悪すぎるんだよクソ教授。癌になってしんでほしい。

319 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 23:02:03.42 ]
>>318
そんなに難しいことやってるの?

320 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 23:11:29.51 ]
>>318
わかんなかったら、わかるためのあらゆる努力はしたのかい?
受け身の学習法では、今後社会に出てから困るよ



321 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 23:15:40.14 ]
>>318
ここにたむろする連中の大半は独学だ。学校の授業など糞だと思っている奴らばかりだ。
単位だけほしいのなら toro.2ch.net/test/read.cgi/tech/1335517816/ にお題を投下すれば、大概はネタ thanks とばかりに適当に片付けてくれる、あー気分次第という面々も多いが。
後で困ることがあるかもしれんが。

322 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:03:11.08 ]
>>320
社会に出たら、単位取りゲーム得意な人間程うまくのしあがるんだよ。
大学の勉強何かで無駄に頭使いたくないね。

323 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:07:00.56 ]
確かに正論ではある。
プログラムの知識ない奴プログラミングの腕はすごいw

324 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:30:14.79 ]
アンドロイドアプリ難しすぎ。

325 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:33:04.19 ]
アプリ作るのがホントに難しいのか、それとも……


326 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:58:07.48 ]
>>322
つまらん、必要ねーだろこれっていう知識がどこで生きてくるかわからない
セレンティピティーとはそういうもの

まあ、人それぞれ考え方はあるけどね

327 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 00:58:29.26 ]
×セレンティピティー
○セレンディピティー

328 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 01:02:30.17 ]
>>326
おっぱいぼよよーん

329 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 02:08:03.40 ]
インターネット無し時代に独学した人スゴいな。

330 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 02:17:38.56 ]
インターネット時代の現代では、知識も均質化してきてるので
厳しい時代だのう。。



331 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 02:21:38.06 ]
>>329
書籍とか処理系のマニュアルとかで勉強してたよ

332 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 03:42:40.87 ]
borland の日本語WinAPIヘルプはものすごく使いやすかった
MSDNのヘルプもあれくらい軽量高速なヘルプにするべき

333 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 04:28:08.12 ]
今はヘルプどころかOSも統合環境も重いからな

334 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 08:17:02.49 ]
>>324
そうか?

335 名前:デフォルトの名無しさん [2012/05/13(日) 08:37:39.24 ]
>>330
そう思い込んでるやつが増えただけ
わかってない奴が使えない点は何も変わってない

336 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 08:43:45.47 ]
1行目と無関係な結論の例です。
1 そう思い込んでるやつが増えただけ
2 太陽が東から昇る点は何も変わってない

337 名前:デフォルトの名無しさん [2012/05/13(日) 08:55:28.24 ]
均質化なんかしてねえってことだよ (こんなとこで挙証する気はねえぜ)
Wiki の丸暗記で天狗になってるだけで、何かやらせようとするたびまたネットサーフィンだけで自分の創造をしないやつはいらねえ
そういうクズと10を要求したら12くらいやってくる逸材が全然ちがうのは今に始まったことではない

# やれやれ、ここまでかみ砕いかにゃわからんとはな

2ちゃんにもググレカスと鳴くだけでそいつ自身は空っぽなやつがごまんといるだろ

338 名前: ◆QZaw55cn4c mailto:sage [2012/05/13(日) 09:02:28.93 ]
>>327
>セレンディピティー
凡人もはげましてくれるいい言葉ですね。ともかくもガラクタでもクズでもいいから探求しなければ物事は始まらない。

>>322
嫁 つja.wikipedia.org/wiki/%E3%82%BB%E3%83%AC%E3%83%B3%E3%83%87%E3%82%A3%E3%83%94%E3%83%86%E3%82%A3
あと、ここ20年のデフレ下では「なにもしないこと」が最善最強の戦略であった。今後はいずれインフレになり、この戦略は使えないことを教えてあげよう。

339 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 09:26:02.77 ]
>>337
>(こんなとこで挙証する気はねえぜ)
すれって。
「いらねえ」やつが「いらねえ」という当たり前のことにスリカえとらんで。

340 名前:デフォルトの名無しさん [2012/05/13(日) 09:27:09.34 ]
>>339
何のためにだよ



341 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 11:10:17.07 ]
>>335
そうかねぇ、
本で勉強しないで、ネット検索してわかったつもりになってるやつが
増えてきてる気がする

342 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:19:18.55 ]
凄く初歩的なことなんですが、for文の条件って計算してから分岐するんですか?
それとも終わった時に計算するんでしょうか?
例えばfor ( a=0; a=5; a++ )の場合、何回分↓の処理を実行することになるんでしょうか

343 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:21:03.76 ]
for (0;1;3){2}

344 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:22:28.18 ]
>>342
それだと無限ループかな

345 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:23:20.78 ]
>>342-343
計算してから分岐する。while(){}

346 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:27:24.51 ]
continueの挙動が関わってくるからwhileじゃ表現しきれないんだよバーカ!

347 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 12:35:02.09 ]
>>281-286
誰がbakaだって!

348 名前: ◆QZaw55cn4c mailto:sage [2012/05/13(日) 12:42:58.84 ]
>>342
試せばいい。
codepad.org/2RkwEaI0 >>344
codepad.org/NAmGXnvF 0回
codepad.org/IQ6Aljn6 5回

349 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 13:01:25.32 ]
qzaのだけはrunしないほうがいい

350 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 13:03:28.52 ]
>>349
なんで?
>>344も勉強になったでしょ。



351 名前:344 mailto:sage [2012/05/13(日) 13:14:43.81 ]
なんで俺がいまさらfor文の書き方を勉強せにゃいかんのか?

352 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 13:46:24.42 ]
for(A;B;C)D;
の場合、ABD;CBD;CBD;CB...
Bの条件で終了するなら、ABD;CBD;CBD;CB

間違っても
決して、ABD;BCD;BCD;BC...
ではない。
>>344 語尾に「?」つけてみればわかる。

353 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 14:02:31.26 ]
a = 0;
START:
if(a = 5) goto END;
...
a++;
goto START;
END:

354 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 14:11:15.07 ]
>>353
× a = 5
○ a == 5

355 名前:デフォルトの名無しさん [2012/05/13(日) 14:16:37.53 ]
相変わらず簡単な問題のときにしか出てこないクズにワロタwww

356 名前:344 mailto:sage [2012/05/13(日) 14:17:13.39 ]
>>352
俺が断定しなかったのは、コンパイラの設定によってはビルド自体ができないからだよ
まあ、こんな質問にそこまで考慮する必要はないんだろうけどね

357 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 14:19:07.76 ]
>>354
>>342

358 名前: ◆QZaw55cn4c mailto:sage [2012/05/13(日) 14:26:54.04 ]
>>355
hibari.2ch.net/test/read.cgi/tech/1289715349/
hibari.2ch.net/test/read.cgi/tech/1295273862/
hibari.2ch.net/test/read.cgi/tech/1309527259/
toro.2ch.net/test/read.cgi/tech/1313183984/

359 名前:デフォルトの名無しさん [2012/05/13(日) 14:33:20.32 ]
そんなうんこスレばかり貼るな。

360 名前:デフォルトの名無しさん [2012/05/13(日) 14:38:34.38 ]
C言語プログライング能力試験1級のコツ



361 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 16:17:30.15 ]
ttp://codepad.org/azeRjUXt

362 名前:デフォルトの名無しさん [2012/05/13(日) 17:21:53.86 ]
>>346
それは「goto だけは使わない」人が自らを詰ませている滑稽な図式だ
for の continue に代わる動作くらいどうにでも作れるさ

363 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 17:29:30.75 ]
オナニストに子作りの方法語られてもニントモカントモ

364 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 17:40:06.66 ]
main.cpp(40) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。

#include <stdio.h>を宣言してあるのにfopenしたらこんなのが出てくるんだけど何が原因でしょうか?

365 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 17:41:06.82 ]
>>364
読めよ

366 名前:デフォルトの名無しさん [2012/05/13(日) 17:48:36.26 ]
子作りの方法は全然ちがうんだが

よっぽどひどい育てられ方をしたんだな
そんなに重篤な精神分裂を来すとは

367 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/05/13(日) 17:52:12.34 ]
>>364

> This function or variable may be unsafe. Consider using fopen_s instead.
この関数、または変数は安全ではありません。 かわりに fopen_s を使うことを検討して下さい。

> To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
非推奨を無効にするには _CRT_SECURE_NO_WARNINGS を使って下さい。 詳細はオンラインヘルプを参照のこと。

368 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 18:24:22.48 ]
>>364
そもそもスレ違いだ。

369 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 19:07:37.73 ]
c言語ってスレ違いなの?

370 名前:344 mailto:sage [2012/05/13(日) 19:17:44.18 ]
MS独自拡張はスレ違いじゃね?



371 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 19:23:20.02 ]
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

372 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 19:24:34.61 ]
その切り分けが可能な人はここに聞きに来ないよ。

373 名前:デフォルトの名無しさん [2012/05/13(日) 19:46:19.68 ]
>>372
んだ

374 名前:デフォルトの名無しさん mailto:sage [2012/05/13(日) 23:52:35.63 ]
いや、C++がスレ違いだ。

375 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 04:44:35.22 ]
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int t;
system("cls");
for(t=0;t<12;t++){printf("\n");}
for(t=0;t<19;t++){printf(" ");}
printf("中心");
for(t=0;t<12;t++){printf("\n");}
for(t=0;t<40;t++){printf("_");}
return 0;
}
DOS画面の真ん中に「中心」って文字を表示するのに
変数tを複数のforで使いまわして作ってみたんだけど
コンパイルでエラーは出ないものの使い方としてはどうとかあるかな?
検索でダメってのは見かけないけど大丈夫とも見なくて不安がある

376 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 04:55:37.65 ]
問題ないお

377 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:39:56.53 ]
curses

378 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:41:54.72 ]
PDCurses (Public Domain Curses)は
UNIX以外の DOS、Windows、OS/2など向けに作られた curses とほぼ同じ機能を提供するライブラリである

curses - Wikipedia

379 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:44:15.35 ]
>for(t=0;t<19;t++){printf(" ");}
>printf("中心");
for(t=0;t<19;t++){printf(" ");}
printf("%*s", 42, "中心");

380 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:50:41.70 ]
IBM PC やその互換機では、BIOSとMS-DOSシステムコールが画面に文字を出力する手段を提供しており、
ANSI.SYSドライバでANSIエスケープシーケンスを処理できる

ja.wikipedia.org/wiki/テキストユーザインタフェース



381 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 06:58:57.89 ]
Windowsならここらへんを使うんだけど
面倒だから位置とか色とかは考えないほうがいいよ
msdn.microsoft.com/ja-jp/library/cc429123

382 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 07:06:40.45 ]
単にループ変数の使いまわしについてしか聞いてないのに、
そこまでして知ったかぶりたいものかねえ

383 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 07:38:19.66 ]
>>375
構文としては意図した意味になっているし、
賢いコンパイラを使うのであれば、性能上の問題はないと期待できる

だからあとは、書き方としてお行儀がいいのかという問題だが、
「スコープは最大限狭める」という原則に従うなら、こう書くこともできる

for(int t=0;t<12;t++){printf("\n");}
for(int t=0;t<19;t++){printf(" ");}
printf("中心");
for(int t=0;t<12;t++){printf("\n");}
for(int t=0;t<40;t++){printf("_");}

しかし、これはC89ではできない書き方であるし、
ほとんど差がないのも間違いないので、提示のように書いたとしても問題ないと思う

384 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 08:14:46.00 ]
衒学的に考えるなら、桁方向のループ制御変数と行方向のループ制御変数を分けるべきと言う意見もありそうだ。

385 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 09:42:15.15 ]
エスケープシーケンスでカーソル移動は駄目なの?

386 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 09:52:06.33 ]
>>380 「ANSI.SYSドライバでANSIエスケープシーケンス」

387 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 09:56:58.23 ]
CにもRubyにもcursesライブラリがあるよ

388 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 11:38:47.53 ]
マジックナンバーをどうにかしる!

389 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 14:28:45.45 ]
for文の条件式の部分で、例えば
int i,a;

scanf("%d",&a)

for(i=1;i<=a;i++){
}
とかってできないんですか?エラーがでてしまいます。
これができれば指定した数分の掛け算表ができて便利なんですが...

やっぱり一々ソースを書き直したりしないといけませんか?

390 名前:デフォルトの名無しさん [2012/05/14(月) 14:32:07.77 ]
エラーなのはお前の頭だろう。



391 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/05/14(月) 14:33:47.41 ]
>>389 ;がない。

392 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 14:42:47.50 ]
あ、セミコロン(´;ω;`)
教えてくれてありがとうございます!

393 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:11:35.82 ]
いえいえ

394 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:43:56.26 ]
>>390みたいに煽るだけのカスはいらね

395 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:53:16.68 ]
お前みたいなただのカスのがもっといらねぇだろwww

396 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 15:55:30.48 ]
質問です。
画像を移動したいんですが、真横や真縦はx,yをそれぞれの値になるまで足して描画を繰り返すのは分かるんですが、
少しずれたところに移動させるのはどういう式になるんでしょうか。
例えば、x0,y0からx200,y0は出来ますが、x0,y0からx200,y45が分かりません。


397 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 16:07:24.69 ]
わからないぷー

398 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 16:10:58.46 ]
0,0と200,45を結ぶ直線の傾きは?
yを1増やすにつき、xをいくつ増やせば良い?
少数が必用なので、少し頭を使うかもしれんが。
プログラムじゃなくて、算数の問題。

399 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 16:12:36.28 ]
>>396
簡単にするには座標を浮動小数点で持って1回に動かしたい量をそれぞれに
足しこんでいけばいい。

400 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:01:08.69 ]
ああ、やっぱり小数点の公約数なんですね…特別な関数があるかと思ってました。
ありがとうございます。



401 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:13:25.28 ]
おまえらってC言語に関しては天才なの?

402 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:16:55.21 ]
今時は小数点に公約数があるのか...

403 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:32:07.36 ]
>>401
天才じゃないと答えられないような質問あったか?

404 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 17:42:43.52 ]
>>400
いえいえ

405 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 18:14:43.31 ]
最近は
A:xxxについて教えて。
B:yyyだよ
A:ありがとうございます
C:いえいえ

という返信をする変人がいるらしい。

406 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 18:19:49.22 ]
>>396
(0, 0)から(200, 45)に滑らかに移動したいと言うこと?
(200, 0)を経由していいなら横と縦に分割できるじゃん。

407 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 19:13:05.98 ]
x+20、y+4,5とかね

408 名前:デフォルトの名無しさん [2012/05/14(月) 19:48:15.34 ]
一様乱数教えてくださいな

409 名前:デフォルトの名無しさん [2012/05/14(月) 20:00:06.95 ]
randam()

410 名前:デフォルトの名無しさん [2012/05/14(月) 20:14:45.18 ]
混合合同法ってなんですか



411 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:15:12.90 ]
>>408
Mersenne Twister: A random number generator
www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html

412 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:49:48.61 ]
#include <stdio.h>

int sum(int,int);

int main (void)
{
int value,Left,Right;

scanf("%d,%d",Left,Right);

value = sum(Left,Right);
printf("%d\n",value);
return 0;
}


int sum(int min,int max)
{
int num;
num = (min + max) * (max - min + 1) / 2;
return num;
}

scanf("%d,%d",Left,Right); この部分にエラーが出ました...
何が悪いのでしょうか?

413 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:57:05.22 ]


414 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 20:58:38.72 ]
あ、&(´;ω;`)
またまた凡ミスしていまいました
どうもです...

415 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 21:01:49.12 ]
いえいえ

416 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 22:38:53.08 ]
いえいえ禁止!

417 名前:デフォルトの名無しさん [2012/05/14(月) 22:58:41.47 ]
C言語で円周率を10桁求めるプログラム作りたいです。
ソースコード教えてください。

このプログラム作るの簡単ですか?初心者です。

418 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:00:10.55 ]
>>417
ググって貼り付けるだけ

419 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:00:47.54 ]
>>417
マクローリン展開 円周率でぐぐる

420 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:04:27.38 ]
printf(”3.141592653”);



421 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:07:50.29 ]
>>417
ぐぐってこぴぺ。マチンの公式、うっふぇ。
ttp://ideone.com/cebSY


422 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:12:42.67 ]
>>420
それだめらしいです。


もう一つ
二次方程式の解を√つきで実数だけ全て求めるプログラムも教えてください。

実行例
a.out
x^2 ? ←出力
1    ←入力
x ?  ←出力
1    ←入力
定数 ? ←出力
-1 ←入力

x^2+x-1の解は ←出力
y=(-1+√5)/2
y=(1+√5)/2


みたいな感じのプログラムです。

期限は円周率とこの二次方程式のプログラムセットで3週間です。
後4日です...徹夜で考えてるけど特に二次方程式のプログラムは
思いつきません...



423 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:16:11.09 ]
>>422
アホかお前
出直してこい
何もわかっちゃいねーーーーーーー
プログラムの前に中学生の数学からやり直せ
ミジンコ

424 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:18:07.10 ]
徹夜ワロタwww

425 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:20:53.07 ]
πの計算は、>>421が終わると、今度は多倍長計算がやってみたくなる
ライブラリ一切使わずに加減乗除だけで自力で組んでみるとなかなか面白いよ

426 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:23:49.34 ]
円周率は、可能なら10桁ってことで、3.14以上、つまり4桁以上を出せれば
とりあえずOKらしいです。(という噂)

二次方程式は、解が無しなら、この解無しみたいな出力もするプログラムです。

後4日。お願いします'--'(手)

427 名前:422 mailto:sage [2012/05/14(月) 23:24:51.29 ]
y=(-1+√5)/2
y=(-1-√5)/2

でしたね。すいません

428 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:37:42.49 ]
>>422
くっそ適当wwwwwwwww
間違いがあったら自分で直してねwwwwwwwww
ttp://ideone.com/z1q8Z

429 名前:デフォルトの名無しさん mailto:sage [2012/05/14(月) 23:39:27.29 ]
>>428
お前も勉強しなおし

430 名前:428 mailto:sage [2012/05/14(月) 23:41:01.12 ]
ソースみりゃわかるとおもうが、例えば√4とか平気で表示すっからなwww
あと、小数(分数)になっても、小数点以下完全無視だからwww

それがいやなら、これをベースに徹夜するのだwww



431 名前:428 mailto:sage [2012/05/14(月) 23:52:28.29 ]
それから重解表示もふつーに√0なwww
まあ、がんばれwww

もしかしたら、プロさんがすばらしい式整形盛りこんだやつ作ってくれるかもね

432 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:13:10.26 ]
>>431
根本的に間違ってるよw

433 名前:428 mailto:sage [2012/05/15(火) 00:18:27.64 ]
>>432
wwwwwwwwwww

くっそソースをくそ修正wwwwwwww

ttp://ideone.com/jBBTX

434 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 00:42:26.71 ]
>>433
どこへ向かってるんだwww

435 名前:428 mailto:sage [2012/05/15(火) 00:44:59.36 ]
>>434
>>428で、>>427の答えを出すにはどう式を立てればいいかちょっと悩んだぞwwwwww

436 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:20:13.92 ]
#include <stdio.h>

void check(int y[])
{
printf("check : %d\n", sizeof(y) / sizeof(y[0]));
}

int main()
{
int x[5];

printf("main : %d\n", sizeof(x) / sizeof(x[0]));
check(x);

return 0;
}

両方とも5が出力されると思っていたのですが
mainは5でcheckが1になります。
check関数のyはmainのxそのものを別名でアクセス出来るものかと思っていたのですが
checkが1になる理由は何なのでしょうか。よろしくお願いします。

437 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:21:16.66 ]
>>436
ポインタだから

438 名前:436 mailto:sage [2012/05/15(火) 01:29:13.51 ]
>>437
なるほど。そうなるとmainの中のxは配列を指しているわけではないという事でしょうか
sizeof(x)ってやって5になるってことはそうなんですよね・・・
今まで配列の名前自体は配列を指してるってイメージだったんでちょっと頭こんがらがってきました
解答ありがとうございます

439 名前:436 mailto:sage [2012/05/15(火) 01:31:09.17 ]
ポインタだと思ってるんだったら1になるのが当たり前って思うべきなんですよね
なんか言ってる事めちゃくちゃでごめんなさい。

440 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 01:47:24.31 ]
>>438
main の中では配列だけど
関数の引数で渡された時点でポインタになる



441 名前:436 mailto:sage [2012/05/15(火) 01:52:10.42 ]
>>440
すいません。ありがとうございました。
勉強し直してきます。

442 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 20:50:20.17 ]
>>438>>441
いえいえ、お礼は結構ですよ

443 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:20:18.65 ]
VisualStudio2010
ver 10.0.40219.1 sp1relを使用しています。
少しポインタを復讐しようと思いまして、入力した文字から最大値と最小値を出力するプログラムを書きました。
ソース(きたなくてすいません)
#include<stdio.h>
void maxmin(int *array,int *max,int *min);
int main(void){
int array[10];
int max,min,i=0;
do{
scanf("%d",&array[i]);i++;
}while(array[i-1]!=-1 && i<10);
maxmin(array,&max,&min);
printf("最大値:%d\n最小値:%d\n",max,min);
}

void maxmin(int *array,int *max,int *min){
*max=0;*min=100;
for(int i=0;*(array+i)!=-1 && i<10;i++){
*max = (*(array+i) > *max) ? *(array+i) : *max;
*min = (*(array+i) < *min) ? *(array+i) : *min;
}
return;
}
これをVisualStudioで実行すると構文エラーが起きてしまいます。ただ、bcc?ではエラーは起きませんでした。
maxmin関数内のiの宣言をforの中ではなく、一番上で宣言するとVisualStudioでもエラーは起きませんでした。
少し良くわからないので、教えてくれる方いたらお願いします。

444 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 21:34:09.11 ]
>>443
ANSI-Cでは変数の宣言は複文の先頭にしかかけません。
これは予想ですけどVC++ではCとしてコンパイル、BCCではC++としてコンパイル
しているのでは?

もう一つ、mainが戻り値を設定していないので、警告が出ます。
コードの中身はチェックしていませんので、悪しからず。

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をまづ如何にかしようとするべきだな

546 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:40:57.46 ]
>>545
やっぱC系はわけがわからんな。危ない橋をわたらされてる感が・・・。
嫌味じゃなくて素朴な疑問なんだけど、不安で夜も眠れないとかならないの?

547 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:49:20.37 ]
argvに書きこみなんてしないのが慣習

自分でゼロ埋めたって、埋める前に読まれたらおしまい
プロセスの保護とかOSの話
言語関係ないだろ

548 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 18:55:48.65 ]
>>547
ふむふむ、argvに関しては納得。

いろいろ見てたら
memset(str,'\0',sizeof(str))
ってのが出てきた。
たしかにゼロ埋めじたいはやるみたいね。

549 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:00:06.56 ]
strcpyってセキュリティホールの源泉みたいね。
機会があったら使わせてもらうわ(笑)。

550 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:09:36.21 ]
(馬鹿は)何使っても一緒だから心配すんな



551 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:10:40.57 ]
argvに入ってるってことはプロセス起動した側も同じものを持っているということ。
受け取り側だけどうこうしても片手落ち。

送り側にも手を入れられるのならコマンドライン引数では渡さない。
受け取り側のプログラム差し替えられたらダダモレでしょ?

552 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:20:07.91 ]
おまえらってC言語どのくらい出来るの?

553 名前:デフォルトの名無しさん [2012/05/18(金) 19:29:29.24 ]
質問お願いします。

入力された金額に対して、最も少ない紙幣と硬貨の数になるように計算せよ。

という課題に取り組んでいるのですが、なかなかうまくいきません。
現状では以下のようにしているのですが何が間違っているのか分かりません。
アドバイスをいただけたら幸いです。

codepad.org/JVbJI7BZ


554 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:40:01.33 ]
javascriptでいう
var d = new Date();
d.getFullYear();
みたいなオブジェクトとメソッドをピリオドで結んだ形で書くのはどうやって書けますか?

555 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 19:41:08.25 ]
>>501
%g がいかなるものか正確無比に把握できているのであれば %g を使用すること、%gの方がわかりやすい結果を出力するという事実に依存はない。
しかし、%g が、あるときは固定小数点表示、あるときは浮動小数点表示に切り替わる、その切り替わりタイミングは正確に記述されているのだろうか?
あるいは正確に記述されているとしてパンピーに把握できる内容だろうか?

凡人の私には
codepad.org/9vnPdoW3
の結果をあらかじめ予想することは不可能。ましてや自分のコード変更がめぐりめぐってどこぞのコードに影響することなど、把握不可能。
したがって、あるときから素性が比較的わかる %f にしておくのが無難という考え方に組することにしている。
この問題、wsprintf() 等で現実に直面する場合もあると思う。

どこかのだれかがなんの理由かしらないが、すべての実数値に 1e7 をプラスすることにしたために、めぐりめぐって泣ごにょごにょごにょ

556 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:41:48.00 ]
>>553
プログラミング以前に、中学・高校あたりの数学からやり直したらどうかな。
あなたは、数学的に物事を考える能力が無いよ。


557 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:43:06.96 ]
>>554
「構造体 ドット演算子」でggる


558 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:44:38.77 ]
>>554
structのフィールドに関数ポインタぶっこめば可能は可能だけど
結局a.foo(&a);とself/this相当を引数で渡さないといけないアホなことになるw

559 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 19:45:35.32 ]
>>517
posix/execv*() 群を使用するとき、「argv を malloc() していいの?malloc() した argv はどうなるの?free() しなくていいの?」とこちらできいたことがある。
答えは、「ほっとけ」。
なぜだろう?

560 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:50:02.01 ]
>>559
えっ

質問者本人だけど、まだ見てるから回答ヨロ。



561 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 19:59:36.84 ]
exec()系は自分自身は存在しなくなるのだからfree()できるわけないじゃん。
malloc()したポインタをexec()する先に引き継げるなら別だけど、普通そんなことしない。
従って、exec()した先のプロセスがお亡くなりになるときにOS側に引き取って貰えばいいよ。

562 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:03:20.63 ]
>>561
一理あるけど、現代的なプログラミング言語しか触ったことのない俺にとっては、
Cの常識ってお行儀悪いなーって思う。
ただ、それだけ。べつに歯向かおうとは思ってない(笑

563 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:07:19.56 ]
>>555
そうか? 実に判り易いと思うが。
6桁で丸めた結果が整数なら小数点を省略する。それだけだ。
まさかとは思うが、製品版のアプリにまで適応する話と思ってないだろうな。
製品版なら、値域を厳密に判断してから出力するからそれこそ適材適所だ。
学習目的で実験的に使うと言う前提だからこそ、必ず小数点以下6桁も0が並ぶ方が不自然だろ。

そうそう、極小値で割った結果をそのままsprintf()で%fを使って出力するプログラムがあったよ。
結果は、スタックを食い潰して落ちる最悪なものだったがね。

564 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:09:22.40 ]
>>562
それはあんたが低レベルの振る舞いに慣れていないからだろ。
システムコールを直接扱おうとしたらその手の問題にはしばしば直面するぞ。

565 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:14:02.96 ]
>>564
それは自覚している。
ハイレベルのことだけやってて困らない。
だから唯一困るのがargvとかIOまわりなんだよね。
そこでどうしてもCと相互作用しないといかんくて。

これから勉強しようと思うんだ。
ヘネシー・パターソンとか読めばいい?

566 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 20:19:06.93 ]
>>563
製品でなくても
>値域を厳密に判断してから出力するからそれこそ適材適所だ
に深く同意します。

567 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:39:05.78 ]
>>556
確かに、私は数学が苦手で数学的に考える能力は乏しいです。
おっしゃる通り、プログラミング以前の問題だと思います。

しかし、学校の授業の関係でやらなければならないので困っております。
また、これからもこの課題の考え方が必要になってくると思うので
この掲示板に書き込みさせてもらいました。

568 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:42:19.30 ]
まずはこの板の宿題スレを探しだすんだ

569 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:43:54.33 ]
枚数はxを割って求める

570 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:45:47.61 ]
>>568
ワロタ
「どこですか?」ってきそうw



571 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 20:49:23.26 ]
>>563
>極小値で割った結果をそのままsprintf()で%fを使って出力するプログラムがあったよ。
%f といえども大きいほうには無限にひろがるから‥‥

572 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 20:57:46.86 ]
無限に広がるわけないだろ。

573 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:01:43.21 ]
事前に値をチェックすることなしに、バッファオーバフローを避けられないのが%fの宿命。

574 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:05:16.20 ]
いまさらだけど、なんだ、
strcpy(argv[1],argv[3])
って普通にヤバイじゃんw
argv[1]=argv[3]
でargv[3]を消さずに放置するのが正解だな。

このスレ的にはargvをいじるなボケ、という感じだろうが、許してくれぃ。

575 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:05:52.40 ]
>>567
ttp://codepad.org/aIaYJhvH


576 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:07:19.70 ]
演算を細切れにして都度OF見ればいいだけの話し

577 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:08:06.12 ]
>>568
宿題スレに丸投げしたら答えだけ分かりそうで、意味は理解できない
かなと思ったのでこちらに書きましたが、556さんの言う通り数学的
思考力がないと意味がない気がしてきました・・・。

>>569
ありがとうございます。割り算を使ってこれから試行錯誤してみます。


578 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:09:40.37 ]
しかし、つくづく2000円札って影薄いな。

579 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:28:30.62 ]
>>578
誤爆かと思ったら553からかw

580 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:43:54.34 ]
ゲームボーイアドバンスのゲームをC言語で作りたいと思うのですが

一般のC言語入門の本を読んでも全くわかりません。

何を学べばいいですか。





581 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:46:15.52 ]
gbspec.txt


582 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 21:58:35.09 ]
僕らのゲームボーイとかいう本が出てるからそれ買え
組み込み系の良い教材になるよ

583 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:16:22.63 ]
>>582
その本は持ってますが、入門書とその本とのギャップが大きすぎてサッパリ。

その間のギャップを埋めるにはどうしたらいいでしょうか。

584 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 22:33:17.86 ]
割り込みとかレジスタを叩くあたりは組み込み系の入門書を読まないと分からないかもしれないな
リンカとかローダあたりの知識もあったほうがいいなそれはエキスパートCプログラミングあたりに書いてあった気がする
グラフィック処理はインデックスカラー形式だからそれはファミコンのプログラミングとか調べたら分かるかもしれない
あとはネット上でサンプルコードを漁ったり試行錯誤するといいんじゃね

585 名前:デフォルトの名無しさん [2012/05/18(金) 23:23:46.91 ]
思うんだが、ネットってプログラミングの知識ですら書籍に適わないよな。
ネットは浅く広過ぎ。


586 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:26:07.87 ]
ソレは >>585 自身が語録不足だからだと思うよ

587 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:27:10.64 ]
ひょっとして語彙のことか?

588 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:27:36.54 ]
語彙


589 名前:デフォルトの名無しさん [2012/05/18(金) 23:32:07.93 ]
>>586
体系的に教えているサイトは浅い。

深い事載せてるサイトは、単にユーザーが気になって
実験してみました的な事。

定説的に深い事言ってるサイトって無い。

590 名前:デフォルトの名無しさん [2012/05/18(金) 23:35:28.31 ]
定説的ってなんだ。



591 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:40:54.52 ]
詳しい事ほどヒットしないからな
だいたいネットに情報載せたら本売れなくなるじゃん。
専門的な事や創造的な事はネットに書くわけ無い。

592 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:41:09.11 ]
>>587-588 は586の指摘に痛みを感じた者供


593 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:41:41.00 ]
質問がないなら帰ってくれないか

594 名前:デフォルトの名無しさん mailto:sage [2012/05/18(金) 23:44:00.07 ]
語録ww

595 名前:デフォルトの名無しさん [2012/05/18(金) 23:49:57.57 ]
アホスwww

596 名前: ◆QZaw55cn4c mailto:sage [2012/05/18(金) 23:59:39.36 ]
末尾再帰について教えてください。
宿題スレにて、toro.2ch.net/test/read.cgi/tech/1335517816/497 が末尾再帰でないとの指摘があり、いろいろと考えていました。
思うに、toro.2ch.net/test/read.cgi/tech/1335517816/505 を理由に末尾再帰でない、ということになれば、よくある階乗の再帰関数

int f(int n) {
return (n == 0) ? 1 : n * f(n - 1);
}

ですら末尾再帰ではないことになるのでしょうか?
末尾再帰であるために

int f(int n, int i, int p) {
return (n == i) ? p : f(n, i + 1, p * (i + 1));
}
codepad.org/OSvQa0ni
と書かねばならないのでしょうか?
主観的な表現になりますが、なんだかつまらなくなってしまいました。

コメントをいただけるとうれしいです。よろしくお願いいたします。

597 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 00:30:30.91 ]
>>584
組み込み系の専門書読んだけど10pくらいで挫折した。
もっと分かりやすく書いて欲しいな。

598 名前:デフォルトの名無しさん [2012/05/19(土) 00:35:48.28 ]
>>596
アホスwww

599 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 00:44:08.10 ]
なんで末尾再帰を区別するのか、理由すら考えたことがないんだろうね。

600 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 03:22:05.75 ]
>>596
>int f(int n) {
>return (n == 0) ? 1 : n * f(n - 1);
>}
>
>ですら末尾再帰ではないことになるのでしょうか?

末尾再帰では有りません。
「ループに変換可能か」と言うより
「ジャンプ最適化可能か」です。

なお、c言語では末尾再帰最適化を行わない処理系も多いので、
処理系依存度を下げたいなら、末尾再帰に拘る必要は有りません。

>末尾再帰であるために
>
>int f(int n, int i, int p) {
>return (n == i) ? p : f(n, i + 1, p * (i + 1));
>}
>codepad.org/OSvQa0ni
>と書かねばならないのでしょうか?

Yes。
ただしgccなどの一部の処理系では上記部分を関数内関数で書けるので、
呼び出し側からはint f(int n)で済ませることが出来ます。



601 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 06:39:29.09 ]
>>600
>「ループに変換可能か」と言うより「ジャンプ最適化可能か」です。
call A
end

A:
...
ret
...
call A
ret

ならば

A:
...
ret
....
jmp A

になるということですか。昔、せこいことに call A / A: ... call B ret / B: ..... call C ret / C: ... ret を call A / A .. jmpB / B: ... jmp C / C: ... ret にしていた、というやつですね。
もう少し考えて見ます。コメントありがとうございました。

602 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 08:28:12.59 ]
a

603 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 08:55:21.96 ]
>>556
>>553は日本語もやり直した方が良いひとだろ。
質問をお願いしますとか…


604 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 08:56:32.25 ]
>>580
まずは任天堂と開発者ライセンスの契約を結ぶところからかなー

605 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:25:04.60 ]
>>601
Schemeの継続の考え方が参考になると思う。

606 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:39:58.58 ]
>>584
ありがとうございました。
ただそういった知識を身に付けても、例えばDSだったりPSPだったり
対象が変わるとまたARM9とかMIPSとか調べないといけないですよね?

C言語というのは文法とか構文みたいなのは同じでもそういう
ハードウェアの知識が必要なのですか?


607 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 09:40:51.15 ]
>>605
コメントありがとうございます。

608 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:47:21.70 ]
ハードウェアの知識がまったく必要とされない分野で
Cを使うのはあまりにも生産効率が悪すぎる。

609 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:52:41.35 ]
>>606
C言語自体は本当に言語としての土台の部分しか規定してない
その土台の上に何が乗っかるかで学ぶべきことが変わるなんてザラよ
とは言え、その土台がしっかり出来てりゃ乗っかるモノが変わっても対応しやすいけどね

610 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 09:53:53.23 ]
外人が作った開発環境があったような気がするけど
それの使い方調べればハードのこと考えなくても作れた気がするけど



611 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:33:52.66 ]
#include<stdio.h>
int main(void)
{
char h1[4][3] = {"あ","い","あ","い"};
char h2[2][3] = {"い","あ"};
int a=2,b=1;
if(h1[a]==h2[b]){
printf("成功! [%s],[%s]",h1[a],h2[b]);}
else{
printf("失敗! [%s],[%s]",h1[a],h2[b]);}
return 0;
}
配列使って文字の比較やりたいんだけど
エラーはでないものの「あ」「あ」の組み合わせでも
「失敗!」になってしまって困ってます。
配列使っての文字の比較ってどうすればいいでしょうか?

612 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 10:37:45.53 ]
>>611
==で比較したらだめだよ
アドレスの比較になってしまう
strcmp()で比較しないと

613 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 11:06:54.44 ]
>>610
結局それはC言語自体ではないと思う

614 名前:611 mailto:sage [2012/05/19(土) 11:37:32.28 ]
>>612
ありがとうございます、解決できました

615 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:13:44.15 ]
いえいえ

616 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:19:45.04 ]
>615
気に入らん。もう一度やれ!

617 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:22:01.62 ]
そりゃそうだろC言語単体じゃ役に立たないコンソールプログラムくらいしか作れないよ


618 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:36:07.42 ]
>>617
ばかじゃねーの

619 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 12:43:29.52 ]
>>617
お前が作るコンソールプログラムこそが役に立たないんだろw


620 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 14:35:45.26 ]
質問です
#include <stdio.h>
#include <stdlib.h>

int main(void) {
char *ip;
ip = getenv("REMOTE_ADDR");
printf("%s\n", ip);
return 0;
}
において(null)しか返ってこないのですが環境によって動作しない事もあるのですか?




621 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:15:10.25 ]
>617
ハードの詳細な仕様書があってもライブラリが無いから使えないって言いそうなやつだな。

622 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:22:57.83 ]
>620

>REMOTE_ADDR
>REMOTE_ADDRは、アクセス元のIPアドレスを表します。
>つまりあなたのホームページやCGIに対してアクセスした人がつかんでいるIPアドレスです。

httpサーバー経由の実行でもなきゃNULLが普通じゃね?

623 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:41:40.09 ]
>>622
単に”IPを取得する”ものだと勝手な先入観で思い込んでしまっていました
ありがとうございます
ちなみにC言語において実行元のIPを取得する関数は存在しますか?

624 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:49:55.99 ]
>実行元のIP
これが全くもって意味不明なんだが

625 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:50:05.73 ]
環境依存

626 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:00:42.47 ]
>>624
表現に悩みましたが、実行者のIPで伝わるのかな

627 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:06:09.03 ]
C言語うんぬんよりも先に
HTTPとかネット関係とか
そっちの方をやった方が良いだろコイツ
今のままじゃあ話なんて通じねーよ
ムダだよ


628 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:19:26.86 ]
cgi作りたいならC言語よりPHPとかPerlとかのスクリプト言語の方勉強したほうがいいよ。

629 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:47:38.18 ]
>620
IPアドレス持つにはTCP/IPプロトコルが必要。
TCP/IPプロトコルの無いハードなんていくらでもある。

630 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 16:58:18.34 ]
すいませんLinuxとC言語の質問はどこでしたらいいですか?



631 名前:630 mailto:sage [2012/05/19(土) 17:01:14.05 ]
Linuxでいいエディタがないので自分で作りたくて質問したいんです

632 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:06:16.64 ]
vimでもemacsでもgeditでもだめってこと?
普段>>630はどんなエディタ使ってるんだろ

633 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:07:43.29 ]
>>629
調べて意味を理解できました、ありがとうございます
指摘通りネットワークの知識が薄いみたいなんで勉強してきます

634 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 17:34:34.37 ]
>>608
つコンパイラ

635 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 17:47:23.61 ]
今は皆さんC初心者に優しいよね。Cマが増えても誰も困らないからかな。

636 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:21:40.19 ]
>>635
そうですか?あいもかわらず冷たいと思っています、C がわからなければ人じゃない、っていう雰囲気はいつまでも払拭されない、という気が。

637 名前:630 mailto:sage [2012/05/19(土) 21:49:40.05 ]
>>632
秀丸
vimとemacsは難しすぎてエディタの使い方を覚えないといけないから時間がかかります
geditは機能が足りないので不満です
そこで秀丸にある機能で自分で使いたいものを自分で実装して使いたいんです

638 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:54:48.55 ]
その理想のエディタを開発するためにもまずはIDE使いこなせ

639 名前:デフォルトの名無しさん [2012/05/19(土) 21:57:02.97 ]
現在公立の中学生(1年)なんですが、C言語を始めたいと思っています。
中学の時点でC言語の理解は難しいでしょうか?

日本で小学校高学年や中学生でC言語というかプログラミングやってる
人は少ないですか?周りにいないので。


640 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:59:13.83 ]
BASICみたいな使い方なら出来るだろう
でもポインタとか構造体を使うにはちょっと難しいかもな
高校生になればだいたいできると思う

しかし小学生でプログラム組んでた奴もいるから結局は個人差か



641 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:59:16.77 ]
厨房がC言語やるなんて早いんだよ。
部活やったり友達と遊んだりする事に時間を使え

642 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:03:45.81 ]
>>639
CDブートのknoppixをUSBから起動させれば
あなたもたちまちCマスターどころかイッパシのハカーになれます
はっきりいって年齢は関係ありません
適性だけです


643 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:11:26.13 ]
プログラミングなんかやったって何にもならないただの徒労で終わるよ
学生なら部活やら人付き合いやら勉強やら資格の勉強やらに費やすべき
プログラミングなんかやったって受験で有利になるわけでも良い会社に入れるわけでも
出世競争で有利になるわけでも金が儲かるわけでもなんでもない
プログラミングに時間を費やすというのは完全に人生をドブに捨てるのと同じで愚かな行為
受験勉強を頑張りなさい

644 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:12:18.29 ]
>>643
うざいです><

645 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:24:33.13 ]
>>637
だったら自分で新しいエディタ書くよりpythonでgeditプラグイン書いたほうが速いと思うが

646 名前: ◆QZaw55cn4c mailto:sage [2012/05/19(土) 22:42:53.30 ]
>>639
先輩たちがここにいるよ。
当時の話をきくと面白いかもしれないよ。
ikura.2ch.net/test/read.cgi/i4004/1334408350/

647 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:47:19.05 ]
>>646
オッサンは嫌

648 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:49:07.44 ]
タイトルの俺って誰ですか?

649 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:50:01.57 ]
Cの最大の難関はこんな役立たず言語覚えてどうするんだという疑問が払拭できず
モチベーション維持が極めて難しいということだな。
そこさえ乗り越えられれば何歳だろうと習得は簡単。

650 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 22:51:50.76 ]
言語を作りたいのですがそういう場合でもC言語を覚えるのはやめたほうがいいですか?



651 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:08:14.06 ]
初歩的なことで申し訳ないんですが、
1〜40までの整数があって
1〜20を白、21〜40を赤
みたいにしたいとき、
1〜20 の ”〜”の部分は
どう表現すればいいんですか?

652 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:08:43.52 ]
>>649
ちがうんじゃねーの?
Cで出来ることがほとんどやりつくされてるからじゃね
デガラシいじくりまわしても楽しくないじゃん


653 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:25:18.64 ]
・覚えるの 早めた方がいいですか?
・覚えるのは 止めた方がいいですか?
どっちなのかと。

654 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:27:22.88 ]
>>651
あなたの質問は、if文の条件の書き方を知りたいと言うことですか?
でとすれば、if (整数 >= 1 && 整数 <= 20) 白();のようにすればよろしいかと。

655 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:27:59.05 ]
>>651
>1〜20 の ”〜”の部分は
>どう表現すればいいんですか?
「波線」。

656 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 23:41:55.43 ]
>>654
ありがとうございます!
>>655
勉強になりましたwww

657 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:25:16.23 ]
いえいえ

658 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:49:25.18 ]
>>657
いやお前に言ってないからwww

659 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 00:55:35.76 ]
俺に言ってんだよ。

660 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 01:10:07.47 ]
>>659
誰にも言ってないんですけど



661 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 03:56:57.85 ]

>657 が壁に向かって言ってるんだろ。

662 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 03:59:53.21 ]
Yeah Yeah

663 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 07:15:58.09 ]
iPadで授業の動画を見ながらプログラミング学習
ソフトバンクがシリーズ展開

iPad 向けアプリ「赤松先生のIT講座シリーズ」の第1弾としてリリースされたのは、『速解C 60分でわかる「構造体」「ポインタ」』(1500円、発売記念価格800円)。

markezine.jp/article/detail/11865
static.shoeisha.jp/mz/static/images/article/11865/11865.jpg

664 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 08:19:55.81 ]
イェーイェー

665 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 08:23:16.86 ]
ドットインストールで充分だろ。

666 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 10:34:29.62 ]
ドットインストールは中身薄くてダメだ
そこで動画公開してる低レベル野郎のステマか?

667 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 10:51:41.38 ]
どーせ動画で見に付くわけないんだ、本人が判った気になるだけのために金を出すのは馬鹿馬鹿しいってこと。
それこそドットインストールがどうこうって、ソフトバンクのステマかっての。

668 名前:デフォルトの名無しさん [2012/05/20(日) 12:00:05.03 ]
>>649
役立つ言語がもしあると今度は立場がなくなるやつが何か吠えてるなw

669 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 12:10:49.11 ]
C言語が身に付くレベルの理解力があれば他の言語の取得も容易っていう目安になる。

670 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 19:20:02.56 ]
なるね。



671 名前: ◆QZaw55cn4c mailto:sage [2012/05/20(日) 20:06:22.08 ]
なるかなあ?

672 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 20:15:42.94 ]
とりあえずここが人が多そうだからここにきたんですが
総合的な質問スレってありませんか?

673 名前: ◆QZaw55cn4c mailto:sage [2012/05/20(日) 20:20:54.34 ]
toro.2ch.net/test/read.cgi/tech/1316013463/

674 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 20:57:23.25 ]
>>672
ここが総合的な質問スレに見えるならそういうことにしておけ


675 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:53:35.00 ]
double nanashi(double MAX,double MIN) //MINからMAXまでの実数乱数を返す
{return ((double)(rand()%(int)((MAX-MIN+1)*POINT))+MIN)/POINT;}

実数の乱数を返す関数を作りましたが思ったような動作を行いません
記述を間違えているのでしょうか
POINTは10^4くらいです

676 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 21:56:40.57 ]
>>675
(MAX-MIN)*rand()/RAND_MAX+MIN;

677 名前:デフォルトの名無しさん mailto:sage [2012/05/20(日) 22:01:51.28 ]
>>676
0から1までの乱数を生成して、大きさ(MAX-MIN)をかけMINの分を底上げするんですね
助かりましたありがとうございます

678 名前:678 [2012/05/21(月) 01:47:42.52 BE:950591227-2BP(0)]
rot13暗号を解読するプログラムでEOFを使わないプログラムが分かりません。

679 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 02:11:52.61 ]
>>678
ideone.com/6G1HG

680 名前:678 [2012/05/21(月) 02:20:17.16 BE:678993825-2BP(0)]
>>679
getchar使わない文でお願いします。すいません



681 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 02:21:49.50 ]
>>680
fgetc(), fputc() は使っていいかい?

682 名前:678 [2012/05/21(月) 02:24:58.37 BE:678993825-2BP(0)]
>>681
すいませんが、習い始めで
getcharを習い出したばっかりで、
ちなみに自分で作った文だとデバッグエラーが出るんです。
#include<stdio.h>


int main(void)
{
int rot;

while(rot >= 'a'&&rot <= 'z')
{

if('a'<=rot && rot<='m')
rot = rot+13;
else
if('n'<= rot && rot<='z')
rot = rot-13;
}

return 0;
}
こんな感じです。

683 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 02:33:31.68 ]
>>682
>自分で作った文だとデバッグエラーが出るんです。
「デバッグエラー」、というのは具体的にどんな状態になるのかな?なにかメッセージがでるとか。

684 名前:678 [2012/05/21(月) 02:41:48.37 BE:814792526-2BP(0)]
Debug Error!

Program: C:\Users\名前
\Desktop\ROT13\Debug\ROT13\.exe
Module: C:\Users\名前
\Desktop\ROT13\Debug\ROT13.exe
File:

Run-Time Check Failure #3-The cariable'rot'is being used
without being initialized.

(Press Retry tu debug the application)

っていう表示のウィンドウが出ます。。。。

685 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:48:58.17 ]
int rot=0;

686 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:49:16.73 ]
>>684
hello world の表示は出来た?

687 名前:678 [2012/05/21(月) 02:53:16.56 BE:407396423-2BP(0)]
>>685
int rot = 0; だと、終わってしまいます。

>>686
出来ました。
なんでもかんでも出来ないわけではないそうです。

688 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:56:07.55 ]
>>687
そりゃそうだろ
>>682はrotの入出力やってないもん
でもエラー出なくなったろ?
>>684のエラーはそういう意味
どこかで入出力文があれば初期化も不要なはずなんだが

689 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:01:32.04 ]
>>684
それは rot に値がはいっていないよ、ってことですね。
たしかに、>>682 では rot の値がきまっていない。(rot をどう処理するかはかいてあっても。)

で rot に値をいれればいいのですが、どんな感じにしますか?getchar() で標準入力から掘り込み、printf() で表示するとかが適当だとおもいますけど。
なにか希望があれば教えてください。

あとプログラムを作成している環境(コンパイラの種類とか)もわかるのなら教えてください。もしかして web でやっているのでしょうか?

690 名前:678 [2012/05/21(月) 03:03:44.46 BE:4888750289-2BP(0)]
>>688
#include<stdio.h>


int main(void)
{
int rot;

while(rot >= 'a'&&rot <= 'z')
{
printf("%c\n",rot);

if('a'<=rot && rot<='m')
rot = rot+13;
else
if('n'<= rot && rot<='z')
rot = rot-13;
}

return 0;
}

これでprintfを足したんですが、同じエラー文?が出ました。



691 名前:678 [2012/05/21(月) 03:09:58.26 BE:3327066277-2BP(0)]
>>689
希望はないんですが、あまり複雑なモノはまだ習ってないので遠慮したいです。

692 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:13:10.20 ]
なんちゅーか
プログラム云々の前にチラシの裏にでも理解出来たと思う部分を書き出してみて

自分の頭ん中をデバッグするところから始めるべき

693 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:15:07.11 ]
>>689
あと任せた
寝る

694 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:17:06.88 ]
>>690
最後に一つだけ
「入出力文」と書いたのは悪かった

「入力文」の方が正しいな
エラーの理由はrotを初期化しないでいきなり

while(rot >= 'a'&&rot <= 'z')

なんてやってるから undefined、つまり「鼻から悪魔が出てきても知りませんよ」という事

695 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:20:25.52 ]
>>691
ideone.com/0H11v
一文字しかできませんが、手始めにこんなのはどうですか?
/* 1 */ と /* 3 */ で入力、/* 2 */ で出力しています。

あと rot13 の処理が「実は」正しくないですね。

696 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:21:00.90 ]
>>693
日食までがんばりませんか?

697 名前:678 [2012/05/21(月) 03:32:42.36 BE:3259166786-2BP(0)]
#include<stdio.h>


int main(void)
{
int rot,loop;

loop = 1;
scanf("%c\n",&rot);

while(loop <=100)
{
if('a'<=rot && rot<='m')
rot = rot+13;
else
if('n'<= rot && rot<='z')
rot = rot-13;

scanf("%c\n",&rot);
}

return 0;
}
ここまでいったんですが、+13とか-13がされません。。。

698 名前:678 [2012/05/21(月) 03:52:08.79 BE:4277656297-2BP(0)]
一応友達のアドバイスもあって、
プログラムが出来ました。
ありがとうございました。
#include<stdio.h>


int main(void)
{
int rot,loop;

loop = 1;


while(loop <=100)
{
scanf("%c",&rot);
if('a'<=rot && rot<='m')
rot = rot+13;
printf("%c",rot+13);



if('n'<= rot && rot<='z')
rot = rot-13;
printf("%c",rot-13);
}

return 0;
}

699 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:57:26.90 ]
>>697
手が加わったのはいい感じです。
rot13 の処理に問題はありますが、とりあえず >>697 に沿って動くように訂正すると
codepad.org/ikiHqIJW

scanf("%c\n", &rot)
の rot は
char rot;
でないとうまくうごきません。
int rot;
だと'c' を入力したつもりでも、実は場合によっては rot が 'c' にならないことがあるのです。

700 名前: ◆QZaw55cn4c mailto:sage [2012/05/21(月) 03:59:53.20 ]
>>698
ありま?
でも、それ、うごいているようにみえるのは偶然ですよ、たぶん。
int rot;
じゃなくて
char rot;
じゃないと‥‥‥



701 名前:678 [2012/05/21(月) 04:06:51.43 BE:1357986454-2BP(0)]
>>700
そうなんす。
変な文字まで現れて・・・
charでやってみます。

702 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 04:15:12.14 ]
>>701
>変な文字まで現れて・・・
X printf("%c",rot+13);
O printf("%c",rot);

X scanf("%c",&rot);
O scanf(" %c",&rot);


703 名前:678 [2012/05/21(月) 04:32:59.41 BE:1222188629-2BP(0)]
>>702
変な文字は出なくなりました。
あとは+と‐がされなくて
'a'を入力すると'aT'と表示されたり・・・

704 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 04:54:51.59 ]
>>703
今のソースをそのままideoneに貼れ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<155KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef