- 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/
- 72 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:30:59 ]
- >>71のは>>67へ向けたもの
- 73 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:59:10 ]
- 構造体に不定の配列を定義して、後で配列の最大値を設定するにはどうしたらよいでしょうか?
例えば… struct{ foo[] }; で、配列の使用時に foo[bar]; (barは最大値) という風にしたいのですが… それとも構造体の定義時にあらかじめ余裕をもって配列を定義してしまう方がいいですか?
- 74 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:15:34 ]
- malloc。
良く分からないなら、あらかじめ定義した方が良いだろうね。
- 75 名前:デフォルトの名無しさん [2007/11/10(土) 01:23:53 ]
- >>67
秀丸エディタにそういう機能あるよ。
- 76 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:48:32 ]
- >>74
ありがとうございます。 正直よくわからないので、助言どおり余裕を持って最初に定義してしまうことにします…すんません。
- 77 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 05:16:10 ]
- >>63
for(i = a;i >= 1;i--){ for(j = a - i;j > 0;j--) putchar(' '); for(j = i * 2 - 1;j > 0;j--) putchar('*'); putchar('\n'); } 最初のをfor(i=1;i <= a;i++)で上下反転。
- 78 名前:デフォルトの名無しさん [2007/11/10(土) 10:33:24 ]
- こんな図形をFor文で作れといわれたんですが・・
まったくワカリマセン(´・ω・`)・・どなたか助けてください ↓こんなの *** ** *
- 79 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 10:39:04 ]
- >>78
宿題スレ池 #include <stdio.h> #define N 3 int main() { char i, j; for (i = 0; i < N; i++) { for(j = N; j > i; j--) { printf("*"); } printf("\n"); } return 0; }
- 80 名前:78 [2007/11/10(土) 10:43:36 ]
- >79さん
ありがとうございます そうさせていただきます・・w
- 81 名前:デフォルトの名無しさん [2007/11/10(土) 11:47:01 ]
- 質問です。
今C言語の勉強をしていて、Cpadというエディターで書いたあとにコンパイルして 実行ボタンを押して実行しています。 コマンドプロンプトが表示されて、処理が実行されますが一回で終わってしまいます。 例えば「ある数をscanfして、それに2を加えた数をprintfする」というプログラムのとき 結果が出力されたあとに、またscanfに戻るって何度もプログラムを続けることってできないですか? 説明下手ですが、宜しくお願いします。
- 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()でググってみそ。
|

|