11/02/10 00:11:53
>>340です。
C言語初心者質問総合
スレリンク(pc2nanmin板)
誰かが↑にコピーを張り付けていますがこれ私じゃないです。
だれですか orz
342:デフォルトの名無しさん
11/02/10 00:17:07
マルチすんなボケ
343:デフォルトの名無しさん
11/02/10 00:20:30
許せんな
344:デフォルトの名無しさん
11/02/10 00:21:11
許せんよ
345:デフォルトの名無しさん
11/02/10 00:23:27
>>341
自分でしたくせに
346:デフォルトの名無しさん
11/02/10 00:26:45
あわよくばそっちのスレで答えを得ようとしたんだな
347:デフォルトの名無しさん
11/02/10 00:36:11
うむ
348:デフォルトの名無しさん
11/02/10 01:18:17
基本挿入法のソートのステップについてお聞きしたいのですが
3 2 4 5 1を小さいものから並べる時に
i j p ←コレ
3 2 4 5 1
ってなんですか?
349:デフォルトの名無しさん
11/02/10 01:28:26
エスパーさん出番です
350:デフォルトの名無しさん
11/02/10 01:51:00
>>324
俺の家、エグゼクティブあばら家って名前がついてるよ
351:デフォルトの名無しさん
11/02/10 01:55:56
マジレスでお願いしますが、C言語使ってると有利になる仕事ありませんか?
どうせ技術だけもっていて知恵がないと何をやっても中途半端に終わるという
意見は無しでお願いします。
今は学生なんでアルバイトでもいいです、何か有利なことありますか?
ゲーム作って売るとかどうでしょう?
352:デフォルトの名無しさん
11/02/10 02:00:32
え?
353:デフォルトの名無しさん
11/02/10 02:05:34
>>340 != >>341-347(自演)
だなたぶん。
354:デフォルトの名無しさん
11/02/10 02:06:31
>>348
それ基本挿入法じゃないんじゃない?
挿入ソートなら変数は 3 つも要らないと思われ。
i : 調査対象となっている位置
j : 比較対象となっている位置
で十分かと。
355:デフォルトの名無しさん
11/02/10 02:06:45
>>351
Cを使う仕事でないとだめ?
Cをちゃんと理解できてるかどうかはその人の素養をみるためのいいバロメーターになるけれど。
356:デフォルトの名無しさん
11/02/10 02:08:56
だめ
357:デフォルトの名無しさん
11/02/10 02:09:51
C言語を使う仕事で、C言語を使えることは何も有利に働かないよ。
358:デフォルトの名無しさん
11/02/10 02:10:38
『C だけ知っている学生がお金を稼ぐ道はあるか』という命題で良いのかな
Java だけ、JavaScript だけ、PHP だけ、Perl だけ、Objective-C だけ
とかならありそうなんだけど、C かあ・・・
359:デフォルトの名無しさん
11/02/10 02:12:01
一番難しいCかあ
360:デフォルトの名無しさん
11/02/10 02:15:18
Cしかできないプログラマはいても
Cすら出来ないプログラマはいないよ
こんぴゅーたーの基礎だからね
361:デフォルトの名無しさん
11/02/10 02:17:04
そんなことないよ。
コンピュータの基礎でもないし、Cができないプログラマもいるよ。
362:デフォルトの名無しさん
11/02/10 02:26:57
>>354
ありがとうございます。何とかやってみます
363:デフォルトの名無しさん
11/02/10 02:32:36
>>361
新卒や派遣スクリプタさんは別として
畑違いの部署の若い子やおじちゃんでも
プログラマでCすら出来ない人は出会った事ないなー
間引きされてるのかな
364:デフォルトの名無しさん
11/02/10 02:36:49
一時期はVBしかできないプログラマが相当数量産されたが、彼らは今どうしているのだろうか
365:351
11/02/10 02:52:53
気軽に出来るCでできるアルバイトないですか?
仕事だとハードル高くなるので、"能力主義"という
一般論で収まるんで。
366:デフォルトの名無しさん
11/02/10 02:54:47
>>351の駄目人間っぷりが容易に想像できる
367:デフォルトの名無しさん
11/02/10 02:56:07
>>365
Cは書けて当たり前ですからね・・・
368:デフォルトの名無しさん
11/02/10 04:48:17
>>364
java やってはるんやないですか?
369:デフォルトの名無しさん
11/02/10 08:04:39
Cだけとかアホだろ。
組み込みでもやってろ
370:デフォルトの名無しさん
11/02/10 10:47:17
>>364
VBで作られたプログラムがあまりにも多かったために保守要員が残されているらしい
371:デフォルトの名無しさん
11/02/10 12:11:48
らしいね
372:デフォルトの名無しさん
11/02/10 12:57:41
755 :まちがって名前消しちゃいました。:2011/02/10(木) 00:02:34 ID:???
線形リスト構造の使い方について質問です。
URLリンク(codepad.org)
1. mallocの使い方はあっていますか。
2. 解放はちゃんとできていますか。
どうぞよろしくお願いいたします。
756 : ◆QZaw55cn4c :2011/02/10(木) 04:46:12 ID:???
>>755
free()忘れはないですし、いいと思います。
念入りに書くのだったら、malloc() の返り値が NULL かどうかチェックして、
NULL, すなわち malloc() が失敗したときには、たとえばエラーメッセージを表示して中断する、とかするのもいいかもしれません。
757 :まちがって名前消しちゃいました。:2011/02/10(木) 09:49:04 ID:???
>>755です。
mallocのエラー処理はあった方がいいんですね。
線形リスト構造はややこしくてこんがらがっていましたが
ちょっと自信つきました。添削アドバイスありがとうございました^^
373:デフォルトの名無しさん
11/02/10 14:04:14
位相空間と距離空間の違いを教えてください
374:デフォルトの名無しさん
11/02/10 15:59:34
俺みたいな高脳ならともかく、このスレの低脳どもに答えられるわけがないだろうw
375:デフォルトの名無しさん
11/02/10 16:16:19
位相空間とは位置の相をあらわす空間
距離空間とは距離の空間をあわらす
376:デフォルトの名無しさん
11/02/10 16:22:33
わかりやすく例えると位相空間はラーメン
距離空間はハンバーガーと思えばいい
377:デフォルトの名無しさん
11/02/10 17:30:01
井include<stdio.h>
int main(void)
{
int i,t;
scanf("%d\n",t)
printf("%d\n",i+t);
return 0;
}
エラーがでます・・・何故でしょうか?
378:デフォルトの名無しさん
11/02/10 17:31:55
頭悪い奴が頑張っても
面白くないよ
379:デフォルトの名無しさん
11/02/10 17:32:52
あ、すいません・・
scanf("%d\n",t);
にしたら解決しました。エラー出ませんでした。
質問取り下げます。
380:デフォルトの名無しさん
11/02/10 17:42:16
面白いねー
381:デフォルトの名無しさん
11/02/10 17:50:57
面白い面白い
382:デフォルトの名無しさん
11/02/10 18:39:29
>>379
次の質問が出てくるものだと待ってたのに裏切られた気分
383:デフォルトの名無しさん
11/02/10 18:56:09
限られた範囲の数値をランダムに並べ替えたいのですが、
有効なアルゴリズムみたいなのありますか?
int num[10] = {1, 2, 3 … 8, 9, 10}を
3 9 5 8…みたいに並べ替えたいです。
384:C言語の事なら俺に聞け(入門編) part78
11/02/10 18:58:33
>>377
#include<stdio.h>
int main(void)
{
int i=0,t;
scanf("%d\n",&t);
printf("%d\n",i+t);
return 0;
}
一応こんな感じにね。
385:デフォルトの名無しさん
11/02/10 19:08:46
>>384
386:デフォルトの名無しさん
11/02/10 19:56:00
System.out.println("C言語");
387:デフォルトの名無しさん
11/02/10 20:07:56
1["OOO"]='A';
388:デフォルトの名無しさん
11/02/10 20:15:16
有吉は「イヤイヤイヤ、俺は別にそんなにキライじゃないからね。怖いなぁって思いつつ」とフォローしているが、確かにメディアでの発言のすべてを本気にされ、問題視して大袈裟に騒ぎたてられては、芸人たちはたまったものでもないだろう。
たとえば品川だけでなく、NON STYLEの井上裕介も「ナルシスト」「ウザい」などと叩かれがちだが、あくまでもネタであり、キャラだ。
品川の「ウザさ」も、山里の「キモさ」も、有吉の「毒舌」も、すべてを真剣に受け止めて批判に終始するような視聴者は、お笑いを楽しめていると言えないのではないだろうか。
389:デフォルトの名無しさん
11/02/10 20:18:52
お笑いを楽しめていると言えないのではないだろうか(キリッ
390:デフォルトの名無しさん
11/02/10 22:47:09
お笑い
391:デフォルトの名無しさん
11/02/10 23:15:35
>>383
for(i = 10; i > 1; ) {
j = rand() % i--;
tmp = num[j];
num[j] = num[i];
num[i] = tmp;
}
392:デフォルトの名無しさん
11/02/10 23:30:12
>>391
ありがとうございます。
393:デフォルトの名無しさん
11/02/11 00:38:45
一周だけだと微妙な気がする
394:デフォルトの名無しさん
11/02/11 00:48:34
>>392
for(i = 0; i < 10; i++) {
j = rand() % (i + 1);
num[i] = num[j];
num[j] = i + 1;
}
ってやれば空の配列に数字を入れながらランダムにできる
395:デフォルトの名無しさん
11/02/11 00:59:15
>>393
確率計算すると1周でいいんじゃなかったか
396:デフォルトの名無しさん
11/02/11 03:16:01
>>394
ダウト
for(i = 0; i < 10; i++) {
/* ランダムに配置されている配列の最後に値を追加 */
num[i] = i + 1;
/* 最後の要素以外は全てランダムになっているので最後の要素のみ入れ替える */
j = rand() % (i + 1);
tmp = num[j];
num[j] = num[i];
num[i] = tmp;
}
397:デフォルトの名無しさん
11/02/11 03:20:14
いずれにしても糞コード
398:デフォルトの名無しさん
11/02/11 03:22:05
>>396
コードの意味が理解できなアホは引っ込んでろw
399:デフォルトの名無しさん
11/02/11 03:24:19
小手先にこだわる人っているよね
学生さんかな
400:デフォルトの名無しさん
11/02/11 03:25:42
無駄な入れ替えを省略することは小手先とは言わないw
401:デフォルトの名無しさん
11/02/11 03:29:55
>>398
>ってやれば空の配列に数字を入れながらランダムにできる
人に噛み付く前に、よく考えな
明らかに数字を入れる前にnum[j]を使ってる
402:デフォルトの名無しさん
11/02/11 03:33:37
>>400
それ、十分小手先だよ
403:デフォルトの名無しさん
11/02/11 03:35:15
理解できないバカどもは>>394と>>396を乱数の種を同じにして実行してから書き込んでくれw
404:デフォルトの名無しさん
11/02/11 03:38:33
>>403
>>394は初期化前の変数を読み出している
で、その場合、C言語での動作は未定義
小手先に走る前に、基本をもっと身に着けろ
405:デフォルトの名無しさん
11/02/11 03:42:24
初期化されてない変数を使うのは未定義じゃねーだろw
406:デフォルトの名無しさん
11/02/11 03:44:05
>>406
未定義だよ
407:デフォルトの名無しさん
11/02/11 03:46:38
>>406
自己参照構造体乙
408:デフォルトの名無しさん
11/02/11 03:50:11
未初期化変数の値は不定であって、未定義ではない
>>394の場合
j < iの場合ならすでに内容があるし、i==jの場合なら不定の変数を代入してるが同じ場所だし、
直後にi+1を代入してるので問題ない
409:デフォルトの名無しさん
11/02/11 03:51:13
でも糞コードだよね
410:デフォルトの名無しさん
11/02/11 03:53:31
914 :デフォルトの名無しさん:2011/02/06(日) 17:00:59
そんな話は聞いたことないけどしたいならそうすればいいんじゃない?
それより、 i * 10 + 9 + ( i == 9 ) は意図したとおりに動かないね。
920 :デフォルトの名無しさん:2011/02/06(日) 17:34:11
問題ないように思える人はもう一度Cの規格票をよく読むんだ^^
923 :デフォルトの名無しさん:2011/02/06(日) 17:38:32
…というのも不親切なので答えをいうと
i == 9の部分はtrueの時1になることを想定しているけど
(90-100の階級幅だけ11あるので、ここだけ特別処理にしている)
Cの規格上はtrueは0以外の整数であればなんでもいいことになっているので
実装にっては「90-100」のような表示にならない可能性があるってことなのよ^^;
ここは
printf( "%d-%d %d人\n", i * 10, i == 9 ? 100 : i * 10 + 9, cv[ i ] );
のようにすべきでした。
924 :デフォルトの名無しさん:2011/02/06(日) 17:41:11
って、答えを書いているうちに即レスするんじゃない貴様ら^^
ちなみに、この「trueは0以外の整数」というのは
Cではけっこう重要な落とし穴なので初学者は覚えておくといいよ^^
929 :デフォルトの名無しさん:2011/02/06(日) 17:44:46
あれ?そうだっけ?すまんすまん^^ワラ
935 :デフォルトの名無しさん:2011/02/06(日) 17:49:37
こうして人は成長していくのであった^^;
411:デフォルトの名無しさん
11/02/11 03:53:39
>>408
不定じゃなくて未定義だ
たまたま動いても、コンパイルエラーでも、実行時エラーでも構わない。
つーか、暫く2ch見てなかったけど、
テンプレから初心者用FAQはなくなったのか?
412:デフォルトの名無しさん
11/02/11 03:54:09
>>409
◆QZaw55cn4c乙
413:デフォルトの名無しさん
11/02/11 03:54:57
>>408
値は不定だけど未初期化領域へのアクセスは未定義
414: ◆QZaw55cn4c
11/02/11 04:03:09
>>408
初期化されてない auto 変数の読み出しは、未定義。それによりプログラムが落ちても文句はいえない。
解説はフィンローダさんところがいいでしょう。
URLリンク(www.st.rim.or.jp)
415:デフォルトの名無しさん
11/02/11 04:04:05
>>394はこう書けばいいのかな
for(i = 0; i < 10; i++) {
j = rand() % (i + 1);
if(j != i) num[i] = num[j];
num[j] = i + 1;
}
最初にnum[10] = {0};ってやったほうが楽そうだ
416:デフォルトの名無しさん
11/02/11 04:05:42
>>415
条件分岐で処理速度が落ちるから小手先テクの意味ないじゃん
417:デフォルトの名無しさん
11/02/11 04:10:25
カキコしているランダムに並べ替えは、
限られた範囲の数値が10から20や、-20から-10や、-10から10
てかみたいに、intで表せる任意の(連続)範囲ならどこでもOKなの?
418:デフォルトの名無しさん
11/02/11 04:12:31
>>415
やるなら、こんな感じ。
for(i = 0; i < 10; i++) {
j = rand() % (i + 1);
num[i] = 0;
num[i] = num[j];
num[j] = i + 1;
}
でも、可読性が悪いため、他の人に
「num[i] = 0;」を消されるかも知れないので、お勧めできない。
419:デフォルトの名無しさん
11/02/11 04:13:36
>>414
おい、おまえ、限られた範囲の数値をランダムに並べ替えやってみそ
420:デフォルトの名無しさん
11/02/11 04:14:45
394 :デフォルトの名無しさん:2011/02/11(金) 00:48:34
>>392
for(i = 0; i < 10; i++) {
j = rand() % (i + 1);
num[i] = num[j];
num[j] = i + 1;
}
ってやれば空の配列に数字を入れながらランダムにできる
421:デフォルトの名無しさん
11/02/11 04:15:10
>>417
>>391ならOK
422:デフォルトの名無しさん
11/02/11 04:15:32
空の配列って書いてあるからもしかしたら、0で初期化してあるのかもしれないw
423:デフォルトの名無しさん
11/02/11 04:17:56
J.2 Undefined behavior
1 The behavior is undefined in the following circumstances:
The value of an object with automatic storage duration is used while it is
indeterminate (6.2.4, 6.7.8, 6.8).
424:デフォルトの名無しさん
11/02/11 04:20:06
行列演算ならまだしもただの並び替えなら、俺は読みやすい方を採用するかな
425:デフォルトの名無しさん
11/02/11 04:33:05
>>410
比較演算の結果は0か1になることが保障されてるって突っ込みが抜けてるから
「i * 10 + 9 + ( i == 9 ) は意図したとおりに動かないね。」が正しいように見えるわな
426:デフォルトの名無しさん
11/02/11 04:33:12
ここで再登場して、変数を宣言と同時に0で初期化しないアホがいるなんてwとか言ってくれたら面白いのに
427:デフォルトの名無しさん
11/02/11 04:37:33
>>425
そこは923で丁寧に説明されてるからおk
428:デフォルトの名無しさん
11/02/11 04:37:35
num[]はグローバル変数ですよ。
初期化する必要なんてありません。
429:デフォルトの名無しさん
11/02/11 04:44:13
Javaの質問ですけどいいですか?
430:デフォルトの名無しさん
11/02/11 04:44:14
◆QZaw55cn4cはこれだけ住人に嫌われているのにのうのうと平気な顔で
出てこれる神経が分からん
アスペも混ざってるな
431:デフォルトの名無しさん
11/02/11 04:47:51
>>429
お前さんスゲーナ
432:デフォルトの名無しさん
11/02/11 04:50:57
小型数列なら配置用の配列を使うかな
static int sr[3][10]={{9,2,5,…}.{4,9,7,…},{0,5,4,…}};
#define F(a,b,c) (b[0]=a[0], b[1]=a[1],…,c=&sr[rand()%3],a[0]=b[*c[0]],…, a[9]=b[*c[9]],a)
int num[10]={0,1,…},tmp[10],(*mxr)[10];
F(num,tmp,mxr);
433:デフォルトの名無しさん
11/02/11 04:56:19
>>432
マクロ長すぎ
素直に関数にして下さい
434:デフォルトの名無しさん
11/02/11 05:07:50
>>432
最高にキモイな!うほ!
435:デフォルトの名無しさん
11/02/11 05:57:44
「鬼は捕らえた娘をイヤーぶちぬいたんあぁ」ってなんですか