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


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

C言語なら俺に聞け(入門篇) Part 54



1 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 20:41:54 ]
C言語の*入門者*向け解説スレッドです。
初心者、初級者の方は他の質問スレのほうが良いかもしれません。

教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 130代目
pc12.2ch.net/test/read.cgi/tech/1250204272/

・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
・開発環境や動作環境も晒すと答えが早いかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 53
pc12.2ch.net/test/read.cgi/tech/1253110182/

過去スレ
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

324 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 19:45:39 ]
>>323
作るよ。
問題解決のためにふつーにプログラミングできるようになって一人前。

325 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 19:48:35 ]
自分だけの環境を構築するなら、プログラミング必須だろ。

326 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 19:55:48 ]
>>321
偶然だけど、俺はShift-TABにdabbrev-expandを割り当ててる。
実際には、範囲選択中は別動作になるように、
wiki.livedoor.jp/kogo77/d/xyzzy%A4%CE%C0%DF%C4%EA
にしてるけど。

IDEの方が、意味を考えながら補完してくれるという意味でずっと便利なんだけど
同じキーを繰り返すだけで選択できて、かつ他のキーを使わずに確定して
そのまま先の入力に進めるのがなかなか。

327 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 06:28:52 ]
float型の配列のソート方法が分からなくて困っています.

配列の数は9個で,降順,昇順どちらでも構いません.
中身は,float f_hairetu[9] = {145.20, 55.32, 33.20, 55.55, 348.99, 12.01, 1.29, 88.29, 0.98} などのデータが入っています.


328 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 07:52:05 ]
qsortつかえば

329 名前:デフォルトの名無しさん [2009/10/14(水) 08:14:38 ]
ソースファイルから、
 define、グローバル変数、関数名
などなどの情報を抜き出して一覧化してくれるフリーソフトがありましたら教えてください。


330 名前:デフォルトの名無しさん [2009/10/14(水) 08:34:12 ]
doxygen

331 名前:327 mailto:sage [2009/10/14(水) 09:18:10 ]
>>328
ありがとうございます。qsort関数は、検索してint型のソートなら良さげなサンプルが見つかったのですが、float型のものは見つからず仕様も良く分からなくて困っています。

332 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 09:57:31 ]
int compare(const void *p1, const void *p2) |
 float f1 = *(float *)p1, f2 = *(float *)p2;
 if (f1 == f2)
  return 0;
 return f1 > f2 ? -1:1;
}
int main() {
 float data[] = { ... };
 qsort(data, sizeof(data)/sizeof(data[0]), sizeof(data[0]), compare);
 ...
}



333 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:01:23 ]
まあそれだとNaNが含まれてるときソートできないな


334 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:04:10 ]
NaNとかなる

335 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:17:48 ]
NaNってC言語の比較内で判定できるのか

336 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:31:07 ]
C99ならできる

337 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:36:07 ]
C99なら △
C99では ○
C99においては ◎

338 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 10:45:48 ]
>int型のソートなら良さげなサンプル
2項を引き算してたりしてw

339 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 11:05:31 ]
>>337
それは意味が変わっているだろ。

「C89ではNaNを正しく扱えないが、C99において*なら*できる」
の省略としての「C99なら」なのだから「なら」を取ってしまってはいけない。

340 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 11:52:04 ]
>>339
素直にC89ではできないと述べれば良い

341 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 12:02:42 ]
>>340
C90わすれてますよ

342 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 12:11:15 ]
sizeof(long)==sizeof(float) なら、これでも比較できる

int float_compare(const void *a, const void *b){
const long *p, *q;

p=a;
q=b;
if(*p<*q) return -1;
if(*p>*q) return 1;
return 0;
}



343 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 12:15:55 ]
floatのときとlongのときとで大小関係が一致することは確実なの?

344 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 12:30:58 ]
float のフォーマットに依存しないかい?
IEEE754 だと、上位から 符号 指数部 仮数部 の並びだけど… うまくいくのかな?

345 名前:デフォルトの名無しさん [2009/10/14(水) 12:35:08 ]
10分置きに実行するってのは
Sleep(600000);でいいの?

346 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 12:44:10 ]
だめ
それだと10分+αになる
αの長さは不定

347 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 13:44:10 ]
>>342-343
駄目に決まってるだろ

348 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 13:48:02 ]
ソート順なんでもいいみたいだからいいんじゃね
処理系依存の何らかの順番でソートされるであろう

349 名前:デフォルトの名無しさん [2009/10/14(水) 13:53:59 ]
大小関係に矛盾があると未定義の動作だぜbaby

350 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 14:47:41 ]
>>349
数値としての大小関係に一致するかはともかく、
大小関係を定義するcompare関数としての動作に矛盾はないかと?

351 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 14:57:51 ]
>>349
compare(p1,p2) が 正の値を戻すとき
compare(p2,p1) が負の値を戻さないのなら そうだろうね

352 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 19:46:18 ]
#define TEST 1
#define TEST2 2
#define TEST3 3

こんなことをして
プログラムの中で、TEST3 を使ってみたのですが
期待通りTEST3は3に置き換えられていました。

ふと、TESTは1に置き換えられるから、TEST3は13になったりしないのかと
思ったのですが、なぜ大丈夫だったのでしょうか?



353 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 19:47:57 ]
>>352
識別子単位だから

354 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 19:52:54 ]
cppはちゃんと考えて置換してくれるんだよ

355 名前:デフォルトの名無しさん [2009/10/14(水) 20:12:08 ]
今まで色んなライブラリを作ってきたんだけど、それらの機能を統合したライブラリを作りたいんだ。
でも、ただ一緒にしようとしたら、.libファイルが無駄に多くなって使いづらくなっちゃって…
この多くの.libファイルを一つの.libファイルにまとめたいのだが、何か方法はないかな?

開発環境はVisual Studio 2008 (Visual C++)で、出来れば嬉しい。
前作ったプロジェクトは、ライブラリが完成した後にHDDの整理で消してしまってるから、もうないんだ。

356 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 21:46:36 ]
>>352
1パスだから

357 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:32:48 ]
codepad.org/4MYhy9xF
教科書どおりに書いたらエラー出やがった。
マジ糞だろ俺の頭

ちなみに作りたいものがあってかなりすっ飛ばしたため
自分でも意味がわかっておりません。

誰か解説してください

358 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:38:01 ]
>>357
教科書のタイトルと、今使ってる処理系の名前かけよ

359 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:42:57 ]
>>357
どんなエラーが出たのかも言わずに解説しろとな?
codepadのエラーからエスパーすると「conio.hが無い」ってエラーが出てるじゃんとしか言いようがありません。


360 名前:357 mailto:sage [2009/10/14(水) 23:46:09 ]
よっしゃ
教科書
「すぐわかるC/C++」塚越一雄

エラー
「error C3861: 'get_charset': 識別子が見つかりませんでした」

ちなみに環境はvisualc++2008exedition

361 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:48:12 ]
知らんけど、本のどこかにget_charsetの定義あるだろ。探せよ

362 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:50:11 ]
そうだね、飛ばすという発想がそもそも間違っていたと反省中。
地道に勉強します



363 名前:デフォルトの名無しさん mailto:sage [2009/10/14(水) 23:53:14 ]
飛ばすとかじゃなくてコピペしてくるコードが足りないだけだろうが……

364 名前:デフォルトの名無しさん [2009/10/15(木) 00:21:28 ]
C++ スレの二の舞か
答えない奴は説教もするな

365 名前:デフォルトの名無しさん [2009/10/15(木) 00:24:13 ]
整数値を入力してください:33

3-->6-->9-->12-->15-->18-->21-->24-->27-->30-->33-->

って感じのプログラムを書かないけないんだが誰か教えてくれ。
for?とかなんかそういうのを使ったりしてるんだが全くできねえ。
33ってのは入力した数で、その入力した数までの三の倍数が表示されないといけないらしい・・・



366 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 00:25:26 ]
>>365
そんな事は無いよ、表示されなくていいよ。

367 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 00:32:41 ]
宿題なら宿題スレへ

368 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 00:45:40 ]
ふつーに、
3から始めて、33以下である間、3ずつインクリメント

369 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 01:09:42 ]
最近の小学校ってこんな高度な授業があるのか。
大変だな。

370 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 01:10:49 ]
マイクロソフトロックされるのですがどうしたらいいでしょうか?

371 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 01:11:13 ]
scanf("%d",&a);

a = a/3;
for(b=1;b<=a;b++){
printf("%d-->",b*3);
}

372 名前:デフォルトの名無しさん [2009/10/15(木) 01:24:49 ]
できたぜ!
まさか答えてくれる人がいるとは・・・
本当にありがとうございます!!!



373 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 01:37:52 ]
int i, n;
scanf("%d", &n);
for(i=3; i<=n; i+=3) printf("%d-->", i);

374 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 01:57:02 ]
setvbuf()ってどういうときに使うの?

375 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 01:59:57 ]
>>374
man setbuf

376 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 03:13:49 ]
>>375
vが抜けてる?

377 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 07:13:23 ]
基本の教科書の内容をクリアして、応用に入るためのわかりやすい参考書あったら教えてください。

378 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 08:13:42 ]
何に応用しようとしてるのかが分からないと、勧めようがない。

379 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 10:01:40 ]
>>376
あってるだろ

380 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 13:37:14 ]
specificationとusageは別物だと思うが

381 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 19:27:54 ]
>>378
特に無いんですが、もっとCに詳しくなりたくて・・・

382 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 19:35:20 ]
>>381
オラ入りでも買っとけ



383 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:01:53 ]
>>381
実際に何かソフトを作ってみれば自然と詳しくなる
何か便利なツールが欲しくなったとき、誰かが作ったフリーウェアを探すんじゃなくて自分で作ることをまず考える

384 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:18:14 ]
CではCPUをOCするソフトは作れないんですよね?

385 名前:デフォルトの名無しさん [2009/10/15(木) 23:31:29 ]
ちょっとハードいじる必要があるが不可能ではない

386 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:38:37 ]
そうんですか。インターフェースって雑誌でそれが出来ないのがCの弱点みたいなことが
書いてあったんで。まだレベル的に意味がよく分からないんですけど

387 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:44:20 ]
その雑誌だとどの言語ならそれができると書かれていたの?

388 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:45:43 ]
Pascalです

389 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:46:04 ]
いや、C入門の特集だったんで。大学の図書館のやつで
まだ組み込みはやる気ないんでちゃんと読んではいないです

390 名前:デフォルトの名無しさん mailto:sage [2009/10/15(木) 23:48:07 ]
コンピュータの中、ソフトウェアのレベルでは何でも出来るんだけどって話かな。
個人的にはC言語で飯が炊ければと・・・

391 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:03:44 ]
最近のOCって、BIOSで設定変えるだけだったりするよね。
昔はハード的に別クロック入れてたけど。

392 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 00:33:00 ]
正確にはOCとは書いてなかったんですけど、たぶん>>390みたいな話だと思います



393 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 01:43:09 ]
Pascalだとできるというのがよく分からんのだけど、まあそうなんでしょう

394 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 01:53:32 ]
>>388は違う人です

395 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 07:13:35 ]
>>390
炊飯ジャーのプログラムはCだっったりするんじゃないの


396 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 08:27:03 ]
>>395
現状自分でプログラムできないよねってこと。
外出先から携帯でもつかって、自宅の飯の支度ができたら楽だと思うんだ。

397 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 08:37:53 ]
おいしく炊くのは難しいかもしれないけど、
ちょっと古いタイプの炊飯器なら個人でも制御できると思うよ
高校の時にポケコンで制御してるやつがいた

398 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 09:10:21 ]
「CPUをオープンコレクタする」って何じゃい、と一瞬考えてしまった。

399 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 09:38:21 ]
cosの計算をするプログラムなんですけど
#include <stdio.h>
#include <math.h>

main(){


double a,b;


scanf("%lf",&a);
b=cos(a);
printf("b=%lf",b);

}
正確に計算してもらえません
どこがいけないのでしょうか?

400 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 09:49:13 ]
>>399
単位が何なのかわかってないだろ

401 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 10:41:45 ]
>>399
取り敢えず、0を入れたら1が出力されるのは確認した?

402 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 12:49:08 ]
正確じゃないのは仕方ないよ



403 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 13:27:30 ]
何を入力して何を期待して何が出力されたのかくらい書けよ

404 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 13:35:48 ]
>>396
Cだとそれができないというのは変な話だな

405 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 13:46:09 ]
炊飯器のボタンの上にアームをつけてそれを制御すればいいじゃん

例のジョークRFCを実装したコーヒーポットとかそんな感じだろ

406 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 13:51:24 ]
ぐぐったら 本当に実装してるのなw

RFC ttp://www.studyinghttp.net/cgi-bin/rfc.cgi?2324
実装 ttp://alpha.mixi.co.jp/blog/?p=386

407 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 13:56:43 ]
良く読むと HTCPCP準拠の実装じゃなかった

408 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 14:17:42 ]
◆宣伝、広告◆
腕に自信のあるプログラマは、以下のコンピュータ大富豪大会に参加しましょう。

ひろゆき杯コンピュータ大富豪大会
uecda.nishino-lab.jp/2009/


○What's UECda?

大貧民(または大富豪)は、我が国で最もポピュラーなトランプ・ゲームのひとつでしょう。
このゲームは、1960年頃に日本で生まれたと言われており、海外では、ほとんどプレイされていないようです。
本大会は、その日本固有の人気トランプ・ゲームである大貧民を、人が直接プレイするのではなく、
プレイするコンピュータ・プログラムを作成して持ち寄り、対戦させる大会です。

主催

電気通信大学

409 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 14:37:38 ]
でたらめ言うな
中国でも有名なゲームだ

410 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 16:27:54 ]
ふつう海外に中国は入らない

411 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 16:57:48 ]
>>401
したよ
πいれても1になっちゃったけどね
ほかにもπ/3なんかも1になる

412 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 17:03:19 ]
πを3.14・・・にしたらなんかできました
なんでπだとだめだったんだろう



413 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 17:05:22 ]
( ゚д゚)ポカーン

414 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 17:30:33 ]
なるほど、数値入力の場面で「π」を入力したのか。
んで、たまたまaの初期値が0だったから1になったんだな。
当然、「π/3」を入れても同じ結果なわけだ。

415 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 18:28:32 ]
PIと入れればよかったのに

416 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 18:29:26 ]
scanfが数式を勝手に変換してくれると思ってたのか

417 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 18:35:22 ]
>>415
お前はなにを言ってるんだ

418 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 18:40:26 ]
まあ言いたいことは分かるけどね…

419 名前:デフォルトの名無しさん [2009/10/16(金) 19:46:51 ]
>>414
クソワロタ

420 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 20:42:20 ]
int i = 3;
このとき
i=i+1;やi++;や++i ;
の意味は分かっていますが、
i = i++;
は未定義の動作になるのですね。
i = ++i;
はどうでしょうか?
これも未定義の動作になりますか?



421 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 20:54:13 ]
未定義です。

422 名前:デフォルトの名無しさん [2009/10/17(土) 00:03:50 ]
ポインタを勉強中なんですが、voidポインタに一度格納したlong値を
表示するにはどうやれば良いのでしょうか。
下記例ではコンパイルが通りません。

long a = 10;
void *p = &a;
printf("%f", *p);



423 名前:デフォルトの名無しさん [2009/10/17(土) 00:05:29 ]
ポインタを勉強中です。
voidポインタに格納したlong値を表示するにはどうやれば良いのでしょうか。
次の実装ではエラーが起きてしまいます。

long a = 3.14;
void *p = &a;

printf("%f", *p);


424 名前:デフォルトの名無しさん mailto:sage [2009/10/17(土) 00:11:46 ]
>>423
printf("%ld", *((long*)p));







[ 続きを読む ] / [ 携帯版 ]

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

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