1 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 06:24:18 ] C言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 20 pc11.2ch.net/test/read.cgi/tech/1192455273/ 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 99代目 pc11.2ch.net/test/read.cgi/tech/1194262698/
82 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:49:57 ] >>81 for(;;) { scanf(・・・); printf(・・・); }
83 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:02:25 ] >>82 ありがとうございます。それで指定した数までは終了しないようになりました。 #include <stdio.h> int main(void) { int i, j,a; printf("数を入力して\n"); for (i = 0; i < 10; i++) { scanf("%d",&j); a=5+j; printf("%d\n",&j); } return 0; } 何入力しても結果が3928になるのはなぜなんだろう…
84 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:04:31 ] >>83 a の値を表示させてないからじゃないかな
85 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:04:37 ] > printf("%d\n",&j);
86 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:08:30 ] >>84->>85 迅速なレスありがとうございます。 間違っていました…。 でも今度は結果が3926が出力されるようになりました。 今日手探りで色々入れたので、もしかしたら環境の問題なのかもしれません。 ちょっと色々試してみます。ありがとうございました。
87 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:10:42 ] >>86 printf("%d\n", a); // & はいらない
88 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:32:05 ] struct RGB{ int r,g,b; } という構造体を struct RGB *color; color = (struct RGB *)malloc( sizeof(struct RGB) *10 ); と10個作って、各要素を足して4で割るということを続けていきたいのですが (color[0]+color[1])/4 という感じに、構造体同士を足したりできるのでしょうか?
89 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:36:29 ] >>88 ムリ。
90 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 12:41:57 ] それだと (color[0].r+color[1].r)/4 (color[0].g+color[1].g)/4 (color[0].b+color[1].b)/4 としないといかんわけですか。
91 名前:63 mailto:sage [2007/11/10(土) 13:09:39 ] >>77 お答え頂ありがとうございました。 ずっと悩んでいたので、やっとスッキリすることができました。
92 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:32:08 ] 再帰を習ったのですが理解できなくて、自分なりに、ネットとかで調べて、 再帰の概念は何となく分かったのですが、いざプログラムとなると…。 例えば、構造体を struct node{ int a; struct node *r; struct node *l; }; と定義し、 引数を二分探索木の根のアドレスとし、二分探索木の最小の値を持つ節点の アドレスを返す関数minを作成。 1 struct node *min(struct node *t){ 2 struct node *m = (struct node *)NULL; 3 if(t != (struct node *)NULL){ 4 if(t->l == (struct node *)NULL) 5 m = t; 6 else 7 m = min(t->l); 8 } 9 return m; 10 } と書いてあるのですが、どういう手順で実行されるのかと、7行目で、 なぜ変数に関数を代入してるのかも意味が解りません。
93 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 13:47:26 ] 関数を代入してるんじゃない 関数を実行した戻り値を代入しているんだ
94 名前:92 mailto:sage [2007/11/10(土) 14:28:06 ] >>93 レスありがとうございます。 関数を代入しているわけではなく、関数の戻り値を代入しているのですね。 なぜ、戻り値を代入しているのですか? 3行目は、二分探索木の有無の判定で、無い場合は、そのままNULLを 返して終了。 4〜5行目は、左部分木が無ければ、根が最小値なので、最小値の節点の アドレスを入れる変数であるmに根のアドレスであるtを代入して、 それを返して終了。 なので、7行目以外は解るのですが、7行目はどういう処理をしてる のですかね?
95 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 14:35:53 ] >>94 tがNULL→NULLを返す t->lがNULL→tが最小なのでtを返す それ以外→t->lから始まる二分木で最小の物を返す ok?
96 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 14:42:11 ] ○ ○┘└○ ○┘○┘└○ ○┘ ・・・┘└・・・ ○┘
97 名前:92 mailto:sage [2007/11/10(土) 15:24:02 ] >>95 はい、そこまでは解っています。どういう処理と言うか、tがNULLでなく、 t->lもNULLでない場合にどういう手順で動いてるかが解らなくて。 tがNULLでなく、t->lもNULLでない場合を考えたとして、 >>96 さんの図で言えば、一番左下に位置している○が最小ですよね。 そして、一番左下の○まで来て、さらに再帰呼び出しをすると、 3行目のif(t != (struct node *)NULL)で条件に一致せずに、 9行目のreturn m;に進んで、ここで、どうなるんですか? 2行目でstruct node *m = (struct node *)NULL;としているので、 戻り値は、このアドレスになって、7行目のm = min(t->l);で、mに 代入しても、最小値のアドレスになりませんよね…
98 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 15:44:58 ] >>97 if(t->l == (struct node *)NULL) に引っかかって m = min(t->l); が実行されずに m=t が実行されるので if(t != (struct node *)NULL){ が偽になるのは再帰ではなく外から呼び出した場合だけ
99 名前:92 mailto:sage [2007/11/10(土) 16:00:46 ] >>98 確かに一番左下を再帰呼び出しした時に、 if(t->l == (struct node *)NULL)にひっかかるので、 一番左下の○まで来て、さらに再帰呼び出しされる事は、ないですね。 となると、 if(t->l == (struct node *)NULL) に引っかかって m=t が実行されて、 次は return m; ですよね? このreturn m;で、メイン関数に返されて終了ってことですかね? それだと、 m = min(t->l); じゃなくて、 min(t->l); で十分じゃないですか? 何のために、m = min(t->l);としているのですか?
100 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 16:19:20 ] 自分で考えてみたんですがちょっと分からないので 教えてください。 学校でユークリッドの互除法によって最大公約数を出すプログラムを 作ったんですが、これは2つの数の最大公約数を求めるものですよね。 もし3つとか6つとかの数の最大公約数を求めるんだったらどうプログラムするのが 一番なのでしょうか?ユークリッドを工夫すれば出来るでしょうか。
101 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 16:22:55 ] >>99 メイン関数に返るのではなく呼び出した関数の呼び出した位置に返るのだよ つまりmin(t->l)が実行されたあとにその戻り値がmに代入されてreturn mで戻り値となりそれが更に・・・ てな具合で呼び出した順を逆にたどるために各階で戻り値を返す必要があるわけだ
102 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 16:26:51 ] >>100 数学板の方が適切だと思われ。
103 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 16:40:34 ] >>100 まさかとは思うけど、複数の数の最大公約数の求め方を知らないという話じゃないよね? ユークリッド互除法より最適なアルゴリズムはないのか、という話だよね?
104 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 16:58:45 ] >>100 int gcd(int a, int b); // 引数で与えられた2数の最大公約数を返す関数 があるとして gcd(a, gcd(b, c)); なら…
105 名前:92 mailto:sage [2007/11/10(土) 17:34:55 ] >>101 なるほど、だからm = min(t->l);と言う様にmに代入しているのですね。 完全に理解できました。 アドバイスして下さった方、本当にありがとうございました。
106 名前:デフォルトの名無しさん [2007/11/10(土) 21:13:15 ] 等比数列の和の求め方のソースコードを載せてください。(初項a,公比r,項数nとする)
107 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:20:43 ] それは宿題スレ向き 分投げじゃなくて、少しは考えよう
108 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:21:23 ] >>106 丸投げは宿題スレへ pc11.2ch.net/test/read.cgi/tech/1194262698/l50
109 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 21:52:01 ] void foo( double* yuv, double* s1, double* w1, unsigned int size, unsigned int inc ) { int i; for ( i = 0 ; i < size / 2 ; i++ ) { double d0 = *yuv; double d1 = yuv[inc]; *s1 = ( d0 + d1 ) * sqrt( 2 ) / 2; … すいません、初歩的な質問なのですが double yuvは1次元のポインタなのですが double d0 = *yuv; double d1 = yuv[inc]; のd0が何をやっているのか教えてください。 1次元の配列で *yuvとしたときに、どこを指しているのかわからなくて
110 名前:デフォルトの名無しさん [2007/11/10(土) 22:13:24 ] 等比数列の初項a,公比r、項数nをキーボードから入力して、 それらを画面に表示して最後にそれらの総和を表示する。 ただしa,rは実数値とする。
111 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:17:07 ] >>109 *yuv は yuv[0] と同じ意味
112 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:22:48 ] yuv[0] = *(yuv + 0) = *yuv
113 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:31:13 ] >>111-112 ありがとうございます。理解できました。
114 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:54:23 ] 2^(3/2)って関数でかくとどうなりますか? 2^(1/2)や3^(1/2)なら sqrt(2.0)やsqrt(3.0)だとわかるのですが。 pow( sqrt(2.0),3 )になるのでしょうか?
115 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:55:49 ] pow( 2.0, 1.5 );
116 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:55:52 ] 素直にpow(2, 3 / 2)でよろしかろ。
117 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:56:53 ] そのままで良かったんですねw ありがとございます
118 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:56:54 ] いいえ
119 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 23:57:15 ] おっといけねぇ。pow(2, 3. / 2)だね。
120 名前:デフォルトの名無しさん [2007/11/11(日) 00:19:30 ] FFTで振幅が正確に得られないときはどうするの? numerical recipeのコード使ってるんだけど、 同じ振幅で別周波数の時系列入れてもスペクトルの 大きさが違うんです。 周波数の適当なビンで積分しても違いがあるどうしてかな。 コードはいじってないよ。
121 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 00:28:07 ] >>120 入力波形を正弦波にしてサンプリング周波数の 1/(2^n) にしてもそうなる?
122 名前:デフォルトの名無しさん [2007/11/11(日) 01:55:42 ] 超初心者な質問だけど、よろしく。 俺は情報科の1年なんだけど、 大学でやってるCを自宅でもやりたいと思ってるんだけど、 そういうのを自宅でやるのはどうすればいいの? できれば無料でやりたいんだけど、 そんなソフトをインストールすればいいのか教えてください。
123 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 01:58:27 ] 学校で使ってるOSとかコンパイラは何?
124 名前:122 [2007/11/11(日) 02:02:02 ] >>123 OSはXPです。 コンパイラ・・・ってなんだろ? emacsとかktermとか使ってますけど。
125 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:05:55 ] コンパイラはソースコードから実行ファイルを作るプログラム
126 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:07:08 ] そのレベルで環境構築は無理だよ。素直に学校の先生に聞いてみよう。
127 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:08:38 ] >>124 gccは使ってる?
128 名前:122 [2007/11/11(日) 02:28:58 ] すみません、やっぱり今の俺には 自宅で環境整えるのは難しいみたいですね・・・。 今度聞いてみます。 こんな時間にありがとうございました。
129 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:37:20 ] いや、やること自体は難しくないよ。先生に聞けば普通に解決すると思う。
130 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 02:41:18 ] >>128 学校と同じものを揃えたいんでしょ? とりあえず学校で何を使ってるかを調べるだけでおk
131 名前:デフォルトの名無しさん [2007/11/11(日) 03:25:58 ] これってどこがダメなんですかね? 0が出力されてしまいます… 初心者ですみませんがよろしくです. #include <stdio.h> main() { int i, k, sum; sum = 0; do{ printf("正の整数kを入力して下さい:"); scanf("%d", &k); }while(!(k>0)); for(i = 1; i > k; i++){ sum += i*i*i; } printf("kまでの自然数の3乗の和は%d", sum); }
132 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 03:28:54 ] >>131 i に注目。
133 名前:デフォルトの名無しさん [2007/11/11(日) 03:34:37 ] >>132 レスありがとうございます. でも,ちょっとわかんないです^^
134 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 03:37:53 ] >>133 そういうときには、取り敢えずsumを更新した次の行に(その下にある)printf()の行をコピーしてみよう。 それを実行しても未だ問題点が見つからないようなら、きっと注意力不足か適正不足だと思うよ。
135 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 03:58:31 ] >>131 不等号の向きが逆。
136 名前:デフォルトの名無しさん [2007/11/11(日) 04:03:45 ] >>134 レスありがとうございます. sum += i*i*i; の下にprintfを入れてみたけど,そこの分のprintfが実行されてなさそう… ってことは,for自体が実行されてないんですかね?
137 名前:デフォルトの名無しさん [2007/11/11(日) 04:24:04 ] 若干スレ違いかもしれないですが・・・ Borland C++ Compiler 5.5 Borland Turbo Debugger 5.5 BCC Developer を使ってC言語を勉強してるのですが、最近BCC Developerがよくバグります。 プログラムはちゃんと書けてるのに、いざコマンドプロンプトを開くと「問題が発生したため〜〜を終了します。」 と出てきて、そこで終わってしまいます。 こういうのって開発環境を変えた方が良いんでしょうか??
138 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 05:05:52 ] コマンドプロンプトを開いて何をしたらそのエラーが出る? コマンドプロンプトを開くだけで出るならBCCは関係ないが。
139 名前:137 [2007/11/11(日) 05:36:06 ] >>138 レスありがとうございます。 コマンドプロンプト開くだけなら全然大丈夫なんですが 長時間(っていっても2時間とかそんなもん)プログミングしてるとよくエラーになります。 同じプログラムでもちゃんと出力できるときとそうでないときがあっていまいち原因が分からないです。
140 名前:137 [2007/11/11(日) 06:21:33 ] ごめんなさい。自己解決できました。
141 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 10:01:08 ] >>136 そのとーり。>>135 も指摘しているが、for文の条件判断のところの意味をよく理解しておくこと。
142 名前:デフォルトの名無しさん [2007/11/11(日) 10:03:44 ] >>121 >入力波形を正弦波にしてサンプリング周波数の 1/(2^n) にしてもそうなる? はい。純粋に周波数がf,f1,f2...の正弦波をFFTにかけています。 規格化の方も分かってます。
143 名前:86 [2007/11/11(日) 11:13:09 ] 昨日質問した者ですが、やはり足し算などをすると出力がおかしいみたいです。 このようになるのですが間違っている部分ありますか? www.imgup.org/iup500370.png 宜しくお願いします。
144 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 11:17:49 ] >>143 printf("%d\n", d); // & いらない
145 名前:86 mailto:sage [2007/11/11(日) 11:21:45 ] >>144 昨日も同じレスもらってたのに気付きませんでした…。 今やったらできました。「&」でしたか… ありがとうございました!!
146 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 11:44:53 ] 市ねよ &d
147 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 11:53:20 ] >>135 >>141 レスありがとうございました. forの条件判断は,反復の終了条件ではなく,継続条件なのですね. つまり,その条件が偽になったら終了と. つまらない質問に答えていただき,ありがとうございました.
148 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 13:19:24 ] ちょっと質問させてください。3つの数の最大公約数を 求めるプログラムしてたんですが、下記のこれでもいけますかね? #include<stdio.h> #include<stdlib.h> #define n 3 int main(void { int kazu[n]; int i=0, c,num; while(i < n){ printf("入力 %d < ", i+1); scanf("%d", &kazu[i]); i++; } for(i=1; i< n; i++){ while(kazu[i] != 0){ c = kazu[i]; kazu[i] = kazu[0] % kazu[i]; kazu[0] = c; } } printf("gcd = %d\n",kazu[0]); return 0; }
149 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:18:26 ] 被って申し訳ありませんが質問させてください #include <stdio.h> #define INPUT_CNT 3 int main(void) { int num[INPUT_CNT]; int cnt; for(cnt = 0 ; cnt < INPUT_CNT ; cnt++) { printf("Input number%d : ",cnt+1); scanf("%d",&num[cnt]); } printf("("); for(cnt = 0 ; cnt < INPUT_CNT ; cnt++) { printf("%d +",num[cnt]); } printf(")"); printf("\n"); return 0; } 出力結果 Input number : 10 Input number : 20 Input number : 30 (102030) ↑102030の間に+を表示させるにはどうしたら良いですか?
150 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:23:40 ] 初歩的な質問ですみません。 printfの変換仕様のフィールド幅の部分をマクロで 置き換えたいんですが、方法はありますでしょうか? printf("値: %05d\n", number); を、 define FIELD 5 printf("値: %0FIELDd\n", number); といった感じに。(↑上手く動作しません。)↓はコンパイルできませんでした。 printf("値: %0"FIELD"d\n", number); ちなみに、コンパイラはgccです。よろしくおねがいします。
151 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:26:59 ] >>149 僕がやったところ、下記のような出力結果になってますよ。 Input number1 : 10 Input number2 : 20 Input number3 : 30 (10 +20 +30 +)
152 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:27:08 ] >>150 printf("値: %0*d\n", FIELD, number); でいけたかと
153 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 15:29:56 ] >>152 いけました! ありがとうございます!!
154 名前:149 mailto:sage [2007/11/11(日) 16:50:50 ] >>151 あっそうなんです どうしても+が一つ多くなってしまうんですが (10 +20 +30) こういうすっきりした形にしたいんですが・・・
155 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:53:28 ] for(cnt = 0 ; cnt < INPUT_CNT - 1 ; cnt++) printf("%d +",num[cnt]); printf("%d", num[cnt]);
156 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 16:53:53 ] for(cnt = 0 ; cnt < INPUT_CNT ; cnt++) { if(cnt>0){ printf(" +"); } printf("%d",num[cnt]); } これでいいんじゃない
157 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:18:52 ] おすすめできないが、こういう書き方も。 for(cnt = 0 ; cnt < INPUT_CNT - 1 ; cnt++) { printf("%d + ",num[cnt]); } printf("%d",num[cnt]);
158 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 17:21:12 ] ループの中に無駄な分岐突っ込むよりは、はるかにマシだろ。 まぁ、155が見えないバカにはわからないだろうが。
159 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:03:37 ] VC++2005EE の ^Z の問題は結局どうなったの?
160 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 18:09:45 ] >>154 もっとおすすめできないが、 return文の2行上のprintf文をこうするとか。 printf("\b)"); \bってのはカーソルを1文字戻すエスケープシーケンスね。
161 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 19:22:26 ] 関数定義で bool hoge(int array[const]) { ... } とやっても良いらしいのだけれど array[const]ってどういう意味の配列になるの?
162 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 19:26:19 ] mainから整数型の配列受け取るだけじゃね?って思ったら受け取る時は普通ポインタ使う品
163 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 19:52:40 ] >>161 bool hoge(int * array)と全く同じ。 >>162 何故main限定?w >>160 お勧め云々以前にダメすぎ。
164 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:03:14 ] >>163 bool hoge(int * const array) というわけでもない?
165 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:07:38 ] 67です 遅くなりましたが、レスさんくすです >>69 VisualStudioは残念ながら所有していません ExpressEditionで試してみます >>71 どうもです 面白そうですね 試してみます その他にも知り合いのJava使いからOpenGrokなるツールを紹介してもらいました これらを参考に仕事がんばらせていただきます どうもありがとうございました
166 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:17:56 ] >>161 >>163 int *const arrayと同じ。 C99から導入された書き方。
167 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:28:30 ] >>166 サンクス。C99からだったか・・。 どうりでわからんわけだ。C99の資料も欲しい。
168 名前:デフォルトの名無しさん [2007/11/11(日) 20:51:19 ] コボルはデータを読み込んで演算させて吐き出すことが主ですがC言語はどうですか また、実務で使われている開発環境はVC++ですか、ボーランドのやつですか エクリプスですか
169 名前:149 mailto:sage [2007/11/11(日) 21:53:42 ] 「-」を入れると出来るんですね 本当にどうもありがとうございました
170 名前:デフォルトの名無しさん [2007/11/11(日) 21:54:20 ] 一時停止させる関数とそのヘッダファイル教えてください
171 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:59:29 ] 何を一時停止?
172 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:00:21 ] >>170 sleep()でググってみそ。
173 名前:デフォルトの名無しさん [2007/11/11(日) 22:00:35 ] while(){ printf("hoge"); 0.5秒待つ ←これを実行するための関数とヘッダファイルです }
174 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:02:10 ] putc(' ', NULL); //stdio.h
175 名前:デフォルトの名無しさん [2007/11/11(日) 22:02:45 ] >>173 システムに依存する。
176 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:04:58 ] >>173 windows.h Sleep(500);
177 名前:173 [2007/11/11(日) 22:06:23 ] ありがとうございます
178 名前:デフォルトの名無しさん [2007/11/11(日) 22:25:26 ] >>172 ゲイツに聞こうぜ あんだけ話題になったんだし matome.info/HatsuneMikuImageSearch/
179 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:46:32 ] 最近初めたばかりなんですが int double floatについて教えてください。 int型は整数型ということを調べていてよく見たのですが int a=0.5 や int b=0.00000005 でもエラーが出ません。 また、範囲が狭いということが書いてあったのですが int a=1234567890 と大きい値を入れても大丈夫でした。 どれくらい大きい値まで大丈夫なのでしょうか。 それと小数点を扱うときはdouble と floatを使うとあったのですが 二つの違いもよくわかりません お願いします
180 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:50:35 ] >>179 www.aso.ecei.tohoku.ac.jp/~yoshi/C/double.html
181 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:52:33 ] そこには普通floatって書いてあるけど、 実際には理由がなければdoubleを使うのが普通。
182 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:59:55 ] >>179 浮動小数点なのでfloat (↑1.1346*10^5とか) doubleは倍精度(おもに小数部分が)なので