- 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/
- 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だぞ。目は大丈夫か?
|

|