1 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:38:08 ] 言語の入門者向け解説スレです。 教えて欲しいのではなく宿題を丸投げしたいならこちらへ。 C/C++の宿題を片付けます 108代目 pc11.2ch.net/test/read.cgi/tech/1211980711/ ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・開発環境や動作環境も晒すと答えが早いかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/ 過去スレ 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
5 名前:4 [2008/06/13(金) 23:47:50 ] 1,文字列に母音(a,i,u,e,o)が何個含まれているかをint型数値として返すような関数VowelNumber()を作成せよ。 また,この関数を使用して,キーボードから入力された文字列に 母音が何個含まれているかを表示するプログラムを作成せよ。 2, (1) ある自然数に対して,その自然数の約数は何個かを関数値として返すような 関数FactorQuantity()を作成せよ。 例として20の場合は{1,2,4,5,10,20}なので個数は6となる。 (2) ある自然数Nの約数の個数が2個だけ(1とNだけ)の場合,Nは素数である。 そこで(1)の関数FactorQuantity()を利用してNが素数がどうかを判定し, Nが素数なら1を返し,素数でなければ0を返す関数Prime()を作成せよ。 (3) (2)の関数Prime()を用いて次のプログラムを作成せよ。 2つの自然数a,bを入力させ(a<bとする),a以上b以下の素数を全て表示するプログラムを作成せよ。 ※ソースファイルは1つのファイルにまとめよ。 という2問です。 OSはリナックスです。 いままで習ったのは、printf、scanf、ループ文、if文、配列などです。まだポインタは習っていません。 解説も少し加えてくれるとありがたいです。 よろしくお願いします。
6 名前:5 [2008/06/13(金) 23:48:41 ] >>5 すいません5でした。
7 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:49:32 ] >>5 >>1
8 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:16:08 ] >>前スレ994 float関数群が追加されたのはC95な。
9 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:16:55 ] C95なんてあったのか。
10 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:21:24 ] 質問なのですが 数値演算ライブラリと数値計算ライブラリは同一のものなのでしょうか? 数値演算ライブラリと検索しても詳しく出てこなくて よろしくお願いします
11 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:25:19 ] 日本語がわかるならそんくらい分かるだろ\・・
12 名前:5 [2008/06/14(土) 00:32:18 ] >>7 すいません こちらへはURLをさしてたんですね…
13 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:33:04 ] JavaScript なら俺に聞け、な?
14 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:39:45 ] 日本語能力に問題がありすぎる・・・
15 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:44:06 ] 数値演算ライブラリが何か知りたくて検索してみたのですが詳しく書いてあるサイトが無く 数値演算ライブラリと数値計算ライブラリが関係があるような記述があったので… 数値演算ライブラリとは何のことなのでしょうか よろしくお願いします
16 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:54:44 ] >>15 もし君がC言語の標準ライブラリのことを言っているのなら、それはたぶん数学関係ライブラリ <math.h> のことだ。 そうでないなら、それがどのようなものであるかは、すべてそのライブラリそのものに依存する。 ライブラリのマニュアルを読むこと。
17 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:01:09 ] >>15 標準ライブラリの数値演算関数って事ですか、たぶん1年の初期の問題なんでこれなんだと思います ありがとうございました。
18 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:41:32 ] いきなり難解なやりとりだね
19 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:09:31 ] CPUの命令セットにない高機能な数学用関数などを 実現するライブラリのコードとか入ってるんだよね 最近のCPUは浮動小数点用の高機能命令が増えた から数値演算ライブラリそのものが小さくなってるけど、 昔のCPUは浮動小数点演算そのものの機能がなくて エミュレータが入っていた 今も組み込み用CPUだと浮動小数点演算ができない ものはたくさんある
20 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:34:26 ] 浮動小数点のビット列ってどういう法則になってるの?
21 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:40:14 ] >>20 基本的にはIEEE754とIBMエクセス64形式があるけど ちょっと長いけど下のリンクを印刷でもしてじっくり読んでくれ 必ず役に立つ docs.sun.com/source/806-4847/ncg_goldberg.html
22 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:45:13 ] 単にIEEE754でぐぐってもよい 山ほど出てくる
23 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 02:53:11 ] >>21 なんだか大変そうだけど俺頑張るよ父ちゃん!
24 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:30:42 ] 初歩的な事で申し訳ないのですが 例えばif文でint形変数iが1〜9までの範囲ならtureだとする時はどうすればいいのでしょう。 if(i == 1,2,3,4,5,6,7,8,9)とやってみたところ、なぜか10以上の数でもtureになってしまいました。
25 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:32:26 ] if(1<=i && i<=9)
26 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:34:45 ] >>24 if()の中で,で区切って複数入れると一番右のものを判定する。 つまり、 if(i == 1,2,3,4,5,6,7,8,9) は if(9) と同じになり、9は真だから常にtrueになる。
27 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:35:44 ] カンマ演算子で左から右に読んでって、最後に0以外である9が評価されて必ずtrueになってる
28 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:36:20 ] >>25-26 おおっ!なるほど。 言われてみれば、そのとおりです。 ありがとうございました。
29 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 04:37:01 ] >>27 trueのスペルも間違えてましたorz みなさん本当に感謝です
30 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:16:39 ] 書き込みが無いな
31 名前:デフォルトの名無しさん [2008/06/14(土) 20:44:37 ] 誰かB木のソースもってません? 実行時間比較したいんでお願いします
32 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:57:40 ] >>31 C言語によるアルゴリズム事典(奥村晴彦)の付録のでは駄目なの? 手数料だけでフロッピーディスクで入手できるけど...
33 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:03:02 ] >>31 STLじゃだめか?
34 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:33:40 ] STL で使ってんのは赤黒木じゃなかったっけ?
35 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:40:41 ] 「B木」って「ビーき」なのかな。「〜木」はたいてい連濁させていたんだけど。
36 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:42:39 ] びーぼく
37 名前:デフォルトの名無しさん [2008/06/14(土) 21:49:31 ] プログラミング言語CのことをC言語って言うことについてどう思いますか? 英語圏では単にCと呼ばれてるみたいなのですが。 話をする場合にはCと言っても問題ないと思うのですが。 JavaやC++の語尾に言語ってつけたりしませんよね? Cだと一文字なので検索がしづらいということがありますが。
38 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:00:58 ] だってCってsexの意味もあるじゃん
39 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:01:41 ] ツェーとか言ってみる
40 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:07:41 ] 参考書 「はじめてのC」
41 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:07:41 ] wikipediaは、最初「Java言語」だったけどそれじゃ変だろってことで「Java」に変更。 「C言語」も同様の提案があったけど、アホな人が頑張って「C言語」のまま。
42 名前:デフォルトの名無しさん [2008/06/14(土) 22:08:08 ] >>38 確かにそうですが、ある単語が複数の意味を持っているということはよくあることなので。 それに中学生ではないのでCと聞いてセックスって思いませんよ普通。 文脈からプログラミング言語なのかセックスなのか分かると思いますが。 # 「はじめてのC」という書籍があります。
43 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:10:40 ] 「はじめてのキス」という魚の本もあった。まさに釣られた。
44 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:10:54 ] 母なる大地 Cなる言語 言語C 観念ι 勇者ライディーン 「エスペラント語」みたいなもんでしょ。呼び名としてはわかりやすいからいいんじゃないの。 >英語圏では単にCと呼ばれてるみたいなのですが。 むしろ英語圏での「the C language」「the C programming language」を直訳したんじゃないのw
45 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:12:26 ] >>41 それは正式名称は何かっていう議論だよね。あれはアホじゃないだろうかと思ったけど、 まあ世の中そういうものだと思う
46 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:14:35 ] K&Rの演習をやってるんだけど、難しいです これ一通り解けなきゃ何かを作るときとかまずいの?
47 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:19:56 ] >>46 できあがるものはろくなもんじゃないだろうな 基礎は大事
48 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:21:24 ] >>46 全然まずくない。むしろ(ry
49 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:22:30 ] >>47 >>48 どっちだ・・・
50 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:26:11 ] C調言語に御用心
51 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:47:11 ] >>46 まずいって、何がまずいの? C言語理解してなくても生きていけるし、 K&Rの演習が分からなくてもプログラムは書けるよ?
52 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:51:29 ] 解かなくても別に問題はないけど 解こうとして解けないのは大問題だろ
53 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:00:10 ] >>46 ドラクエで言うと レベル1で「がいこつ」と戦うと「まったく勝てない」んです。 けど、ある程度レベルが上がると「何とか勝てる」んです。 もっとレベルが上がると「余裕で勝てる」んです。 「がいこつ」に余裕で勝てるようになると今度は 「まほうつかい」に「何とか勝てる」ようになったりするんです。 「がいこつ」に勝てないのに「まほうつかい」に挑んでもしょうがないんです。 がんばってくださいよ。ラダトームの勇者さん。
54 名前:スライム mailto:sage [2008/06/15(日) 01:02:13 ] オレのことは無視かよ
55 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:02:39 ] がいこつ>>>まほうつかい
56 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:04:29 ] PRGなんてレベルを上げれば、ほとんどの敵を余裕で倒せるが 中には特殊な道具が必要、イベント上絶対に倒せない(ことになっている)とか プログラミングに於いては、必要なライブラリやAPIがなきゃ厳しい、無理なんて ものもあるしぃ〜。いくらプログラマのレベルを上げても駄目なこともあるのさぁ〜 ベイビー
57 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:33:04 ] >>54 スライムさんはレベル1で勝てちゃうから、ね。 けれど、あなたがいない世界では決して勇者は育たず、永遠に世界に平和が訪れません。 あなたがいたからこそりゅうおうを倒すことができた、それを忘れる事はないでしょう。 >>55 そうだっけ!?そいつぁ大きなミスだったorz >>56 ようせいのふえがあればゴーレムをすぐ倒せるのに、使い方を知らなかったために ゴーレムと死闘する羽目になった。つまり、APIの知識が乏しいばかりに 車輪の再開発をするプログラマのことを指しているんですよね?
58 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:40:19 ] ん〜まぁそんなもん。いくら経験値を稼いでLv.99にしても、それは 無駄とは言えなくとも、他に手段を選べる、必要なものを取り込む 知識や知恵も必要ということさ。そこで、攻撃重視の戦士や武道家 だけでなく、魔法が使えるキャラ、そして攻略本も。 何か参考になる資料や開発環境を整えておくことも重要さ。
59 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:43:24 ] >>51 K&Rの演習がプログラミングの基礎を抑えてると思ったんです。 ですが、どうやらもう少し簡単なものからやった方が自分にはいいみたいです。 >>52 すみません。未熟者です。 >>53 なるほど。 とりあえずスライム探してきます。 はぐれメタルもいるんですよね、きっと。 >>56 まず、道具の使い方がわかるくらいまでは勉強してみようと思います。
60 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:24:18 ] 有限長の文字列を総当りで生成して、それをコンパイルしていくプログラムを作れば そのうち自分が作りたかったプログラムが自動生成されるんじゃね?
61 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 11:26:51 ] シェークスピア全集だってその方法で書けるよ。
62 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:03:23 ] >>60 天才! あとは、そのプログラムが自分の望む動きをするかどうかを 自動判定するプログラムを作ればいいだけだな。 頑張れ。
63 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:33:31 ] 量子コンピュータがあれば一瞬だぜ。
64 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:34:37 ] >>60 激しく既出。(1726年イギリスの鬼痴骸による) ja.wikipedia.org/wiki/%E3%82%AC%E3%83%AA%E3%83%B4%E3%82%A1%E3%83%BC%E6%97%85%E8%A1%8C%E8%A8%98
65 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:06:48 ] >>60 万能検証プログラムがないとゴミプログラムに埋もれて死ねる
66 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:53:16 ] 検証プログラムも生成されるから大丈夫だよ
67 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:56:03 ] 検証プログラムかどうかを検証するプログラムを作らないとな
68 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:00:38 ] 悪意の無いプログラムかどうかも確認する必要があるな
69 名前:デフォルトの名無しさん [2008/06/15(日) 17:40:20 ] 式の値が0のときtrueになるというものをif文で書くとき if (![変数とか]) と書くべきか if ([変数とか] == 0) と書くべきかどちらですか? あとヌルポインタを判定する場合も流儀があれば教えてください。 if (p == NULL) か if (!p) かということ。
70 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:42:36 ] 好みかな。一貫して使えばどれでもいい。
71 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:00:29 ] >>69 個人的に ◎ if (![変数とか]) <− Ok ○ if ([変数とか] == 0) <− ちょっと冗長な気がする ◎ if (p == NULL) <− Ok △ if (!p) <− NULLは0なのだろうか!?という問題がある。
72 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:01:56 ] >>71 NULLは0ではないが、 0はNULLだから...
73 名前:デフォルトの名無しさん [2008/06/15(日) 18:03:11 ] >>71 お前ド素人だろ?w Cでプログラム書くなよw 周りが迷惑だからなw
74 名前:デフォルトの名無しさん [2008/06/15(日) 18:05:05 ] まぁ全体で一貫してくれ
75 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:22:12 ] >>71 char *p; if(!p) { } はOK. というか C++ では NULL よりは 0 の方が好まれているようです。 >>73 あ な た の 存 在 が 迷 惑 で す。
76 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:23:36 ] 正常な状態を検知するのに否定を使うのはセンスに欠けると思う。
77 名前:71 mailto:sage [2008/06/15(日) 18:27:21 ] ちょっと調べてみた NULLの値が0でなくても、 if(!p) if(p != 0) if(p != NULL) は同じ結果になるようです。 サンクス
78 名前:デフォルトの名無しさん [2008/06/15(日) 18:28:52 ] >>75 ド素人をド素人のままのさばらせておくお前もあいつと同じく迷惑な存在。 www.kouno.jp/home/c_faq/c5.html#3
79 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:31:32 ] >>76 trueが正常とは限らないだろう。例えば、 if (!(p = malloc(n))) { perror("malloc"); return 1; } 正常だった場合の処理; もっとも、この書き方は、コーディング規約で禁止しているところもあると聞くが。 それはともかく、 if (!strcmp(a, b)) ... は頂けないかな。
80 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:38:05 ] >>78 ド素人のスレなので、そこんとこよろしく
81 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:39:12 ] if (!strcmp(a, b)) ... で等しい時に真なんだもんな。 直感に反するわ。
82 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:40:06 ] >>69 んーまあ比較演算子のない条件式を「変」だと思えるピュアな心があればいいんじゃないかな。 ただし、識別子と意味が食い違って紛らわしくなるような場合はいかん。いかんよ。
83 名前:デフォルトの名無しさん [2008/06/15(日) 18:40:47 ] >if(!p) >if(p != 0) >if(p != NULL) >は同じ結果になるようです。 流石ド素人。 なかなか諧謔のセンスがある。 このような頭の悪い人間はプログラミングの世界から手を引いた方がよい。 疑似科学の学者になったほうがよいのではないか?
84 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:42:09 ] >>71 >>77 まあ逝ってきなさい www.kouno.jp/home/c_faq/c5.html
85 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:47:03 ] このおばちゃんは元気でやってるの? この画像がニュースで流れて以来、情報が無いのですが ちゃんと避難できたでしょうか? 2chart.fc2web.com/2chart/obachannnigeteeeeeeeee.html
86 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:58:34 ] >>83 うっかりミスだとわかるだろうに 天下を取ったようなその書き込み もっと大きな気持ちで行こうよ
87 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:04:23 ] いや、人には色々心の傷があるんだよ。触れないでおくも吉
88 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:04:47 ] >>83 のような口調でエラー/警告メッセージを吐くコンパイラがあったとしたら、 俺なら窓から投げ捨てる。
89 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:07:34 ] いやちょっと欲しいかも
90 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:08:34 ] >>82 if (isdigit(c)) ... とかだと比較演算子が現れないけど、これを無理矢理 if (isdigit(c) != 0) ... とか書く訳?
91 名前:デフォルトの名無しさん [2008/06/15(日) 19:11:41 ] >>86 ごめんなさい、今日ちょっとイライラしているんです。 そもそも>>69 を書いたのは私で論争を起こそうと考えたからなんです。 あー、ごめんなさいごめんなさい、CもしたことがないのにCのポインタがナントカとか言って ごめんなさい。人間ド素人は私の方なんです。あぁ、こういうことを平然というから味の素並に 嫌われる元なんですね、ごめんなさいごめんなさい。
92 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:15:29 ] いちいちageる奴にろくなのは居ない
93 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 19:41:48 ] >>90 真偽を返す関数は逆に比較すべきじゃない。
94 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:06:42 ] >>90 それは特殊だなって見ればわかるじゃん
95 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 20:10:25 ] 書いてもいいし書かなくてもいい ただ、自分のやり方として首尾一貫するのが大事
96 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:55:51 ] そそ if(p) と if(p != 0) では同じ実行結果となるけどコンパイラが展開したコードは微妙に違うのをだすよね(オプティマイズの指定にもよるけど) てことは置いといてもっと気楽に行こうよ。 そう書いたらダメとか、それは間違ってる・・とかより >>74 や >> 95 に一票(もしかすると同一人?) >>90 は頭を柔らかくね。何年かして、そのプログラム見たときに何か感じるものがあればいいんじゃない?
97 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:03:36 ] pがポインタ型なら全く同じ意味だから、 まともなコンパイラなら同じコードを生成するよ。
98 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:45:51 ] 逆に、違うコードを吐いたところで9割9分くらいは目くじら立てることないと思う。
99 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:55:03 ] GetRandom関数の意味を教えてください
100 名前:デフォルトの名無しさん [2008/06/15(日) 22:55:37 ] >>99 スレ違い
101 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:02:35 ] >>100 すいませn どこいけばいいですか?
102 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:38:08 ] >>97 あああ、ちがうよ〜。 or reg, reg とするか cmp reg,0 とかの話。 >>98 そりゃ目くじらどころかござにも引っかからないだしょ。
103 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 02:39:16 ] >>78 ん、確かに。失礼しました。
104 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 04:33:31 ] HWND型の比較はどうやってすればいいですか?
105 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 07:28:50 ] ==
106 名前:aaa mailto:sage [2008/06/16(月) 15:30:50 ] scanfで入力させると 例えば int a; printf("数値:"); scanf("%d",&a) 実行結果 数値:●● ってなって入力させると改行がはいるじゃないですか? これを実行結果が 数値:●●センチ のようにできますかね?
107 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:34:43 ] 一般的には無理 環境によっては可能かも知れないが、かなり特殊だと思う
108 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:36:31 ] って言うかC言語の問題じゃなくてOSの入出力インタフェースの問題だな
109 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:41:22 ] 一回画面クリアして書き直すとか
110 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:01:11 ] 例えば3〜入力した数までの数をある法則で計算していく時、 その中から素数を計算から除外したい時はどのようにしたらいいんでしょうか?
111 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:03:13 ] 素数かどうかを判定して素数なら除外する
112 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 17:03:35 ] >>110 素数判定して除外すればいい。 恐らくは、こんな要領。 for (int ic = 3; ic < inputedNumber; ++ic) { if (isPrime(ic)) continue; someFunction(); otherFunction(); }
113 名前:112 mailto:sage [2008/06/16(月) 17:04:10 ] ちっ、細かく書き過ぎて先を越されたぜ
114 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 19:01:41 ] 物理シュミレーションをやりたいんだけど、いい入門書ない?
115 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 19:36:59 ] セグメンテーションエラーをなおす方法としてなにがあります?
116 名前:デフォルトの名無しさん [2008/06/16(月) 19:39:41 ] >>115 デバッガの使い方覚える
117 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 19:57:35 ] どうやってつかうの?
118 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:00:57 ] べんきょうする
119 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:09:40 ] >>114 分野をはっきりさせないと答えられない。
120 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:15:55 ] >>115 どこまで進んで落ちてるのか調べればいいんじゃ? 適当にprintfいれるとか。
121 名前:デフォルトの名無しさん [2008/06/16(月) 20:19:35 ] 以下のようなデータファイルをfgetsとsscanfを使って読み込みたいのですが、 どうすればよいでしょうか? test.datの中身 1 2 3 4 5 6 7 8 9 10 11 ... 1000 char line[10000]; int a[1000]; FILE *fp; fp=fopen("test.dat","r"); fgets(line, sizeof(line), fp); とすると、lineにtest.datの内容が文字列として格納されます。 ここからsscanfを用いて、1〜1000をa[0]〜a[999]に格納したいです。 繰り返し構文を用いて何とかできませんでしょうか?
122 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:04:37 ] ものすごい初歩的な質問ですが宜しくお願いします。 ためしにファイル名a.cとして文字列を表示させるだけのプログラムでコンパイルを試みたところ Error E2209 a.c1: Unable to open include file 'stdio.h' Warning W8065 a.c 4: Call to function'printf'with no prototype in function main と表示されできません。 なにがいけなかったのでしょうか。
123 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:06:42 ] 標準インクルードパスがちゃんと設定できてないとか?
124 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:12:28 ] >>123 レスありがとうございます。 確認してみましたができてました。 ちなみにプログラムは #include <stdio.h> int main(void){ printf("あああああ\n"); return 0; } ふつうのプログラムです。
125 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:14:37 ] とりあえずプログラムに間違いは全く見受けられないから、 どっかの設定に問題があるとしか。
126 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:18:53 ] >>124 できてないからおかしなことになっとるんじゃ
127 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:19:29 ] 確認させてください。 ボーランド社のコンパイラを使っております。ファイルをC:\Borlandに解凍して、 ↓ 環境変数でPathの末尾に;C:\Borland\BCC55\Binを付け加える ↓ 二つのcfgファイルを作る であっていますか?
128 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:30:22 ] >>121 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6933.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6934.c fgetsとsscanf 不使用 > char line[10000]; 無理
129 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:35:32 ] セミコロン有って98?
130 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:36:03 ] >>120 それをやったのですけど そのプログラムではfread,fseekを使ってるプログラムで ひさしぶりにつかったらどうやって組み立ててたのかわからなくて。 宿題のスレにお願いしたのですけど。 ここにはるとマルチになるので
131 名前:130 mailto:sage [2008/06/16(月) 21:42:14 ] これ a-draw.com/uploader/src/up1643.zip.html このファイルをダウンロードしてもらって解凍してもらいたいんです。 prog.cのファイルを実行してセグメンテーションエラーをとってほしいんです けど。
132 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:42:25 ] すでに現段階でマルチだよ
133 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:46:20 ] >>127 cfg ファイルの中身が間違っている可能性が高い
134 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:49:36 ] >>133 レスありがとうございます bcc32.cfg内は -I"c:\Borland\Bcc55\include" -L"c:\Borland\Bcc55\lib" ですよね。 ilink32.cfg内は -L"c:\Borland\Bcc55\lib" ですよね・・・ とくにファイルの移動とかはしていません。デフォルトのままです
135 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:51:49 ] 中身は問題なさそうだな・・・。 んで、そのファイルはどこに置いてる?
136 名前:130 mailto:sage [2008/06/16(月) 21:54:14 ] prog.cですけど きちんと動けばtextフォルダ内にテキストファイルができます
137 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:54:27 ] あいや、cfg ファイルね
138 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:55:16 ] って、質問者からしてちゃうやんけw >>135 は >>134 へのレス。
139 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:56:03 ] ワロタ
140 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:56:32 ] Binに入れています。
141 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:57:47 ] だが断る
142 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:58:11 ] cfg ファイルは非Unicodeのプレーンテキストファイル?
143 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:00:26 ] はい
144 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:01:54 ] C:\Borland\Bcc32\include\stdio.h はある?
145 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:02:12 ] 文字コードはANSIでした。 拡張子もtxtではなくcfgに書き換えています。
146 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:02:32 ] 環境変数かえてから再起動してないってオチでわ?
147 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:03:19 ] コンパイラ走ってるからそのあたりは大丈夫そうに思える。
148 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:04:30 ] 自分のレス番名前に入れろ
149 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:04:32 ] 「登録された拡張子は表示しない」 設定になっているがために 本当は .cfg.txt になってるのが .cfg と表示されている・・・とかはない?
150 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:05:43 ] >>144 ありました。 >>146 何回も再起動しました;; >>147 コマンドプロンプト開いてbcc32でズラズラでてきます。
151 名前:122 mailto:sage [2008/06/16(月) 22:07:27 ] >>149 拡張子は全て表示するようにしています.
152 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:11:37 ] だが断る
153 名前:122 mailto:sage [2008/06/16(月) 22:15:42 ] 蛇足(?)ですが、JDKも導入しています。こちらはフツウに動作してくれます。
154 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:28:52 ] 見てみようと思ったがダウンロードできん。
155 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:43:34 ] >>151 んじゃ、もう Borland は捨てよう。 インスコして即使える VC++ 2008 Express Edition にしよう。
156 名前:122 mailto:sage [2008/06/16(月) 22:51:29 ] >>155 ですね・・・ Visual C++は初めて使う(学校ではUltra-C Proというソフトつかって勉強してました)のですが、まったく仕様がかわりますか? 基本画面を見ただけでごちゃごちゃしていてよくわからないのですが、、、
157 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:52:53 ] コマンドプロンプトからコンパイルする時にインクルードパスを指定してみたら?
158 名前:122 mailto:sage [2008/06/16(月) 22:54:56 ] >>157 コマンドプロンプトの使い方がまったくわかりません;;
159 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 22:55:52 ] > bcc32.cfg内は > -I"c:\Borland\Bcc55\include" > C:\Borland\Bcc32\include\stdio.h はある? →ありました Bcc使ったこと無いんだが、Bcc55ってのとBcc32ってディレクトリできるん?
160 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:00:56 ] >>159 御免。それ間違えただけ。
161 名前:122 mailto:sage [2008/06/16(月) 23:01:08 ] >>159 >C:\Borland\Bcc32\include\stdio.h これはBcc55の間違いでした。すみません。
162 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:01:28 ] >>156 基本的な使い方はそこいらのサイトに載ってると思う。
163 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:03:23 ] >>160-161 了解です。 bcc -ehoge.exe hoge.c でいいのかな。 インクルードパスを明示的に指定するために bcc -I"c:\Borland\Bcc55\include" -ehoge.exe hoge.c とやってみるか、インクルードファイルをフルパス指定にするために #include "c:\Borland\Bcc55\include\stdio.h" に変えてみるとか。
164 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:04:36 ] って\あやしくね?Windows分かりませんで逃げていい?(汗
165 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:05:15 ] #include の中は \ 1つでいいよ
166 名前:122 mailto:sage [2008/06/16(月) 23:14:16 ] >>162 ちょっとググってみます。 >>163 おぉぉおぉぉぉおお!できました!ありがとうございます! しかし、もうVisualC++をインストールし終えてしまいました^^; でもありがとうございます!
167 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:17:29 ] >>166 お。できたんだ? ってことはコンフィグファイルがうまく効いてないのかしら。 その辺はますます使ったこと無いのでわかりませんが、VCに移行するんですね^^; がんばってねー
168 名前:122 mailto:sage [2008/06/16(月) 23:25:10 ] >>167 VisualC++は使い慣れるのにけっこう時間が必要のようです^^;;; 当分、メモ帳+VisualC++の併用していこうとおもいます。 167さんのアドバイスで新しい書き方を覚えましたし、満足です^^ ありがとうございました。がんばりまうs!
169 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:29:44 ] どうでもいいけどC言語以前の問題だと思う
170 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:31:33 ] さらに入門以前の問題でもある
171 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 23:51:44 ] >>168 メモ帳使う方が混乱すると思うぞw
172 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:00:15 ] しかし、Visual C++コマンドプロンプトの存在は bcc32.cfgを用意するなどといった手間がない分、Borland C++より優位。 インストーラの力は偉大だ。
173 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:07:07 ] >>168 今までのレス見てて原因分かったぞ bcc32.cfgのincludeを指定してるパスが間違ってるんじゃないのか
174 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:08:15 ] >>134 で特に間違いはないように見えるけど
175 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:09:39 ] 見逃してたwww
176 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:31:05 ] コマンドプロンプトがわかりませんとか言ってる時点で・・・ まずいくべきはPC初心者板だな。
177 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:38:14 ] 研修を受けて2週間めですが、さっぱりわかりません、助けてください。 変数ってprintfで表示できるしデバッガーでも表示出来るのはわかるのですが 計算して新しいものを入れるのにクリアしないのですか?
178 名前:デフォルトの名無しさん [2008/06/17(火) 00:40:54 ] >>177 なにをいってるのかさっぱりわかりません、助けてください
179 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:42:42 ] 日本語の研修ですか?
180 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:43:46 ] 変数は初期化か上書きしかない、自分がこうしたらクリアだな と思う値で初期化するなり上書きすればクリアじゃないかな
181 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:43:50 ] >>178 ごめんなさい、講師の人には失礼なので聞けないので、一緒に研修受けている 人に聞いてもわかりません。 変数ってクリアしないで計算出来るんですか?
182 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:44:35 ] いや、講師に聞いてくださいよ…
183 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:46:15 ] >>180 ありがとうございます。 思う値でクリアするのがわかりません。 初期化か上書きって命令があるんでしょうか。素人ですみません。
184 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:47:10 ] なんかよくわからんけど 自分で値いれるんならクリアしなくてもいいよ
185 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:47:26 ] >講師の人には失礼なので聞けない なんというゆとり
186 名前:デフォルトの名無しさん [2008/06/17(火) 00:48:09 ] 理解できずに終わる事のほうが失礼だから聞けよクズ
187 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:48:20 ] >>182 講師の人の言ってることは日本語が難しいので聞いても無駄だと思って。。。
188 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:49:07 ] なら分かりやすく教えてくださいって聞けばいいだろ…
189 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:50:16 ] int a = 0; int型変数aを0で初期化 a = 1; 変数aに1を代入(上書き)
190 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:52:52 ] この質問者の日本語が一番難しい。
191 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:53:11 ] 本とか買って予習したほうがいいと思うよ そうすれば講義も理解しやすいかと
192 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:54:08 ] ここんとこC言語以前の質問ばっかりじゃねぇか
193 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:54:55 ] 丁寧に図解して説明してくれて他の受講生は他の学校で習ったよりわかりやすい っていっているので、聞けません。 a = 1って構文は理解したけど、なんでaが1になるのかわかりません。 型が同じだから代入できるということですか?
194 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:57:22 ] 悪いことは言わないからまず電子計算機のなんたるかを勉強しろ
195 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:57:40 ] なんだ他の学校って。 職業訓練学校か? >a = 1って構文は理解したけど、なんでaが1になるのかわかりません。 そういう決まりだからだ。
196 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:58:42 ] 大学の授業なんだろう? 授業料払ってるんだろう? 聞け 言っとくが俺らはおまえからもおまえの親からも何ももらってないんだからな
197 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 00:59:06 ] もしかしてりんごの絵とかで解説してあげないと駄目なレベルなのかな
198 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:00:08 ] はっきり言ってしまうと 単におまえが分不相応な講座取っただけだろ
199 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:01:08 ] 講師の人には他の人とは差があって当然だから、基礎的な事をまずは勉強 しようねといって、コンピュータの歴史の本みたいなのを読まされています。 わたしはプログラムしたいけれども、多分、もう見捨てられているんですね。 わかりました。
200 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:01:16 ] コンピュータ内部の事象をイメージできない人間がプログラミングできるわけがない
201 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:01:34 ] ああ、新入社員の研修じゃなかったのか。よかったよかった
202 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:02:48 ] うーむ・・・正直相当不向きと見える
203 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:03:41 ] 学校じゃないから真剣なんです。社会人の研修です。 なんでみんなこんなのでわかるのか泣きたいです。
204 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:02 ] a = 1って構文は理解したけど、 ↑↑激しく矛盾 ↓↓ なんでaが1になるのかわかりません。
205 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:05 ] おすすめ図書 猫でも分かるc言語プログラミング
206 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:13 ] ごめんなさい、明日も早いから寝ます。いろいろありがとうございました。
207 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:33 ] 逆に質問したいんだがなんでaが1になるのが変だと思ったんだ? そういうところをはっきり書いてくれないと誰もあなたが望む答えが出来ないと思うよ
208 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:05:41 ] プログラマはプロ・アマ問わず本買うなりネットで調べるなりして自学自習が基本だ。 与えられた本に文句つけてる暇があったら、入門本を片っ端から読み漁れ。 講師だの学校だのにプログラム教えてもらおうなんて思ってるなら、転職・進路変更を勧める。
209 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:06:51 ] なんでこんなのをプログラミングの研修に回すんだ… どこの会社かしらんがおかしいだろ
210 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:08:07 ] たぶん変数とか代入とかの概念がないんだろう
211 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:08:43 ] まわりが経験者ばっかりで焦ってたんだろね
212 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:08:49 ] 1+1はなんで2になるの?くらいのレベルの質問
213 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:02 ] >>207 a = 1 って書くのはわかるけど、aは変数じゃないんですか??? ごめんなさい、たぶんわたしがまるでわかってないんですね。
214 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:05 ] あーそうか つまり a=1 を数学の数式として見てるのか・・・
215 名前:デフォルトの名無しさん [2008/06/17(火) 01:09:20 ] a = 1の構文に違和感を覚えるのなんてよくあること
216 名前:デフォルトの名無しさん [2008/06/17(火) 01:09:55 ] と思ったけど>>213 を見た限りそういうわけじゃないみたいだなwwwww
217 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:09:57 ] a=1; これの意味を本当に理解してる? 説明してみて
218 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:10:52 ] >>213 意味わかんねえよ。 「(変数) = (値);」と書いて「(変数)に(値)を代入する」って読むんだよ。 何が分からんのか言うてみろ。
219 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:11:23 ] たぶん「代入」が理解できてない
220 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:12:04 ] 131だけどどなたかわかりましたか?
221 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:13:05 ] 一番いいのは 自分で int a; a=1; してからprintfでaを表示しろ
222 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:14:11 ] zipファイルが落とせないの俺だけ? 出会い系のバナーしかリンクがねーんだけど。
223 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:14:19 ] よく言われるのは、変数は箱の名前 まず最初に int a; などのように書いてint型の変数としてaと言う箱を用意します その箱の中身に 1 と言う値を入れる(代入)にはどうすればいいか a = 1; と書くのです、これはC言語の決まりごとです
224 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:14:24 ] 代入演算子で1を代入してるんですよね。理解しています。 でも、どうしてaが1なんですか? 取り出すところがわかりません。どうやってクリアするのですか?
225 名前:デフォルトの名無しさん [2008/06/17(火) 01:14:36 ] 2つの数の最大公約数を出すプログラミングを書いていたのですが、どうしてもうまくいきません どこが悪いか教えてもらえませんか? どんな値を入れても18000みたいな数字が出てきてしまいます。。。 お願いします #include<stdio.h> int gcd(int m,int n) /*二つの自然数の最大公約数を返す*/ { int i; if(m > n) {for(i =m; i==1; i--) {if( (m%i)==0 && (n%i)==0 ) return i; }} else if (m < n) {for(i =n; i==1; i--) {if( (m%i)==0 && (n%i)==0 ) return(i); } } } int main(void) { int x, y; puts("二つの自然数を入力してください。"); printf("自然数1:"); scanf("%d", &x); printf("自然数2:"); scanf("%d", &y); printf("二つの自然数の最大公約数は%dです。 \n", gcd(x ,y)); return(0); }
226 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:15:22 ] 決まりごとになぜっていわれるのが一番こまるよなー。 なんで止まれは止まらないといけないのかとか
227 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:15:26 ] >>220 そんなところにソース上げられても誰も見ようとはしないよ 自分でリンク叩いてみろ
228 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:16:03 ] >>224 「代入」の意味を説明してみろ
229 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:16:17 ] >>224 クリアってなんだよ。 勝手に変な概念を作るな。
230 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:16:42 ] どこにうpすれば。。。
231 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:17:01 ] おまいら釣られすぎwww
232 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:17:49 ] 131 単品だとエラー確認できないんすよー。
233 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:17:54 ] >>225 i==1
234 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:18:37 ] あーもー、 おまえら何がしてーんだよっww
235 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:19:10 ] いったいこいつの頭の中がどうなってるのかを確かめたいと言う知的好奇心
236 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:21:23 ] 131 ddofile29050.zip pass errorです みてもらえたらうれしいです
237 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:16 ] >>131 1643.zipがねーぞ? 2chなんかでリンク張るから消されたんじゃねーのw
238 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:23 ] ここは半角板じゃねぇぇ。
239 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:25 ] やぱりからかれてるんだ。
240 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:41 ] >>236 しねばいいよ
241 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:22:44 ] 明日ゼミあるのに全くゼミ資料も裏付けもやってねー
242 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:25:45 ] いくらなんでもa = 1がわからないやつを2週間も放置する会社は無いだろ
243 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:26:28 ] a = 1; において、a という箱にはなにかしらデータが入っているから そのままではそのデータが邪魔で 1 を代入することはできない だから a からデータを取り出すなり消去する(「クリア」する)必要がある とでも考えているんじゃなかろうか
244 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:26:35 ] なぜreturn aで返るんですか?
245 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:28:44 ] >>243 そうです。 どうしてクリアしなくていいんですか?
246 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:29:30 ] 上書きしてるから
247 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:30:08 ] 自分でC言語のコーナーいって 自分が一番わかるであろう本をかいなよ。 そしてプログラムを自分が理解してうつ。 それがベストだろ。
248 名前:デフォルトの名無しさん [2008/06/17(火) 01:30:50 ] >>245 箱と説明されてるのがまずかったのかな? ホワイトボードみたいなもんだを思ってくれ a = 1;はaって言う名前のホワイトボード書き換える行為だと
249 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:09 ] +=とか|=なら、245的クリアしない代入と言えるのだろうか?
250 名前:131 [2008/06/17(火) 01:31:17 ] #include <stdio.h> #include <stdlib.h> #include <assert.h> #define MAX 5000 #define M 25 #define STR_MAX 256 void binary_file_process(char *fname) { float sample1; float sample2; float sample3[5]; float s1[MAX]={0}; float input_data[150][M]; char buff[100]="text/"; FILE *fin1=fopen(fname,"rb"); strcat(buff,fname); strcat(buff,".txt"); FILE *fp =fopen(buff,"w"); int i = 0,j = 0,k = 0,l = 0,m = 0,y = 0,z = 0,max=0; int count=0; fseek(fin1, 0, SEEK_SET); fread(sample3, sizeof(float), 6, fin1); fseek(fin1, 12, SEEK_SET); while(fread(&sample1, sizeof(float), 1, fin1) == 1) { s1[k] = sample1; k++; } count=k/M; max=k; for(i=0;i<max;i++){ printf("{%.1f}",s1[i]); if((i+1) % M ==0){ printf("\n"); } } printf("\n\n"); printf("k:%d count:%d max:%d \n",k,count,max); k=0; for(i=0 ; i < count ; i++){ for(j=0;j<M;j++){ printf("\t"); input_data[i][j]=s1[k]; fprintf(fp,"%f ",input_data[i][j]); if((k+1) % M ==0){ fputs("\n",fp); } k++; } } fclose(fin1); fclose(fp);} int main(){ char buf[100][STR_MAX]={'\0'}; FILE *fp; int i,j,k=0,count=0; system("dir power/*.data >memo.txt"); fp=fopen("memo.txt","r"); if(fp==NULL){ printf("prog001.c:file can't open memo.txt\n"); exit(-1); } printf("読み込み開始\n"); i=0; while(fscanf(fp,"%s",buf[i]) != EOF){ i++; } count=i; fclose(fp); printf("count:%d buf[0]=%s\n",count,buf[0]); binary_file_process(buf[0]); } なんとかまとめてみました お願いします
251 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:29 ] >>255 5行目と11行目のfor文を i == 1 → i != 1 にかえるとおk
252 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:31 ] 変数の初期化 その変数に代入すると,初期化した変数にいれられる。
253 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:45 ] >>246 そこが言ってることがわかりません?上書きってクリアとは違うんですか?
254 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:31:49 ] >>245 ホワイトボードじゃ、一回クリアしないと書けないぞw MDでもカセットテープでもなんでもいいが、 繰り返し録音できるメディアはいちいちクリアしなくても 新しく録音できるだろ。 それと一緒だ。上書きだよ上書き。
255 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:32:07 ] 間違った >>225 だ
256 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:32:21 ] >>150 単品じゃうごかねえつったろw
257 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:32:58 ] >>245 C言語は、プログラマのコードが全て つまりプログラマの責任において操作する a = 1; の後に、aに何を代入して上書きしようがプログラマの勝手 で、その変数aの値を使用するのは、プログラマの責任で使えってこった
258 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:33:42 ] データがねーから nt main(){ char buf[100][STR_MAX]={'\0'}; FILE *fp; int i,j,k=0,count=0; system("dir power/*.data >memo.txt"); でエラー
259 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:35:43 ] まさにカオス
260 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:37:03 ] 何を代入してもいいのに1を代入するとかもうわけがわからないのは やっぱりむいてないんでしょうね。 書いている言葉は理解できるのにさっぱり意味がわかりません。 長々とありがとうございました。明日相談してみます。
261 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:38:52 ] 何を代入してもいい箱には 何が代入できるのだろう。 そもさん、せっぱ
262 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:39:12 ] 書いている言葉は理解できるのに ↑↑何か脳の病気なのか…↓↓ さっぱり意味がわかりません。
263 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:40:02 ] 1は例えであって別に何しようが勝手だって 型なのどの規則を守ってたら あとは>>257 の言うとおり 何も代入してない状態の変数にも中身が勝手に入ってる ただ、それは何が入ってるか分からないから自分が分かるように 分かる値を入れるだけ
264 名前:デフォルトの名無しさん [2008/06/17(火) 01:40:50 ] >>255 ありがとうございます! 明日トライしてみますね! 助かりました。。
265 名前:255 mailto:sage [2008/06/17(火) 01:50:52 ] >>264 あと公約数がない場合もつけたしておいたほうがいいよ
266 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:53:41 ] 公約数がないなんてありうるの?
267 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:54:06 ] ねぇよwww
268 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:56:34 ] 素数って1とそれ自身以外の約数がないんじゃなかったっけ? 2つの素数の公約数って1でいいの?
269 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:56:44 ] aが1かなんでもいいを入れられるのにどうして1を入れる必要が あるのかどうしてもわからないんですよ。 1じゃなくても入れられるのはわかっています。 なんで1があるのにそれを入れるのか、どういう時に入れれば いいのかわからないんです。 入れたいときにっ言うけどそれがわかりません。 フローチャートも演習でやったのは書けたけど、プログラムを見て フローチャートに出来ません。 やっぱり無理ですね。よくわかりました。
270 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:57:16 ] 約数って素数じゃなきゃいけないんだっけ?
271 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:58:05 ] >>269 もう寝ろ。
272 名前:255 mailto:sage [2008/06/17(火) 01:59:11 ] あのプログラムだとループの i が1になった瞬間終了だから 8 7 とか入力したらバグる
273 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 01:59:14 ] >>268 全ての整数は1と(負の約数を考えるなら-1)を約数にもつ。 だから、どんな二つの整数も1を公約数に持つし、 二つの素数の最大公約数は1
274 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:00:25 ] 変数の存在自体に疑問を持ってるということかいね つまり、全部数値を直打ちしてプログラム書けということかいね 死ぬわ
275 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:01:01 ] >>272 そういう意味だったか、すまん 確かに返り値返してないな
276 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:05:42 ] 変数の意義とは何ぞや。 すなわち、テンポラリである。
277 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:09:15 ] 女がピーかなんでもいいを入れられるのにどうしてピーを入れる必要が あるのかどうしてもわからないんですよ。 ピーじゃなくても入れられるのはわかっています。 なんでピーがあるのにそれを入れるのか、どういう時に入れれば いいのかわからないんです。 入れたいときにっ言うけどそれがわかりません。 ごめんもう寝る
278 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:10:02 ] いや、別に入れたくないなら入れなくていいよ。
279 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:11:10 ] 根本的に無理だな 問題解決能力そのものがない
280 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:18:01 ] >>277 応用をやるために基礎があるってことでおk?
281 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:23:06 ] 釣りだと思う人挙手 ノ
282 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:10:52 ] >>269 つまり、プログラムで何をするか決めてない、理解してないのに プログラムの構文を習った所で、そんな状態になるわな まず、これから先に何かをする為に、そうルールでプログラムは動くって覚るしかない 変数は、プログラムを組むなら絶対使うからw 例えば、条件分岐(習ったかどうか知らんが) int value; // 何らかの処理でvalueに何らかの数値が入る ... if ( value == 0 ) { // 0の時だけにしたい処理 ... } こんな感じで使う a = 1; なんて、構文を教えてるだけだ、それに意味なんか求めるな
283 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:16:01 ] つまりみなさんよくわかないけど使ってるんですね わたしもそうすることにします
284 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:21:11 ] >>283 それがいい やってるうちに分かってくる b
285 名前:デフォルトの名無しさん [2008/06/17(火) 03:49:54 ] c言語でbmpファイルを読み込んで、それを表示させるプログラムを作るには、 ウインドウ作成プログラムも作らないといけないのですか
286 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:54:58 ] Cとウィンドウ作成の関係について詳しく
287 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 03:59:01 ] おいちゃんの作ったプロ、グラマーなクソースなら HTMLのTBL形式に出力しちゃうわよぉ〜ん
288 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 04:32:13 ] これは ひどい
289 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:23:47 ] スレ違うかもしれません。だが教えて欲しい! 昨年プログラムとして とあるソフト入社したんだが、C言語でやってる。 しかし!入社して一年たっても全くと言って良い程 C言語がわからす、プログラムなんて持っての他。 テストばかり。テストばかりなのが嫌ではないのだが、 将来首切られる事ってあり得るのかな? ちなみに勤務態度や 勤務状態(遅刻や早退)は良い。 やっぱプログラマ出来ないとリストラされるのでしょうか?
290 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:28:04 ] 時や場所をわきまえない奴は首
291 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:29:13 ] 入社したのが新卒なのか、中途で他業種からなのかとか 背景がさっぱりわからんし、同じようにテストを受けてるのが 一人だけとか他にも同期で何人かいるとかでも違うしなあ。 体力ある企業で新卒でそれをさせてるなら育成の可能性が あるから首ってことはないだろうけどなあ。 それに体力無いところは適当な案件見つけてすぐにでも 経歴偽装してデスマな現場に放り込まれそうだけどなw
292 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:44:28 ] 289ですが、専門卒で新卒でソフト会社入って 一年でやめて、違う業種で一年やって 三年程のブランクを経て今ある会社に入りました。 形としては中採かな。1ヶ月程たった。 自分づもプログラムに向いてないのは 分かってるけど、違う業界でやっていくか、 とりあえず分からないなりに 努力していくか悩んでいるのです。 スレ違う失礼しました。 ただ、このスレ野中にはプログラムの人もいるかなと思い、 参考程度に聞いてみた。 結局は自分だけど、皆さんならどうしますか?
293 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 06:54:07 ] プログラムの人ってなんだよw プログラマだろ
294 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:12:42 ] とりあえずちゃんとした文章を書こうよ
295 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:15:02 ] まーまだ20代なんだからやる気次第かもね〜
296 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:53:17 ] 質問です。char変数に代入する方法がわかりません。次のようなプログラムなんですが、 char fruits; int kind; printf("どれが好き?\n1.リンゴ\n2.みかん\n3.バナナ\n"); scanf("%*d,%d",kind); switch(kind){ case 1: fruits = "リンゴ"; break; case 2: (中略) } printf("あなたは%sが好きです",fruits); fruitsに文字を代入するところでエラーが出てしまいます。どう変えれば動くようになりますか?
297 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 07:58:51 ] #include <string.h> (省略) char fruits[64]; int kind; printf("どれが好き?\n1.リンゴ\n2.みかん\n3.バナナ\n"); scanf("%*d,%d",kind); switch(kind){ case 1: strcpy(fruits, "リンゴ"); break; case 2: (中略) } printf("あなたは%sが好きです",fruits);
298 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:03:26 ] 別に fruits[0] = "リンゴ"[0]; 〜〜 fruits[6] = "リンゴ"[6]; fruits[7] = "リンゴ"[7]; break; でもいいけど。
299 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:22:29 ] 大きさを宣言するんですね! うっかり忘れてました。thxです。
300 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:23:51 ] >>289 >>292 1年なのか1ヶ月なのかはっきりしろよ
301 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 08:41:06 ] >>299 うっかり…なのか? 何だかchar型に文字列のポインタ入れようとしたり、基本的なことが分かってないように思えるんだが
302 名前:デフォルトの名無しさん [2008/06/17(火) 09:33:14 ] >>286 BMPファイルを読み込んだ後にそのBMP画像を画面に出力すること と言われて、BMPファイルをメモリに読み込ませることはできたんですけど 出力するプログラムがわかりません
303 名前:デフォルトの名無しさん [2008/06/17(火) 09:37:10 ] >>286 BMP画像を読み込んで、その読み込んだBMP画像を画面に出力する というプログラムを作成するのに、そのまま出力することができるんですか BMP画像を読み込ませることはできたんですが、それを画面に表示 させる方法がわかりません
304 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:38:57 ] スレ違い
305 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:28:58 ] つまり「日本語なら俺に聞け(入門篇)」のスレへ行け、ということですね。わかりますた
306 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:43:36 ] 問04(最終問題) テキストサウンドノベルを作成する事。 キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで) 画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。 テキスト行数は、最低50行から最大100行までとする。 画面全消去方法は、先生に聞くこと。 これってCじゃなくC++ですか?
307 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:49:47 ] >>303 つ ttp://www.db.is.kyushu-u.ac.jp/rinkou/c/kougi7/Slide29.html
308 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:41:57 ] 質問だけですが、分かる方お願いします。 cは拡張キーワードというのがありますが、 どういった場合に使用するのでしょうか? 具体的な使い方とか乗っているサイトありませんか?
309 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:08:19 ] >>308 拡張キーワードって __asm __stdcall などのこと? それぞれが必要なときに使うんだよ。 使い方は処理系のマニュアルを読む。
310 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:08:52 ] >>306 サウンドのあたりがしんどいね
311 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:57:06 ] >テキストサウンドノベル これはひどい
312 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:14:08 ] >>269 亀レスだが、その疑問はコンピュータサイエンスのプログラム意味論や 計算とは何かの範囲になるので、ここではスレ違い。
313 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:59:38 ] エレガントなコードを書くのに参考になるような本って何かありますか? Short coding以外で
314 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 14:21:01 ] >>177 > 変数ってprintfで表示できるしデバッガーでも表示出来るのはわかるのですが > 計算して新しいものを入れるのにクリアしないのですか? そうだよね、変数は値(を書いた札)を入れる箱だから、元の値が邪魔になるよね。 っていうアレではないか。
315 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 15:01:50 ] >>314 は>>243-245 で既出だった
316 名前:デフォルトの名無しさん [2008/06/17(火) 19:01:20 ] 1つのスイッチと4個のLEDを使ってプログラムを作ろうと思っています。 スイッチを押すとLED1が点灯→もう一度押すとLED1に続いてLED2が点灯、さらに1回押すとLED3も点灯 というように押すたびに点灯するLEDが増えてくというものを作ろうとしているのですが、 まったくできません。 プログラムをどのように書くと1つのボタンでLEDが点灯する数を増やしていくことができるのでしょうか? こういう風に
317 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:03:54 ] どういう接続かしらんけど ポートに出力するデータに対して 最初は0 左シフトして1インクリメント を繰り返せばOKなんじゃない?
318 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:17:41 ] >>317 今は while(1){ if (P2.DR.BIT.B0==0){ P1.DR.BYTE=0x01; } } これでボタン押すとLED1が点灯する状態です。 >>ポートに出力するデータに対して >>最初は0 >>左シフトして1インクリメント この辺はどんな命令文で指示すればいいのでしょうか?
319 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:21:25 ] char outdata = 0; while(1){ if (P2.DR.BIT.B0==0){ P1.DR.BYTE=outdata<<1; outdata++: if (outdata > 4) outdata = 0; } }
320 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:30:39 ] >>319 詳しくありがとうございますw char outdate=0; の行でエラーが出るのですが、乱数使うときの#include<studlb>みたいな前置きみたいの必要なんですかね?
321 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:32:28 ] 組み込みスレで聞いたほうがよくないか?
322 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:35:50 ] エラーの内容くらい読め
323 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:36:39 ] 釣りだろ
324 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:38:06 ] >>321 まーIOポートも変数みたいに使えるようになってるからいいんでね? >>320 char outdata = 0; を BYTE outdata = 0; かな? char型じゃないのかね? それか chara outdata; outdata = 0; のように行を分けないといけないとか
325 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:38:41 ] char outdata; outdata = 0; こうだorz
326 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:48:31 ] 釣りじゃないですが 2500(E) ILLEGAL TOKEN: "char" 2225(E) UNDECLARED NAME: "outdata" っていうエラーが出てしまいます。 >>324 さんのも試してみたのですが、BYTEでも同じエラーでした。
327 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:53:39 ] 変数を定義できる場所とできない場所がある。
328 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:00:06 ] 面倒だからこうするか P1.DR.BYTE = 0; while(1){ if (P2.DR.BIT.B0==0){ P1.DR.BYTE=P1.DR.BYTE<<1; P1.DR.BYTE++: if (P1.DR.BYTE > 4) P1.DR.BYTE = 0; } } でもP1.DR.BYTEって読み込みできるのかな?
329 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:13:44 ] { char outdata = 0; while(1){ if (P2.DR.BIT.B0==0){ P1.DR.BYTE=outdata<<1; outdata++: if (outdata > 4) outdata = 0; } } } さらに面倒だからこうしちゃえば?
330 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:22:00 ] 日立のSHCか?
331 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:26:31 ] H8/3664で遊んだときにどこかの会社の 無料の統合環境もこんな感じで組めたな。
332 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:29:58 ] たぶん制御系スレが一番詳しいはずってか初心者が組み込みに手出すのは無謀じゃないのか
333 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:41:17 ] >>328-329 >>P1.DR.BYTE++: >>outdata++: 最後の点々はセミコロンじゃないとエラーでるけど:じゃないと意味ないんですかね? ちなみにセミコロンに変えて実行するとLEDは点灯するけど点灯の仕方がランダムみたいになってます;; >>330 日立のH8/3052Fです
334 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:47:22 ] >>333 あ、ごめんコロンになってたかな? セミコロンに直してください。 ランダムというかウェイトいれないといくらマイコンって言ってもその程度の ロジックならかなり早い点等を繰り返すはず。 なので変な点等になる。
335 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:47:50 ] 点等orz 点灯ね
336 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:50:26 ] スイッチ押してる間ずっとP2.DR.BIT.B0が0だったりして。 制御系って適当に作りまくってると火を吹きそうなイメージなんだけど大丈夫なんだろか
337 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:51:34 ] >>336 多分タクトスイッチが押されるとアースしてるんじゃね?
338 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:51:36 ] あんまりよく読んでないけどP2.DR.BIT.B0はスイッチの入力か? 上のレスのソースだと、スイッチが0の状態ままだと、 ひたすらインクリメントなりシフトなりするだろうから 一回押すたびに点灯という動作にはならないんじゃないか? おそらく、スイッチがどちらかの状態になったらパパパパとつくだけかね。
339 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:52:08 ] よくわかんないけど、ボタンを放すまで待つとか、そういう処理はいらないのかな
340 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:53:38 ] { char outdata = 0; char count = 0; while(1){ if (count == 0) { if (P2.DR.BIT.B0==0){ P1.DR.BYTE=outdata<<1; outdata++; if (outdata > 4) outdata = 0; count = 255; } } count--; } }
341 名前:340 mailto:sage [2008/06/17(火) 20:54:13 ] 応急策ね
342 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:55:02 ] あ、ごめん>>340 だめだわ
343 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:56:56 ] { char outdata = 0; char count = 0; while(1){ if (count == 0) { if (P2.DR.BIT.B0==0){ P1.DR.BYTE=outdata<<1; outdata++; if (outdata > 4) outdata = 0; count = 255; } } else { count--; } } }
344 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:58:38 ] 本当はマイコンが持ってるタイマーとか使えばいいんだろうけど いきなりそれだと敷居があがるので、ベタなカウンターでやってみた。
345 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:00:52 ] 突然ごめんなさい。 合計 50 49 48 47 46 *** 45 44 43 42 41 *** 40 39 38 37 36 *** 35 34 33 32 31 : 30 29 28 27 26 : 25 24 23 22 21 : 20 19 18 17 16 : 15 14 13 12 11 : 10 9 8 7 6 : 5 4 3 2 1 合計 *** *** *** *** *** を表示するプログラムって一次元配列を使ってどの様に書けますか? おねがいします
346 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:01:25 ] >>1 >>1 >>1 >>1
347 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:01:42 ] ずれた・・・すみません;;
348 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:19:43 ] >>345 できたよ int main() { char s[] = " 合計\n 50 49 48 47 46 ***\n 45 44 43 42 41\ ***\n 40 39 38 37 36 ***\n 35 34 33 32 31 :\n 30 29 28 27 26 :\n 25 24 23 22 21 :\n\ 20 19 18 17 16 :\n 15 14 13 12 11 :\n 10 9 8 7 6 :\n 5 4 3 2 1\n合計 *** *** *** *** ***"; printf("%s", s); return 0; }
349 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:22:25 ] >>348 ちょっwwww カルーアミルクを噴出しちまったじゃねーかYO!
350 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:27:53 ] >>338 スイッチの入力です。 >>343 さん 試してみました。 スイッチを押す回数 LED 1回 ○●○○ 2回 ○●●○ 3回 ○●○○ 4回 ●○○○ リセットしてやり直すと、また点き方が変わったりしてしまいます。 マイコンがダメなんですかね。 理想は スイッチを押す回数 LED 1回 ○○○● 2回 ○○●● 3回 ○●●● 4回 ●●●● なんですけど
351 名前:343 mailto:sage [2008/06/17(火) 21:30:04 ] あーLEDってP1.DR.BYTEのどのビットに接続されてるかわかる? それ確認してなかったよ
352 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:36:31 ] >>348 ああ驚いた >>348 の前がどこかわからんけど const char table[] = {0x00, 0x01, 0x03, 0x07, 0x0f}: count = 0; count = (++count % 5); P1.DR.BYTES = outtable[count]; テーブルがシンプルだったりして・・・
353 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:43:23 ] >>351 ○○○● P1.DR.BYTE=0x01; ○○●● P1.DR.BYTE=0x03; ○●●● P1.DR.BYTE=0x07; ●●●● P1.DR.BYTE=0xf; こういうことですか?
354 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:45:36 ] >>353 あー まあそれでOKです。 シフト演算が思惑通りに動いてない気がする(私の勘違いの可能性大) ので>>352 のような配列で持ってたほうがいいかも
355 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:47:13 ] <<345 できたお #include <stdio.h> int main(){ int a,b,z,i,d; int c=50; //1行目から10行目 printf("\t\t\t\t\t\t合計\n"); for(a=0; a<10; a++){ for(b=0; b<5; b++){ i += c; printf("\t%d",c); c--; } printf("\t%d",i); printf("\n"); d += i; } //11行目 printf("合計"); for(a=0; a<5; a++){ for(b=1; b<11; b++){ c += 5*b; } printf("\t%d",c); } printf("\t%d",d); scanf("%d",z); }
356 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:48:48 ] 間違った>>345 だ
357 名前:355 mailto:sage [2008/06/17(火) 22:21:10 ] 配列使ってないうえに合計がめちゃくちゃだった スマソ
358 名前:355 mailto:sage [2008/06/17(火) 22:28:05 ] 書き込むスレ間違えた >>355-358 はスルーしてくれ
359 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:59:31 ] >>354 { char outdata = 0; int sw_cur = 1; int sw_prev = 1; while(1){ sw_cur = P2.DR.BIT.B0; if( !(sw_cur ^ sw_prev) ) continue; sw_prev = sw_cur; if( sw_cur == 0 ){ P1.DR.BYTE = outdata << 1; outdata++; if(outdata > 4) outdata = 0; } } }
360 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:16:21 ] >>359 ああ、すまん。こうだな。 if( sw_cur == 0 ){ P1.DR.BYTE = (1 << outdata); outdata++; if(outdata > 4) outdata = 0; } >>353 のようにしたいなら、たしかH8はI/Oにバッファが あったような気がするから P1.DR.BYTE |= (1 << outdata); すりゃいいんないかな? できなったら、もうひとつ変数用意すりゃいい。
361 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:32:25 ] >>345 #include <stdio.h> #define TOTAL_NUM 50 #define COL 5 int main(void){ int i, c=TOTAL_NUM, tmpsum=0, colsum[COL]={0}; for(i=0; i<COL; i++){printf("\t");} printf("\t合計\n"); for(; c>0; c--){ printf("\t%4d", c); colsum[(TOTAL_NUM - c) % COL] += c; tmpsum += c; if((c % COL) == 1){ printf("\t%4d\n", tmpsum); tmpsum = 0; } } /*最終行*/ printf("合計"); tmpsum = 0; for(i=0; i<COL; i++){ printf("\t%4d", colsum[i]); tmpsum += colsum[i]; } printf("\t%4d\n", tmpsum); return 0; }
362 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:15:45 ] 昨日相談したものですが、今日会社からほかのメンバーは皆開発に 行くけどわたしだけテスト要員として来月から配属されることに 決まったそうです。 多分、辞めろっていうことなんでしょうね。 なんで自分だけわかんないのか悔しいけど、頭の構造が違うんで しょうね、こういうのがわかる人は。
363 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:17:58 ] >>362 おめでとう、死ねばいい富もうよ
364 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:20:35 ] お前を採用したのは会社なんだからお前を活用する責任も会社にある 黙って居座ってればいいのだ
365 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:21:40 ] 給料くれるなら別に良いよ 気にスンナ
366 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:22:14 ] 自信がないっていってたんだし、そのままいきなり開発に 放りこまれるよりは親切なほうだと思うけどなあ。 テストの間に勉強すればいい。
367 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:26:02 ] テストってデバッグ要員のことだったのか 資格試験でも受けてるのかと思った テスト要員でも雇ってもらえるならいいじゃないか 辞めろって言われるまで居座ってやれ
368 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:26:08 ] >>362 >>312
369 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:33:55 ] 会社に行ったらテスト要員になった 辞めろってか
370 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:38:53 ] 辞めろよ
371 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:39:20 ] 多分、若干おかしくなりかけていたから講師から人事に相談されてたっぽい ですね。スレ違いなのでもう終わります。 教えてくれた人、ありがとうございます。 プログラムがちゃんと書ける人って自分のやってることを説明できて親切で すね。ほうんとうにありがとうございました。
372 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:46:01 ] しかし開発要員に採っておいて使えないのにクビ宣告しないなんて 世の中良心的な会社もあったもんだね つまり当たりを引いたわけだ
373 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:10:48 ] ワシは単にコネでねじこまれたという説を推すよ
374 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:28:24 ] 俺が新人の頃は同期に全然できない奴がいて、そのうちのひとりは研修中に辞めたよ
375 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:32:03 ] まあ開発部隊に入りたいならゆっくりでもいいから勉強することだねー
376 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:32:40 ] 入らないほうが幸せにはなれるかもな
377 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:55:38 ] ゆっくりしていってね(AA略)
378 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:38:52 ] 公務員はプログラミングできるのか? 医者はプログラミングできるのか? 弁護士はプログラミングできるのか?
379 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:42:39 ] 趣味でプログラムできる人もいるんじゃね?
380 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:47:56 ] 仕事でそういう二足のわらじを履いてる人は結構いるよ 有名どころだとLZHの作者はお医者さんだったっけ
381 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 13:09:26 ] 森田将棋の人も医学部だったね 医師免許はとってないのかな
382 名前:デフォルトの名無しさん [2008/06/18(水) 20:40:56 ] 文字列の入力を促し、入力。 その文字列の先頭の文字と同じ文字が文字列の中にいくつふくまれるかを求めるプログラム。 先頭の文字も数のうちに入れる。 (ポインタを用いる) お願いします
383 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:41:56 ] >>382 >>1 を100回読め
384 名前:デフォルトの名無しさん [2008/06/18(水) 20:43:33 ] >>381 時間がないのです。
385 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:45:16 ] ここはC言語を学ぼうとしている人のためのスレです 情報処理の単位が欲しいだけの人はお帰りください
386 名前:デフォルトの名無しさん [2008/06/18(水) 20:46:55 ] >>382 答えてあげてくださいな
387 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:48:35 ] ばればれの自演は逆効果w
388 名前:デフォルトの名無しさん [2008/06/18(水) 20:49:45 ] 文字列の入力を促し、入力。 その文字列の先頭の文字と同じ文字が文字列の中にいくつふくまれるかを求めるプログラム。 先頭の文字も数のうちに入れる。 (ポインタを用いる)
389 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:54:20 ] 大学で資格の関係でどうしてもC言語をやらなければなりません どうしてもわからない問題があるのでどなたか教えてください 問題1 三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると ***** *** * となる。 2 下記のように横と縦の累計を計算して表示する。 配列は使わないこと。 3 10個以下の任意のn個(データ数は入力)のデータを入力し、逆順に出力する。 実行結果は奇数と偶数個の例を示すこと。 4 下記のように横と縦の累計を計算して表示する。 ただし、1次元配列を使うこと。 どの問題でもかまいません 本当に困っているので教えてください
390 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:55:57 ] >>382 #include <stdio.h> int main(void) { /* 入力された文字列を収めるためのcharの配列を宣言 */ /* その他の必要な変数を宣言 */ fputs("please input a string : ", stdout); /* fgets()を使ってcharの配列に入力された文字列を格納 */ /* 文字の数を数えるint変数を0に初期化する */ /* charへのポインタにcharの配列の先頭の文字を指させ、 chraへのポインタが指している先の文字が'\0'でない間、 charへのポインタを1ずつ文字列の先へずらしながら、 以下の処理を繰り返す */; /* もしchraへのポインタが指している先の文字が charの配列の先頭の文字と等しければ */ /* 文字の数を数えるint変数を1増やす */ /* printf()を使って文字の数を数えたint変数の値を表示する */ return 0; }
391 名前:デフォルトの名無しさん [2008/06/18(水) 20:55:59 ] C言語始めて2ヶ月でこんなもんだいだされました。 文字列の入力を促し、入力。 その文字列の先頭の文字と同じ文字が文字列の中にいくつふくまれるかを求めるプログラム。 先頭の文字も数のうちに入れる。 (ポインタを用いる)
392 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:58:04 ] >>1 を読んでください それでわからないようならあなたの日本語力と知性は壊滅的なのでおとなしく退学することを勧めます
393 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:58:10 ] >>389 自分でできないなら資格はありません
394 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:58:13 ] ああそうですか。 マルチ視ね
395 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:06:28 ] >>382 #include<stdio.h> #include <stdlib.h> int main() { int *c, count = 1, i; c = (char *)malloc(1); puts("入力どうぞ"); if ((i = getchar()) == EOF) { printf("ちゃんと入力しろ\n"); exit(1); } while ((*c = getchar()) != EOF) { if (i == *c) count++; } printf("%d\n", count); return 0; } できました
396 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:08:14 ] これはひどい(笑
397 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:10:26 ] >>382 #include<stdio.h> #include <stdlib.h> int main(void) { int *c, count = 1, i; c = (int *)malloc(1); puts("入力どうぞ"); if ((i = getchar()) == EOF) { printf("ちゃんと入力しろ\n"); exit(1); } while ((*c = getchar()) != EOF) { if (i == *c) count++; } printf("%d こです\n", count); return 0; } すいませんこっちでした
398 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:11:32 ] どっちも微妙にまちがってんじゃねえか
399 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:14:07 ] だめだこりゃ
400 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:28:26 ] 故意だろ
401 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:33:36 ] >>382 有限長の文字列を総当りで生成して、それをコンパイルしていくプログラムを作れば そのうち自分が作りたかったプログラムが自動生成されるんじゃね?
402 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:35:19 ] >>401 すっげぇ頭いいなおまえw
403 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:36:59 ] そして自分が作りたかったプログラムかどうかを 判定するプログラムが要るという話になるんですね分かります
404 名前:デフォルトの名無しさん [2008/06/18(水) 21:44:13 ] 故意はかんべん
405 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:44:54 ] なんだこのviper的なノリはwww
406 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:28:54 ] >>389 どうしても分からないなら資格取れるわけないじゃん なんかおかしくね?
407 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:30:56 ] またこの流れかよw >>60 へどうぞww
408 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:31:54 ] 恋はかんべん
409 名前:デフォルトの名無しさん [2008/06/18(水) 23:28:46 ] 関数を呼び出す時って他の文字に置き換えてから使えたほうがいいんですか? 例えばadd関数を呼び出してif文に入れるときの場合 x=add(n); if(x==1) みたいな感じか if(add(n)==1) どちらがいいんでしょうか? 下のほうでやっていたら友達にそのやり方は見にくくてありえないしプロがそんなことやったら確実に怒られるといわれたんですがどうなんでしょうか?
410 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:31:17 ] 場面にもよるが、ステップによるデバッグがしづらいかもしれない。>後者
411 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:31:44 ] いや好きにすればいいと思うよ ただ、関数の結果を他にも使う予定があるなら上の方が良いんじゃない?
412 名前:デフォルトの名無しさん [2008/06/18(水) 23:36:20 ] できる限り前者でやったほうがいいんですか? 習ってる途中で後者の方がわかりやすいと思ったのですがプログラムできる友達に言われたので…
413 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:39:07 ] >>409 その関数が非常に高コストで、その判定部がループの中にあるなら よくないなあとは思うけど、そうでないなら別に気にしない。 その友達がプロで怒られた経験があるのであれば、もう少し細かい 理由を教えてもらえばいいんでない?
414 名前:デフォルトの名無しさん [2008/06/18(水) 23:40:21 ] ほかにも使うというのは x=add(n); if(x==1) if(x==2) みたいな感じですか? あとプログラマーみたいな人たちの間ではどちらが主流なんでしょうか?
415 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:54 ] ちなみに、プロになれば周りのコードにあわせるということのほうが大事。 優劣をつけられない記法の差において、俺はこうすべき!って一人で 走ってるなら怒る。
416 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:58 ] >>409 その友達がどの程度のプロなのかはこの際置いておくとして、どちらがいいとか悪いとか言うことはない。 明確なことは、前者は変数を一つ使用し、後者は使用しないということである。 add() の返す値をただ一回しか評価しないのなら、後者のように書いて何の問題もない。 値を何度も評価するのなら、前者のように一時変数に格納する必要があるか、なくても効率がいいかもしれない。 後は単なる好みの問題である。
417 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:41:32 ] 文脈によるがこの場合はどちらでもいい。 ところでこのお題はホントはこうじゃなかった? x = add(n) ; if (x == 1) と if ((x = add(n)) == 1) の比較。
418 名前:デフォルトの名無しさん [2008/06/18(水) 23:42:40 ] >>413 友達はプロではありません 普通に大学生なので… 多分趣味でやってる程度だと思います。 どこで習ったかはわかりませんが
419 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:43:35 ] 値を使い回したい場合に変数に入れるのは当然として、 そうでない場合はメリットとデメリットがあるので好きにすればいいと思うよ。 ○ メリット ・ 関数呼び出しが長い場合、読みやすくなる ・ デバッグ時に戻り値が何だったか分かりやすい ○ デメリット ・ その場でしか使わないような無駄な変数が広いスコープ上に現れてしまう場合もある
420 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:44:20 ] 慣用句的なもの if ((fp = fopen(〜)) == NULL) Is系のメソッドに代表される真偽返却メソッド if (isalnum(〜)) これ以外は大抵分けて書くようにしてるね。 多少冗長に思えても、他の人が読みやすいか、また、 誤解を与えにくい書き方になっているか、それを重視してる。
421 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:55:16 ] 誤解を与えにくいように、というのはあまりメジャーではない二項演算子を 使う時などに、冗長ではあるが、括弧をつけて明示するようなことね。 ちゃんと知ってればその括弧が無くても正しく動作する事は理解できるが、 うろ覚えの人でも勘違いを起こさない。 もしかしたら研修明けの新人がメンテするかもしれないし。