乙〜
1乙。 日本のC言語底辺教育の総本山だ。 大事に使ってね。仲良く使ってね。
>>1 乙
前スレ
> 986 名前:デフォルトの名無しさん [sage]: 2012/12/09(日) 20:24:53.93
>
>>977 > 文字列反転関数
> void strrev(char *d)
> {
> int i;
> int len = strlen(d);
> char tmp;
> for (i = len / 2 - 1; i >= 0; i--) {
> tmp = d[i];
> d[i] = d[len - i - 1];
> d[len - i - 1] = tmp;
> }
> }
> これは、"1234"を"4321"に変換する
>
> 987 名前:デフォルトの名無しさん [sage]: 2012/12/09(日) 22:06:01.62
> 副作用かっこわるい
副作用?何?と思ったが分かった。
char* strrev(char *d) {
int i, len = strlen(d); char tmp;
for (i = len / 2 - 1; i >= 0; i--) { tmp = d[i]; d[i] = d[len - i - 1]; d[len - i - 1] = tmp; }
return &d[0];
}
なら良いのだな。
ところで、XORを利用したswapもあるんだね。
ttp://www8.cs.umu.se/~isak/snippets/strrev.c
>>4 前スレ987が勘違いしてる。
関数型言語でいう副作用排除なら、別エリアに編集する方法もある。
初心者なんだろうけど、いろいろと気持ち悪いコードだな
うん
何を返そうと、入力を破壊的に変更したら副作用だべ
前スレ986,987共に、引数はchar*だけなので、入力書き換えじゃなくて、引数から参照した先の状態書き換え。 C初学者が間違いやすい所。
Cには値渡しかないから、ポインタを参照渡しの代用にしてるんじゃないの。 なんにしても関数の外にあるものを変更したらそれは副作用だけども。
strdup()してから反転して返しても副作用と言うんかい?
関数内でstrdup()したなら、それをどういじくってから返そうと副作用じゃないのでは。 ヒープからメモリが確保される事も副作用と考えるならダメだけど。
ダメだけどね
14 :
12 :2012/12/10(月) 13:43:03.70
調子にのってました ごめんなさい!
うむ、分かればよろしい
977 名前:デフォルトの名無しさん[sage] 投稿日:2012/11/17(土) 13:20:30.07
>>968 int x;
int foo(void)
{
x = 100;
return 200;
}
で、xの値が書き換わってしまうのはfooの副作用。
int bar(void)
{
printf("%d\n", 300);
return 400;
}
で、数字が表示されてしまうのはbarの副作用。
979 名前:デフォルトの名無しさん[sage] 投稿日:2012/11/17(土) 13:42:07.78
>>977 うーん、return で返す値以外は、関数にやらせることが"副作用"なんですかね。
引数void戻り値なしなら、関数の処理は全部、"副作用"?
981 名前:デフォルトの名無しさん[sage] 投稿日:2012/11/17(土) 14:08:18.34
>>979 >引数void戻り値なしなら、関数の処理は全部、"副作用"?
そのとおり
982 名前:デフォルトの名無しさん[sage] 投稿日:2012/11/17(土) 14:36:24.96
void func(int *a){
*a = *a + 1;
}
を副作用って言うのは、正直微妙な気がする。
微妙、じゃなくて この計算機工学界隈での定義であり用語だろ
そうだけど、何か?
用語が実態と乖離してるのを微妙に感じるってことだろ
副作用ってのはその関数においてローカルでもstaticでもない変数に書き込みを加えることを指すわけで、 returnだの引数だのといった説明は的外れ。
23 :
22 :2012/12/10(月) 16:24:55.70
間違えた。訂正。 副作用ってのはその関数が終了してもメモリ上に残るような変数に書き込みを加えることを指すわけで、
副作用の事は入門レベルじゃないが、Cは状態依存(Statefull)で、副作用を積極利用してる言語だからな。 計算モデルでの、宣言的プログラミングとは違うモデル(ハードがStatefullなんだからしょうが無い)。 入門レベルをクリアしたら、CTMCP(コンピュータプログラミングの概念・技法・モデル)とかで違いが判る。
25 :
デフォルトの名無しさん :2012/12/10(月) 19:04:57.92
うんこ
26 :
デフォルトの名無しさん :2012/12/10(月) 19:08:28.71
ちんこ
27 :
デフォルトの名無しさん :2012/12/10(月) 19:12:22.98
ちんこ
28 :
デフォルトの名無しさん :2012/12/10(月) 19:29:11.66
ちんこ
29 :
デフォルトの名無しさん :2012/12/10(月) 19:31:12.98
ちんこ
30 :
デフォルトの名無しさん :2012/12/10(月) 19:53:55.84
ちんこ
31 :
デフォルトの名無しさん :2012/12/10(月) 19:56:23.11
ちんこ
32 :
デフォルトの名無しさん :2012/12/10(月) 20:00:19.70
いんぽ
33 :
デフォルトの名無しさん :2012/12/10(月) 20:02:23.27
ちんちん
34 :
デフォルトの名無しさん :2012/12/10(月) 20:05:52.99
ちんちん
C言語とちんこ言語どっちが難易度高いですか?
ちんこ言語って知らないけど、とりあえずCはそれほど難しくないからちんこのほうじゃね
グローバルの時代にクーラー効いた部屋でC言語プログラミング 時代錯誤にも程があるカスがwwww
#include <math.h> を書いて数学関数を使うプログラムを書いたのですがコンパイルでエラーになりました。 gccに-lmオプションをつけたらやっとコンパイルが通ったのですが、Cの教科書には-lmオプションのことなんか一言も書いて有りませんでした。 本当にありがとうございました。
39 :
デフォルトの名無しさん :2012/12/10(月) 20:54:35.07
うんこー
40 :
デフォルトの名無しさん :2012/12/10(月) 20:56:45.22
ちんこー
>>38 コンパイルは通ってリンクでエラーになってたんだろ。
うん、こ
printf関数を使う時ってstdio.hをインクルードして使うじゃないですか
てことはstdio.hでprintf関数が定義&宣言されてると思ってたんですよ
けれど
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1331505108 のベストアンサーを見てみたら
>printf関数をコールするにはstdio.hと言うヘッダーファイルを#includeでインクルードします。
>そしてprintf関数が入ったライブラリファイルをコンパイルにリンクするように追加します。
って記述があったんです
これってprintf関数はstdio.hじゃぁなくてライブラリファイルで定義されてて
stdio.hでは宣言しかされてないってことなんですか?
44 :
デフォルトの名無しさん :2012/12/10(月) 22:27:43.60
ちんこ
* ゚・*:.。.:*・゜+ d(*´∀`)b そうです +.:*・゜゚・*:. *
おまえはきっとライブラリファイルがテキストファイルだと思ってんだろ
返信アリャシャス すっきりしました
48 :
デフォルトの名無しさん :2012/12/10(月) 22:30:24.40
ちんこ
テキスト以外はバイナリだとおそわりました
50 :
デフォルトの名無しさん :2012/12/10(月) 22:33:19.27
ちんこ
51 :
デフォルトの名無しさん :2012/12/10(月) 22:39:16.47
tinko
52 :
デフォルトの名無しさん :2012/12/10(月) 22:42:05.04
ちんぽいんぽ
53 :
デフォルトの名無しさん :2012/12/10(月) 22:44:25.71
いんきんたむし
55 :
デフォルトの名無しさん :2012/12/10(月) 22:56:04.81
ちんこくさい
56 :
デフォルトの名無しさん :2012/12/10(月) 22:58:11.42
皮でちんちんを包む
57 :
デフォルトの名無しさん :2012/12/10(月) 23:02:19.27
ちんちんがぁ?
58 :
デフォルトの名無しさん :2012/12/10(月) 23:06:54.55
ちんちんのぉ?
59 :
デフォルトの名無しさん :2012/12/10(月) 23:10:38.14
金玉がソファーにはりついて気持ち良い
60 :
デフォルトの名無しさん :2012/12/10(月) 23:12:48.13
ちんちん
62 :
デフォルトの名無しさん :2012/12/10(月) 23:16:42.99
床オナはちんちんの事をこれっぽっちも考えてない
63 :
デフォルトの名無しさん :2012/12/10(月) 23:29:26.61
ちんぽこりん
64 :
デフォルトの名無しさん :2012/12/10(月) 23:31:44.13
ぽこちん祭り
mallocしたメモリは関数の呼び出し元・呼び出し先のどちらでfreeするのがいいのでしょうか? 普通に考えれば呼び出し先で、freeすることはほとんど無いはずなのですが GUIのWindowみたいにいつ終わるかわからないものは、呼び出し先でfreeするのがベストかと思います。
山ほどあるcで書かれたコード嫁
後片付けは自分でしなさいとこだわる人もいるだろうけど、 手紙なら読んだ人が処分するよね。 相手が読むのだけを待って、読み終えたら自分で片付けなくては いけないなんて効率悪いと思う。 ただ、誰が片付けるかは明確にしておかないといけないけど。
>>37 >グローバルの時代に
聞くからに、とっても悲惨な時代だと、どーしても思うのですが
てs
てすと
#include <stdio.h> int uruu(int year); int main(void) { int a,b; int lastdays=0; int i; scanf("%d %d ",a,b); for(i=a;i<b;i++){ if(uruu(i)==1){ lastdays+=366; } else{ lastdays+=365; } printf("%d",lastdays); } int uruu(int year){ if(year%400==0){ return 1; } else if(year%100==0){ return 0; } else if(year%4==0){ return 1; } else{ return 0; } }
↑ごめんインデントが汚いけれど 何がいけないの?
>>73 何がやりたいのか書かれてないのがいけない
ごめん 年度二つ入力して閏年考慮した上で、その間の日数を求めたい。 これはそのひな形。 とりあえず、動かないんだ。
scanfに整数わたしてる
ごめん、それも忘れたたけど まだ動かない
どうなることを期待して、何が出るかくらい書け
インデントつけないのが悪いな。{ } が合ってない。
例えば 2000、2007といれると 2000=閏年=366 2001=平年=366+365 みたいになることを期待してるんだけど
その期待に対して、何が出るか聞いてんだよ
for(i=a; i<=b;i++)
if(year%400==0){ ↓ if((year%400) == 0) %と=どっちが優先か忘れたけど
その前に、main()の } が足りないみたいだけど、コンパイル通るのか
ごめん、出来た。 けど、結局何がいけなかったのか分からない。
さっきのと比較しろや
int ndays(int y,int m) { int days; int month; int data[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; days=month[m]; if(uruu(y)==1 && m==2) { days+=1; } return days; } この関数なのですが、何か問題がありますか? プロトタイプ宣言もしてあるのですが、動作しません。
>>88 >days=month[m];
わからんけど、ここな気がする
days=data[m]; こうじゃね?
「動作しない」と「コンパイルできない」くらい区別してくれ
time_tに変換してdifftime()すればいいものを。 課題とか実験とかなら判るけど、馬鹿に限って手を抜くことをしないからなぁ。
入門編でしか暴れられない奴が言ってもなあ。
difftimeを知ってるならもう中級者
95 :
デフォルトの名無しさん :2012/12/12(水) 14:01:42.04
数字の末尾が2,4,6,8であるかどうかの確認ってどうするんでしたっけ?
わからない
お年玉葉書か。
>>95 bool isLastDigit2468(int value)
{
char foo[20];
char digit = foo[sprintf(foo, "%d", value) - 1];
return digit == '2' || digit == '4' || digit == '6' || digit == '8';
}
100 :
デフォルトの名無しさん :2012/12/12(水) 14:45:35.40
今日からC言語を覚えます! みんなよろしく\(^o^)/
やだ
102 :
デフォルトの名無しさん :2012/12/12(水) 15:28:25.73
>>105 だって前に向こうで聞いたらここは解説するところじゃねーって怒られたんだもん
107 :
デフォルトの名無しさん :2012/12/12(水) 16:22:34.60
>>98 ありがとうございます。ついでにもう一つ教えてください
Cでboolというのありました?
cppで確認用に
int main()
{
int num;
num = 123654;
if (isLastDigit2468(num) == true )
{
cout << num << "の末尾は2,4,6,8のいずれか\n";
}
}
てのはできたんですが。
>>107 あるよ
stdbool.hで定義されてる
あるね
>>106 そういう書き込みするやつは、大抵回答してない。
古いプログラムでは、boolのところがBOOLかintになってる
BOOLなのに0と1と-1が返ってくるGetMessage()なんてのもある
WindowsのBOOLはintじゃなかったっけ
調べたら、そうだったw
107です。皆さん、ありがとう
>>99 の人にも礼を言うのわすれてました。ありがとう
ちと難しかったですw
>>104 こちらの環境(Scientific Linux 6.3 + gcc 4.4.6)だと、
Ctrl+d で scanf() の戻り値が -1 になって break するけど、
そちらの環境(Windows?)だと Ctrl+d で抜けるのが利かないのかな。
例えば、
> if (scanf("%s", data[i].name) != 1)/* Ctrl+Dが押されたらbreakでループを抜ける */
> break;
↓
> scanf("%s", data[i].name);
> if (data[i].name[0] == 'q' && data[i].name[1] == '\0') /* 'q'が入力されたらbreakでループを抜ける */
> break;
'q' とかで終了するよう改造してみたらどうだろうか?
あるいは、Windowsなら conio.h の _getch() と _ungetch() を組み合わせてみるとか…
>>119 自分で一通り調べて色々やってみたら
if (scanf("%s", data[i].name) != 1)
この行の1をEOFにするだけでCtrl+Dでループから抜けられるようになった
ありがとう
>>117 tmp.txtから正しく読まれているのだろうか?
苦しんで覚えるC言語というサイトのドラッグへの対応という項目をやっていたところ、 「ドラッグされたファイル名を表示するプログラム」が書かれていたのですが使い方が分かりません。 visual C++のデバック開始で開かれるプロンプトにテキストファイルなどをドラッグすればいいのですか?
うん
>>123 filename使うの止めてファイル名指定して直で読み込むようにしたらできました
ありがとうございます
問題は const char *filename にあったのか?
なにもしてないけど壊れたってのと同じかほりがするお! ファイルの実体を置いたりとか他にコード弄ったとか色々あるんじゃあないのかよ?
ここに質問書き込むような初学者は、知らない・理解してないに加えて、 ”表現が間違ってる”事が多いから、コードをアップロードした方が誤解が少ないんだけどね。
130 :
124 :2012/12/13(木) 01:45:11.04
自己解決しました。 調べてみたらVistaだとドラッグしてもパスが表示されないのですね。
自作関数を作っているのですが int bmilarger(Person data[ ], int n, double v) { int i; int cnt=0; for(i=0;i<n;i++) { if(data[i]>=v) { cnt=cnt+1; } } return cnt; } if文の所で'>=' : struct に対して正しくありません。 と出てしまいます。どこを修正すればいいのでしょうか?
if(data[i].bmi>=v)
data[i]は構造体だから、その中のどのメンバーとvを比較したいか指定する。 data[i].bmi>=v みたいに。
すいません、ありがとうございました。 感謝します。 いまいち構造体の意味が分かっていないのでしょうか?
扱う対象が値(整数、文字、実数、、)なのかデータの塊(構造体)なのか意識しないと
だね
うん、ありがとうね
いえいえ
int a; int* p; p = &a これはpにaのアドレスが入るんですよね。 そうすると&pはaのアドレスではなくpのアドレスが入りますよね。 例えばpのアドレスからpの型分だけ中身を参照するとして、 アドレスpからaのアドレスから同じ分だけの領域の中身を参照出来るように するにはどうすればいいでしょうか。
>例えばpのアドレスからpの型分だけ中身を参照するとして、 >アドレスpからaのアドレスから同じ分だけの領域の中身を参照出来るように 日本語がわからんぞ int a = 10; int* p = &a; int** pp = &p; printf("%d",**pp); //=>10 こういうこと?
「&pはaのアドレスではなくpのアドレスが入る」とか、ポインタを理解していれば出てこない。 わかってないんだろうな。記述方法だけ覚えてもしょうがない。
じゃあどう言えばいいの
146 :
デフォルトの名無しさん :2012/12/14(金) 10:25:10.72
.a と .so の区別がつかないんだけど .soは動的リンク用で.aは性的リンク用という認識でいいの? .saってなに?
>>146 > .a と .so の区別がつかないんだけど
> .soは動的リンク用で.aは性的リンク用という認識でいいの?
それで合ってる
> .saってなに?
こっちが聞きたい
>>146 ttp://www.hi-ho.ne.jp/babaq/linux/libtips.html > スタティックライブラリは、コンパイル時にコードがプログラムに組込まれます。
> モジュールサイズが大きくなりますが、別のマシンにバイナリで配布したときに
> そのライブラリがなくても動作します。 .a で終わるファイルです。
> 共有ライブラリは、プログラムの実行時にロードされます。マシンによっては、
> その共有ライブラリがなかったり、バージョンが違ったりして、動作しないことがあります。
> .so と .sa で終わるファイルです。.sa は、古い a.out 形式で使われた共有ライブラリです。
>>145 言い方だけ学んでも意味がない。
Cのポインタを理解すれば正しい言い方をおのずと使うようになる。
.aと.soって相互に変換できる?
>>150 .soの方は位置独立コードが要求されるから、大抵のOSではコンパイルし直さないと無理。
すいません教えて下さい。 外部参照について調べていたのですが 例 extern int func( char* ); char*の*はポインタ変数名を続けて書く意味でしょうか?
>>150 .soは.oをリンクしちゃった結果で、
元のファイル名が失なわれてるから無理。
.aから.soはlinuxならできるような気がするけど、
-fPICじゃないので実行開始時のリンクが遅いかも。
>>154 外部参照とは関係ないけど、そうだね。
関数プロトタイプでは、仮引数名を省略して型だけ書いてもいいので、
extern int func( char *p );
の意味。
>>152 こいつみたいな炎上学習法を実践するクズが多くてウザい。
その筆頭がコテハンだから始末が悪い。
>>156 即答ありがとうございます。m(_ _)m
159 :
デフォルトの名無しさん :2012/12/14(金) 12:44:36.22
変換仕様%sでscanfを使うときカンマの後に&を付けないのはなんでですか? 付けても変わらないように思えるのですが
すいませんageてしまいました
>>159 char array[100];
char *p = array;
とすると、array も &array も同じ値になっちゃうので、
付けてもいいように見えてしまう。
だけど、&p と p は違うので、動作しない。
char buff[256]; int data; scanf("%s", buff); scanf("%s", &buff[0]); scanf("%d", &data);
>>159 char s[10];
scanf("%s",&s[5]); //(「・ω・)「
scanf("%s",s[5]); //\(^o^)/
>>164 ポインタ理解してないチンカスになに言われても全然答えないわけだが。
悔しかったらポインタ理解してから出直すことだ。w
荒らしに構う奴は荒らし
性的リンクって///
168 :
デフォルトの名無しさん :2012/12/15(土) 00:37:58.89
恥ずかしながら初心者でDXライブラリ使ってるんですが 円と四角が同時に動くみたいな事をこのライブラリを使えばCでも書けるんですが これって暗にDXライブラリの関数がスレッドの機能があるってことでしょうか?
スレッドなくとも交互に描けば可能。ソースコード確かめろ。
Linuxとかで uint32_t みたいな型を使ってるプログラムがあるんだけど これを使うと「絶対的に」32ビットの大きさが確保されるの?
それはtypedefの内容による。
名前からしてどんな環境でも32bit unsignedであることを期待しているとは思う
いまどきstdint.hなしの環境使ってるのか?
stdint.h 見たら typedef unsigned intuint32_t; と書いてあった。 intって64bit環境だと64bitじゃないの?
違うよ
intは環境によってサイズが違うしlongも違う場合がある。
一言で64ビット環境と言ってもたくさんある。 LPI64: long, pointer, intが64ビット LP64: long, pointerが64ビット LLP64: long long, pointerが64ビット uint32_tはそれぞれの環境で32ビットになるようtypedefされている。
> uint32_tはそれぞれの環境で32ビットになるようtypedefされている。 なるほど。ありがとうございます。
いえいえ
180 :
デフォルトの名無しさん :2012/12/16(日) 01:06:19.61
c言語ってコンパイルせずにインタプリタで実行して何か問題あるの? basicと同じ順次実行言語だし何か困るの?って疑問に思いました。
182 :
デフォルトの名無しさん :2012/12/16(日) 01:11:33.85
>>181 インタプリタは何言語で作ったら一番良いですか?
やっぱり文字列とかの機能が多いperlとか?
コンパイル、リンクは1回でいいよ 何回も実行する
>>182 Rubyは、Cでかかれているそうです。黒魔術もつかわれてる(つかわれてた?)
black art
C言語で標準正規分布の累積分布関数やその逆関数を計算することは可能でしょうか エクセルでnormsdist関数やnormsinv関数を使用したファイルを作成したのですが 計算する数値の量が多すぎて1回の再計算で数十秒近く時間がかかってしまうため 直接C言語で計算するプログラムを作ればこの時間を減らせるのかなと考えています プログラムに関する知識は現時点でゼロです 長くなりましたが、 1.C言語でプログラムを作ることでエクセルによる計算より時間を短縮することは可能か 2.可能だとして、全くの初心者がそのプログラムを作る難易度はどのくらいになるか (1日3時間勉強にあてることができるとして、何日かかるかを目安で) この2点について、どうぞよろしくお願いします
数値計算ライブラリを使えば速く動いて早く使える。 ゼロから自作するのは手間かかる。
>>186 まずは計算量を減らす工夫できないか考えるのが先だろう。
アルゴリズムがクソだと言語とかライブラリ変えてもどうにもならない。
正規分布くらい自分で実装しても大したことないよ。
ボックスミューラー法とか
Cってさ、クラス使えないんだよ 知ってた?
またチンカスがトンチンカンな事ほざいてるのか。
チンカスは最強のめるせんぬついすたーをとなえた。えぃっ。wwwww
>>186 excelが遅いんじゃなくて、多分キミのExcelシートの作り方が悪い。
normsdistは標準正規分布表引くだけ、normsinvは逆引きだけの処理なので、非常に高速。
normsdistやnormsinv使わないで値そのままにしても同じくらい時間かかるんじゃないか。
= normsdist(A1)
のセルを
= A1
に変更して時間計ってみろ。
オレはお前がそんなにCを使いこなせていないことを知ってるぞ
キサマなぜそれを
197 :
デフォルトの名無しさん :2012/12/17(月) 16:24:12.08
C言語で音(音楽)を出力させるにはどうしたらよいのでしょうか??
>>197 ハードウェア依存。言語の問題ではない。
音源チップを直接扱うような低水準なことから DirectXあたりを使った高水準なモノまで いろいろできる 音源チップ用のコントローラとかなると そりゃもうデバイスドライバあたりの面倒くささになる
いろいろあるね
Windowsなら system("start music.mp3");
>>201 最小化した状態で起動するなら
system("start /min music.mp3");
自己解決しました
ベル文字ってあるでしょ 音でないけど…
うちは出るよ。 でも実際に音をならすのは端末の機能。
環境依存?
#include <stdio.h> int main(void) { int i; int N = 10; for(i = 0; i < N; i++) { printf("\007"); } return 0; }
>>202 消防以下のレベルに善く答えてあげたな。
関数の引数なしを void test(){} と()内にvoidと書かなくても大丈夫?
昔はそう書いた 今ならvoidつけた方がよい
そのまま関数宣言に使ったときにも、引数がないことが明確になるから。
最近はハードの性能も上がり、色々こねくり回すよりも可読性を重視したコーディングが求められるだろうから、 やろうとしていることはなるべく明示した方が良い。 バグ潰しの効率もずいぶん変わるし、何より考えすぎたコードは次の日自分でも何やってんだか分からなくなったり。
>>213 >そのまま関数宣言に使ったときにも、引数がないことが明確になるから。
それ、チェック機能の弱い、古いコンパイラ時代の常識。
Cだと書いた方がいいね 他の言語(C#とか)だと書かないと自動的に引数なし扱いになるけど
なるけどね
まぁ一応書いておくだろ
宣言なら書かないといけないけれど、定義ならどっちでもいいよ。Cは。
定義をコピペして関数プロトタイプ宣言にするから自分は書くけどね
どっちでもいいならすこす長くてもわかりいいほうにしとけってばっちゃが
ありがとうCではちゃんと記述する それ以外は略してもいいという認識で行く
Cなら略してもいいのだ。他の言語では、voidの意味になってしまう
C#ってvoid書くとコンパイルエラーになるよね
なるよね
ネー
227 :
デフォルトの名無しさん :2012/12/18(火) 23:10:46.83
unionとstructってどう違うんですか? struct{int a, double b, char c,char d[10][10]}←できる union{int a, double b, char c, char d[10][10]}←できる
たしか、unionとstructってメモリに展開した時に違いが発生するんだよね? unionは1つの連続した領域として取られるハズ
unionは、どれか1つのメンバしかメモリに載らない
1つの代入した、もう1つのメモリ上の領域は破壊(塗り潰す)される
確実な回答おがないしましゅ
確実な回答が欲しいなら、自分で仕様書なり調べろ
それならそうと一番最初に家よks
unionはメンバ中で一番に大きいメモリサイズで領域を確保する d[10][10]の領域の中に、int a, double b, char cの先頭を指してる だから、どれか代入すると他のメンバ変数はメモリ上に載せることが出来ない
236 :
デフォルトの名無しさん :2012/12/18(火) 23:31:36.87
>>235 最小のプログラムでunionの場合structと比べてこれができないっていう
例を教えて下さい。
できる struct Foo a; a.a = 10; a.b = 0.1; できない union Bar b; b.a = 10; b.b = 0.1; printfでconsoleにでも出力汁
自己解決しました。
1つだけ、今後のアドバイスすると、プログラマにはならない方がいいよ 君には向いてないから
240 :
デフォルトの名無しさん :2012/12/18(火) 23:38:41.91
>>237 ランタイムエラーだったけどありがとうございます。
さすればunionって欠陥品ということでしょうか?
241 :
デフォルトの名無しさん :2012/12/18(火) 23:41:06.74
うn
省メモリで組む必要がある組込み用途で必要
sizeof演算子で、structとunionの大きさ確認しろ
struct アレやコレを一緒にまとめて入れておく。 union ひとつの場所に、ある時はアレ、またある時はコレと使い分ける。
入門での中途半端な文法レベルなら、rogueなり、 tux racerなり落としてきて使い方眺めた方が早い 飯食うなら、枕元にBSDのコード置くぐらいのことした方が良い
良いね
もっとも、c++,javaでヤドカリ本の暗記した方が潰しがきくけどね
スレタイ読めないヴァカがいるぞ
cで何かするならgtkあたりがベター cの入門なら、gnome付属のゲームでも読めば? 大学講座の単位なんて飾りですw 入門者には、それが分からんのですw
何か今日あった? 入門スレでしか暴れられない方々が多いな。
多いね
253 :
デフォルトの名無しさん :2012/12/20(木) 00:10:37.14
一文字だけstrcpy,strcatしたい場合はどうしたらいいですか? char buf[10]; char buf2[10]; strcpy(buf,buf2[0]); char buf3[2]; buf3[0]=buf2[0]; strcpy(buf,buf3); とするのはさすがに面倒なので..... と一文字だけコピーしたい場合エラーが出るので。
大学が役に立たないから、代りに入門者の教育してるんだろ
strncpy
strcpy(buf,buf2[0]); はbuf2[0]がポインタでなくて、char型
入門レベルでvisual studioのようなIDEなんて使うと、 文法やコンパイルの仕組みを理解できないから、ある程度に達するまでemacsやvimを使え
>>253 sprintf(buf, "%s%c", buf, buf2[0]);
入門段階でgdbのマニュアルを端から端まで読んでおけば、 ポインタや、ポインタの派生型が大体、何かは理解できる。 屑大学の馬鹿って、院生にもなって動画サイトに上がってる HSP製のゲームに感動するような場所w
OOPLなんて大学1年次のうちに、主要言語の文法は全部おぼえてしまう方が良いよ 学部2年の前半でUMLとデザパタを一通り暗記するぐらいのペース。後半でGUI弄る。 学部3年の前半で業界動向を調べつつ、4年次の研究テーマを事前に勉強。 このぐらいのペースでないと就職活動で皆が希望するような所には間に合わないよ。
>>260 中身のない煽りって、どうでも良いな^^
それと、マニュアル、チュートリアル、リファレンスの類は全部、英語で読め。 入門書を買うなら洋書を買え
264 :
デフォルトの名無しさん :2012/12/20(木) 01:13:05.49
>>255 strcatで無いですかね?
buf[3]とbuf[7]を連続して
buffer[100]に連結したい。
でも一文字だからできないという。
265 :
264 :2012/12/20(木) 01:15:10.71
bufは"abcdefghi" buffer[100]=all \0; buffer[0]='U'; strcat(buffer,buf[3]); strcat(buffer,buf[7]); printf("%s",buffer)=Udh; としたいです。
わけわからん
こういうことけ? strncat(buffer, &buf[3], 1); strncat(buffer, &buf[7], 1);
>>264 strncat(buffer,*buf[3],1);
strncat(buffer,*buf[7],1);
環境ないから動くかシラネ。
strcatでやれって課題なの?
269 :
268 :2012/12/20(木) 01:27:51.04
ああ、間違えた.&だ
271 :
268 :2012/12/20(木) 01:30:02.50
272 :
264 :2012/12/20(木) 01:30:23.53
>>268 ありがとうー
いや連結したいからそれが実現できるなら何でもいいよ
何とかできそう
>>272 strncat(buffer, buf + 3, 1);
strncat(buffer, buf + 7, 1);
>>273 bufって定数だけど、それでポインタ演算うまくいくっけ?
>>274 そんなことぐらい自分で判断しやがれ
ここで聞いても答えはでんだろ
他の人の意見を聞くならまだしも
お前が信じるかどうかなんて知ったことじゃねえ
定数だろうが変数だろうがアドレスの加算は正常にできる。
>>274 bufを書き換えるわけじゃないからok
初心者はstrcat,strncatは使わない方がいいよ 初心者ほど使いたがるけど初心者ほど使い方間違える
sscanfとsprintfがあれば、まあだいたいのことはできるな
>>280 putcharとgetcharがあればあとはいらない
yacc/lexいりませんか?
yaccはいる。lexはあんまり使わないからどっちでもいい。
一般的なペーストビンでも使ってろ
antlrやjavaccの方が使われてるけどな
286 :
デフォルトの名無しさん :2012/12/21(金) 13:36:57.42
質問ですお願いします ソースは以下なのですが(自作関数略)VC++だとコンパイルでき、結果も正しくでます しかし、bcc32や、他のコンパイラだとエラーが出ます 「エラー E2277 a.c 15: 左辺値が必要(関数 main )」 #include <stdio.h> int mdays(int y, int m); int uruu(int year); int main(void) { int y1,m1,d1,y2,m2,d2; int i,j,days; while(scanf("%d%d%d%d%d%d",&y1,&m1,&d1,&y2,&m2,&d2)){ if(y1<0 || m1<0 || d1<0 || y2<0 || m2<0 || d2<0) break; for(i=y1,days=0; i<=y2; i++) for(i!=y1? j=1: j=m1 ; i!=y2? j<=12: j<=m2 ; j++) days+=mdays(i,j); days-=d1; days-=(mdays(y2,m2)-d2); printf("%d\n",days); } return 0; } 恐らく、三項演算子が原因だと思うのですが、どうしてなのかさっぱりわかりません よろしければ是非教えてください。よろしくお願いします
原因がわかってるなら対策すればいいのに。
確かにこんなの見たら使用禁止にしたくなるな。
なるね
>>286 本当にVC++でコンパイルできるの?
VC++2010だとコンパイル出来ねぇぞ
ひょっとしてVC++でだけ、C++でコンパイルしてないか?
条件演算子の優先順位がC++とCで微妙に異なるのでそのせいじゃないのか
if文と三項演算子は別物だと考えろ。
かんがえろよね
自己解決した
「コードは短ければ理解しやすい」という命題への反証の良い例
あああ 変態なことしたい! 性欲まみれの会員とチャットしてくれ!!頼む!!
じゃあラーメンタイマーの仕様定義するからよろです。 ・ラーメンの待ち時間の長さ&商品によって異なる味の変化をデータベース化 例:商品Aでは4分で「麺のふにゃふにゃ感が芽生えはじめる」 というような情報に基づき柔軟に味を調節可能 データベースは、ある設定でラーメンが出来たら、感想フォームを表示、 ここに感想を入力していくことでオリジナルのデータベースが出来あがっていくという仕組み。 さらに、TCP/IP通信でこのデータベース情報を交換できる。 ・ラーメンが出来るまでの時間をミニ格闘対戦ゲームで潰せる「時間があっというまに経つね」機能 TCP/IP通信で、ロビーをデディケートサーバーで提供できるような感じで。 ・ラーメン作成回数・日時・商品情報から、ラーメンにおける摂取カロリー計算や 嗜好分析などを行える統計機能つき。 この統計から、「おすすめの新作カップメン」みたいな情報も表示できる。 タイムリミットは明日の6時までに適当なアプロダで、GPLで。
なんだコイツ 真正のアホだ
そうか?
301 :
デフォルトの名無しさん :2012/12/22(土) 00:08:21.07
int型配列で間にある要素を削除して詰める方法ありますか? int a[5]; a[0]=0; a[1]=1; a[2]=2; a[3]=3; a[4]=4; a[5]='\0'; a[2]を削除して間を詰めて a[0]=0; a[1]=1; a[2]=3; a[3]=4; a[4]='\0'; a[5]='\0'; としたいです。 全然方法が思い浮かばないんですが...
GPLはちょっと
>>301 人が並んでる行列を詰めるのと一緒だろ。
なにそれこわい
>>301 a[2]=a[3];
a[3]=a[4];
a[4]=a[5];
つまり、
for(i=2;i<5;i++)a[i]=a[i+1];
306 :
デフォルトの名無しさん :2012/12/22(土) 00:15:54.27
>>305 関数として一般化したらどうなりますか?
kansu(int a[] ,int integer){}
strlenした時に消した要素の分長さも減っていてほしいです。
>>298 一度、似たような課題を何度か解いたことある人が半日でやってみせて
俺スゲェーってやるような問題.大体、やねうらお辺り
309 :
デフォルトの名無しさん :2012/12/22(土) 00:44:06.72
310 :
デフォルトの名無しさん :2012/12/22(土) 00:56:01.71
オブジェクトの初期化の意味がわからないです どういうときに初期化するのですか? 初期化しないとどうなるんですか??
>>308 ,309
詰めたいエリアの途中に、0があるとNG。
初期化しないとどんなデータが入ってるのかわからない 初期化しないままでたらめなデータを使って計算すると意図しない動作になる
>>312 呼ばれる度にデータが変わるので、初期化しないと変わったデータのまま処理してしまうってことですか?
>301 #define DC(b) case b:a[b]=a[b+1]; int a[6]={〜}; switch (x){DC(0) DC(1) DC(2) DC(3) DC(4) DC(5)}
>>301 のはspliceで検索すればいい
C++にはstd::list::spliceですでに存在している
Cではそれっぽいソースをどこからともなく探せばいい
spliceについては、Javascript、php、perlの解説にその挙動が詳しい
アホか。 spliceという一般的な単語からそれっぽいソース探してなおすより 最初から書いた方がはやいわ。
↑アホ
319 :
桃白白 :2012/12/22(土) 14:55:23.68
>>318 そうか? spliceは値の挿入、値の削除、値の置換をしちゃう関数だ。
削除のためだけにspliceを実装するのはりんごを剥くために万能ナイフを
買いに行くようなもの。果物ナイフで剥けばいいじゃん。
>>318 にとって
>>301 のお題はとてつもなく難しいのだろう。
能力なさそうだからホームレスにでも転職すりゃいいのに。
322 :
デフォルトの名無しさん :2012/12/22(土) 16:38:08.22
遺伝的アルゴリズムについて詳しく説明してあるサイトってありますか?? 自動作曲をしようと思っているのですが、うまくいきません 評価関数とかをどういうふうにプログラムしたらいいのかわからなくて…
芸術系の評価関数はねーだろw 人力じゃん人力
ゲームなんかの敵アルゴリズムで経験を積んで少しずつ強くなる みたいな用途(プレステ1のアストロノーカ)には適すると思うけど 作曲みたいに人の感性に依存するものは人にしか無理だと思う。 詳しく解説した書籍は知る限りでは洋書に頼ることになるはず。 日本語書籍では↑のアストロノーカ作者が書いた本が「あった」 のだが、今は絶版となっている。
325 :
324 :2012/12/22(土) 17:31:59.88
C99(C89/C90)で OpenAL や WindowsAPI を使わずに 音を鳴らす方法を模索しています。 ・printf("\a"); や ・ncurses で beep(); までは見つかったのですが 結局ビープ音しか鳴らすことができていません。 なにかよい方法 / ライブラリなどがありましたら教えてください。 環境: Mac OS X 10.6.8 i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666)
>>324 の絶版書籍は「マッチ箱の脳」という本です。
>>325 環境依存なのでC言語の規格が定める範囲の外の話です。
汎用的な方法はありません。お使いのハードウェアに適した
方法を使ってください。
スレチだろうけど… C言語入門向けの一番のおすすめの書籍はありますか?
ふつうのlinuxプログラミング入門(青木...)
Linuxプログラミング 例題で学ぶUNIXプログラミング環境のすべて(ニール・マシュー)
下の本は中身が古くて、cvsやrcsコマンドについては歴史的な価値しかないと思う
歴史的価値とは?
SCMなんて流行り廃れが激しすぎて、今日日の主流がsubversionかgitだから
プログラミング入門なら、まつもとゆきひろ辺りが監修してた「CodeReading」
「C実践プログラミング」 でCの文法、make、gdbなど、基礎を習得 ↓ 「C言語ポインタ完全制覇」 or 「秘伝C言語問答 ポインタ編」 でポインタに関して完全理解する ↓ 「エキスパートCプログラミング―知られざるCの深層」 でスタック、ヒープ、リンカ、ローダなど周辺知識を習得 ↓ 「C言語によるオブジェクト指向プログラミング入門」 で大規模プログラムの作り方を学ぶ ↓ 「C言語デバッグ完全解説」でバグに強いプログラムの記述法をマスター ↓ 「Code Complete(上)(下)」でより良いC言語プログラムとは何かを各人で考察する ↓ 神の誕生
>>337 は?それ、ようやく現場で役に立つレベルだろ
入門スレで、現場ガーって言ってる奴は仕事経験ないだろ。 いやあったら寧ろ遠慮したい。
より酷いのか、より凄いのか、どっちだ?
「c言語によるオブジェクト指向プログラミング入門」この辺りからイラナイだろ 段階的には素直にjavaかc++でも覚えて、 デザパタなりリファクタリングなり覚えた方が悦楽に浸れるだろうし、 それに飽きてから、より高度でマニアックなプレーに走った方がソソるはず
unsigned char *fn[] ={ "a.bmp" ,"b.bmp" ,"c.bmp" ,"d.bmp" ,"e.bmp" }; ファイル列のリストが欲しいだけなのだけど、IDEにアンダーラインで指摘されてしまいます。 『Error:型"const char *"の値を使用して型"unsigned char *"のエンティティを初期化することはできません』って。 これが出来ないんじゃmain関数に引数渡せないでしょ・・・とも思うけど、俺が何か勘違いしているんだろうなあ。 すいません、教えて下さい。 msdnのどこを見れば良いのか分からなくて。 VS2010EXPRESSなのですが。
unsignedとったら行けそうな気がしないでもない
344 :
342 :2012/12/23(日) 02:41:25.71
>>343 ありがとうございます!
昔からの習慣に思考停止しておりました。
IDEがそう教えてくれているのに理解出来ない辺り、どこに出しても自慢出来る低能ですね。
つーかなんでunsignedつけたのか理由を述べよ
それは右辺が一時的にしか存在しない可能性があり、データが消える可能性がある。 fn[] ="a.bmp";だと適切なメモリを確保してくれるが。
347 :
デフォルトの名無しさん :2012/12/23(日) 03:01:42.18
c言語でグラフィックプログラムしてみたんだけどライブラリにあった 関数でコールバック関数ってのが出てきました。コールバック関数って何ですか?
与格が無いからねぇ
型をあわせるという思考があるのならこんなエラーなど 出ないはずなんだが・・・ 右辺と左辺で型が違う時点で違和感を感じないとだめ。 というか文字列リテラルは基本的にsigned charだから。
350 :
342 :2012/12/23(日) 03:25:36.96
>>345 文字に負数はないから。
現存するwindowsではない古いコード読み直したら、文字列扱う場合は
総てunsigned付けていましたヽ(´∀`)ノ
>>347 コールバックというのは何かのイベントが発生した時に
イベントをハンドリングする処理からコールバックされる
関数のこと。
割り込みハンドラなんかでよく使うけど、UI処理などでも
ボタンが押されたらイベントハンドラからコールバックを
してくれるとか、イベント系ではよくある処理方法。
352 :
342 :2012/12/23(日) 03:32:13.44
unsigned かsigned かはコンパイラのオプション。 規格ではsigned かもしれん。
charはsigned charかunsigned charのどっちかと同じ型だけど、実際にどっちなのかは処理系依存。 C++だとそれぞれ別の型。 だったような気がする。
気がするね
356 :
デフォルトの名無しさん :2012/12/23(日) 10:28:25.70
勉強し始めたばかりなんですが、 なんでメモ帳にプログラムを書いて 結果が出るんですか? メモ帳にそういう機能が付いているからなのでしょうか?
358 :
デフォルトの名無しさん :2012/12/23(日) 10:46:41.68
うん
フリーのもあるが、最低でも5万円位のメモ帳買わなきゃ
好きだね
こんにちは。いきなりですが、 txtファイルにある 14 1001 90 80 70 67 1002 60 50 40 60 1003 55 30 56 65 1004 88 70 77 20 1005 60 30 90 30 1006 100 0 100 100 1007 23 33 21 50 1008 65 66 46 98 1009 58 87 88 64 1010 30 55 63 32 1011 65 54 70 77 1013 98 89 79 90 1014 100 60 95 68 1016 30 22 56 30 という数値を2次元配列に格納して平均が高い順に並べ替えるプログラムを作成中なのですが、 イマイチどういう風に書くのかが分かりません・・・ ご教授頂けるとお願いします・・・
宿題は宿題スレへ
fopenでファイル開いて、 sscanfでバッファ読み取って、配列に代入 平均求める関数とバカソートかいて レポートを提出する
368 :
デフォルトの名無しさん :2012/12/24(月) 10:08:23.72
>>368 その上で言ってるんだよ。ゴミカス。
テメーのようなゴミカスに「特別に与える」義理はねーし、
テメーのようなゴミカスを弟子にもった憶えもねー
きょう‐じゅ〔ケウ‐〕【教授】 [名](スル)
1 学問や技芸を教え授けること。「書道を―する」
さず・ける〔さづける〕【授ける】 [動カ下一][文]さづ・く[カ下二]
1 目上の者が目下の者に特別に与える。「学位を―・ける」「勲章を―・ける」
2 師が弟子に教える。伝授する。「秘伝を―・ける」「知恵を―・ける」
↑アホ
↑アホ
勝った
373 :
デフォルトの名無しさん :2012/12/24(月) 12:21:54.84
>>369 国語辞書ひいても意味がわからんのか、ネトウヨは。。。
>>373 人に教えをこうときは「教示」で正解だと思うんだけど、なんで言い争ってんの?
「教授」だと人称(つまり、ここでは言ってる人)だから変だよ?ってことなんじゃないのか?
教示:(相手に)教え示す(ように頼む)
教授:(自分が相手に)教え授ける
更なるアホが来た
反論できないんだね
377 :
桃白白 :2012/12/24(月) 14:38:46.85
>>374 桃白白も話題に混ぜてほしい。
Aさんが教示するといったとき教示するという動作の主体はAさん。
Aさんが教授するといったとき教授するという動作の主体はAさん。
動作の主体は教示するといったときも教授するといったときも同じAさん
なわけだから、教示すると教授するに違いはない。
頂くが教授に付いている。頂くは前の動詞を自分が〜してもらうという意味にする補助動詞。
AさんがBさんに「ご逝去頂きたい」といったとき、AさんはBさんが逝去することを
Bさんにお願いしているわけ。
だから教授でも教示でもどっちだもいんじゃねってのが桃白白の結論。
さすがお前ら プログラミング以外の事には詳しいんだな
>>369 のどこをどう見たら人称につっこんでるって結論になるんだよwww
>>377 教授するという場合は、師弟関係や主従関係などの上下関係が存在する。
どこの馬の骨ともわからない名無しにいきなり「教授して欲しい」と乞われて、
はいそうですかと授ける事はありえない。
貢物差し出して、どうか教授してくださいと懇願するなら考えない事もない。
>>380 これ大事よね
どこの誰とも知らん相手から師匠になってくれと頼まれてはいそうですかとか
ありえん
道を示して欲しいというなら教えるものもいるだろう
そんなこんなでそろそろググって教授が間違いなのは、初発の人も気がついた頃だろうさ あとは蛇足、言葉遊びするよりコード書け(オレモナー)
384 :
デフォルトの名無しさん :2012/12/24(月) 15:50:27.94
日本語わからない朝鮮人が「教授」で正しいと暴れているのか?
387 :
桃白白 :2012/12/24(月) 15:56:35.66
>>380 お前は道端で知人にあって知人から「よお大将、ひさしぶり」と声かけられたら
「ふざけるな俺は大将じゃない、俺の股間は足軽だ」とぶち切れるタイプ?
桃白白なら請われれば余裕でいっときの師匠となって桃白白がもつ
バブルソートの全技術を授けてやっちゃうけどね。桃白白なら余裕でそれ
くらいこなしちゃうけどね。そうやって桃白白の弟子たちが世に羽ばたいて
いってくれることが桃白白にとってなによりの幸せだから。
日本語では尊敬語や謙譲語を使うだけで上下関係というのは生じるわけで、
上下関係にないから教えることがありえないとするなら、お前はご教示頂けないでしょうか?
と言われたときにもどこの馬の骨じゃーと頭から湯気を出さざるを得ない状況に
置かれちゃうな。お前苦労人だな。というかクレーマーだな。
388 :
デフォルトの名無しさん :2012/12/24(月) 16:01:57.08
>>386 わっ、 朝鮮人が火病った。
>>387 > 上下関係にないから教えることがありえないとするなら
違うよ、上下関係が無いから授ける事はありえないと言っている。
389 :
桃白白 :2012/12/24(月) 16:13:14.89
>>388 だったらお前は矢印でも神父でもないわけだから教示することもありえないだろ。
授けるという言葉だけが特別扱いされるものじゃない。
質問者は自ら敬語を使い下手に出ている。 これは回答者が上で質問者が下の上下関係。
バイクシェッドだね
>>389 日本語不自由なら引っ込んでなよ。矢印でも神父じゃなくても示すことはできる。
示す:
考え・気持ち・反応などが相手に伝わるように、何かの方法で表して見せる。
「誠意を―・す」「態度で―・す」「格段の進歩を―・す」
教授・教示の議論なんか今まで何度もも目にしたが 上下関係の有無を理由に誤用と主張してるやつは初めて見たわ
>>392 それは示せってときだろ。お前は答えを示せと言われたらそれに
答えることができるが、上下の関係がないことを理由に教授という
ことがありえないという立場なのだから、ご教示頂きたいと言われた
ときには敬われる立場、高位の立場にないから答えられないということになる。
395 :
デフォルトの名無しさん :2012/12/24(月) 16:48:01.83
>>369 のネトウヨさんの調査結果が全てだ。
> きょう‐じゅ〔ケウ‐〕【教授】 [名](スル)
> 1 学問や技芸を教え授けること。「書道を―する」
すなわち、「ご教示下さい」でも「ご教授下さい」でも可。人称云々も上下関係云々もこじつけ。
お前等あんまりネラー用法を増やすなよ。広辞苑がまた軽薄に採用してしまうだろう。
ちょっと宿題解いてくれってのは、「学問や技芸」を教え授けるのとはちがうだろ
397 :
桃白白 :2012/12/24(月) 17:00:11.30
>>396 プログラムの書き方を教えてくれってんだから情報技術という学問の分野であり
完全にテクニカル。そんなのは解釈次第でどうにでもなるわけで、わざわざ
あてはまらない解釈の仕方をするのがおかしい。桃白白はそれがおかしいと思うの。
萌えた
チェンジニアには技術の価値なんて分からないよ
>>395 そこに書かれている通りだ。
単に「学問や技芸を教えること」ではなく「学問や技芸を教え授けること」
授けるとは前に引用した通りに上下関係が存在する。
チョンやチャンコロにはわからないだろうが。
まだやってんのかwww
402 :
桃白白 :2012/12/24(月) 18:26:59.58
篠沢教授に全部
政治スレから逃げてきた奴は、言葉に噛み付くくらいしか出来ないが、 悲しいことに日本語嫌いだから残念な結果に。
自分の投げた柱に飛び乗って移動するって物理的に可能なんですか
それが地球上なのか月面なのか はたまた宇宙空間なのか 物理的に……と問うには そこまで要件を指定せねば無意味 あとは自分が柱を投げて 誰が移動するのか 何が移動するのか その他のこまごまとした要件を誤解のなきよう定義せねば 一切の発言は無意味 さらには物理的に可能という言葉の詳しい意味も 明確に説明せねば無意味
>>327 ありがとうございます。OpenAL がデフォルトで入っている様なので
SDL ではなく OpenAL について調べてみることにしました。
いえいえ
409 :
デフォルトの名無しさん :2012/12/25(火) 00:10:56.99
プログラム作るのまじで適性ない 就職は全く関係ない業種にしたいんだが だめかな?もうプログラムは勉強したが上手くいかないことが 多すぎて自殺したいほど疲れた。
がんばれがんばれ がんばればなんだってできる にんげんの可能性は無限だ がんばりが人間の力だ 最後の最後までがんばることが肝心だ がんばった先に素晴らしいことがまっている がんばることこそ人間の証だ とにかくがんばれ がんばってみろ
>>409 適正がないというほどやったのか?
学校の勉強程度じゃ
412 :
デフォルトの名無しさん :2012/12/25(火) 00:27:32.54
さっさと自殺しろってレスが多いと思いきや
>>410 >>411 ありがとう!
とにかくプログラム作って達成感なり感じれるようになったら
孤独とか不安ってのは無くなりますかね?
社会に活かせなくてもいいけど金にならなくていいけど
精神的に満たされたい
413 :
デフォルトの名無しさん :2012/12/25(火) 00:41:20.99
うん
414 :
デフォルトの名無しさん :2012/12/25(火) 00:55:05.98
自分の作ったプログラムを我が子のように感じる人もいるそうだな。 何か分かる気がするわ。
415 :
デフォルトの名無しさん :2012/12/25(火) 01:08:18.92
ほとんど大きいミスしないプログラマっているらしいな 逆にミスする奴は死ぬほどするっていう 情熱大陸に出てた奴はミス少ないらしい 適性があると心は満たされるだろうなぁ
10回間違う奴か1回しか間違わない奴のどれか 間は無いんだよなぁ
間違ったっていいんだよ、リリース前までに発覚すれば 間違ったっていいんだよ、同じ間違いを繰り返さなければ
ミスの影響の大小は条件が同じならば単なる運。
運だね
>>13 ,110,217,225,246,252,290,293,355,363,419
なんだか妖怪っぽい
そうだね
「妖怪っぽいね」って言って欲しかった
やだね
俺はコード書くだけでエクスタシー感じるから天職なのだろうか
指示されたフローに黙々とエラー対処を埋め込めるドカタ気質が有るなら天職だね
>>412 プログラマの一部は宗教から入るため、必然的に不安や孤独感が無くなります。
すいません。 あるRGBの色と、別のRGBの色とがどのくらい近似しているか、 ということを評価したいんですが、どういう計算結果を評価するのがベストですか? 3次元上の2点間距離を求める公式に、R,G,Bを当てはめるというのは考えましたが、 それ以外にもっと良い方法はありますでしょうか。
RGB(50a000)を、RGB(009700)とRGB(8b7300)の近いほうの色で置き換えようと思ったら、 3次元上の2点間距離の公式に当てはめると、 RGB(50a000)とRGB(009700)は、sqrt(6481)に、 RGB(50a000)とRGB(8b7300)は、sqrt(5506)になって、 後者の方が似た色と判定されてしまいますが、 実際の色を見てもらえれば明らかですが、前者の方が近いです。 どうしたらいいですか
だから別の色空間に変換してから距離を決定する
どの色空間が一番いいんすか とりあえずYUBに変換してから、3次元上の2点間距離を求める公式に YUBを当てはめてやってみましたが、RBGよりかはよくなりましたが、まだいまいちです。
×YUB ○YUV
色相が近いのを選ぶようにしたら?
HSVだは
ライブラリの静的リンクと動的リンクがよく分かりません 動的リンクは実行時に読み込むもので、静的リンクは実行ファイルに既に含まれているものって解釈でいいですか? 例えばC言語で使うstdio.hはコンパイル時には必要だけど実行時には必要ないので静的リンクですか? phpなどの言語でincludeしてるのは動的リンクでしょうか。 stdio.hのライセンスを見たらLGPLで、LGPLは動的リンクの時だけ派生ソフトと見なさないらしいので stdio.hをincludeしてるプログラムは全てLGPLライセンスに従って公開する必要があるのですか? よろしくお願いします
.Hファイルはリンクとまったく関係ありません
僕の解釈だと.hが静的リンクっぽく感じるんですが、どこが間違っているんでしょう?
includeはプリプロセス
距離*(判断(オマエ or 拾って来た)基準になるz値)
>>436 Cコンパイラの仕組みっていうのは
1.プリプロセッサ(.hファイルの読み込みとマクロ展開)
2.コンパイル(.cファイルを.objに変換)
3.リンク(.objファイルを実行形式にリンク)
という仕組みになっている。.hファイルはコンパイル以前に
展開されるものだからリンクには関係ない。
スタティックリンクはライブラリに含まれる.objファイルを
リンク時に実行形式に含めるもの。
ダイナミックリンクはライブラリに含まれる.objファイルを
実行時に読み込むもの。
えっ?
>>436 ライブラリの実態はobjファイル
コンパイルした時に一緒にするのが静的リンク
実行するときだけ一緒になるのが動的リンク
速度は静的リンクに分があって
メモリ効率や差し替えには動的リンクに分がある
嫁=静的リンク
セフレ=動的リンク
でもライブラリとオブジェクトファイルはやっぱり区別したくなるよね。
ここみると…自分もはじめとっつきにくい部分ではあるよね ライブラリとかコンパイルやリンクの概念。
手動で.EXE/実行ファイル、.OBJ/.LIB/.o、.DLL/.so の各ファイルを一通り作ってみて使ってみればわかるじゃない
>>447 バイナリエディタで機械語でも入力してろカス
cygwinでコンパイルすると95%くらいの確率で なんかだらだらと文章がでてやっとコンパイルされるんだが、 これ表示させないようにする方法とかあるのか? だらだらとでる文章は [main] gcc〜とか[main] gcc-4〜 とか長々としたもの。 警告文とかではない。
それって g++ のテンプレート関係じゃない?たしかにアレはまったく持って意味不明というか それはそうと gcc4 から specs はなくなったそうで、じゃ、だれが -v をデフォルトオプションにふくませたんだろうね
釣り質問なので晴れませ~んwwwww
454 :
デフォルトの名無しさん :2012/12/29(土) 15:47:47.06
0 [main] collect2 6904 fhandler_disk_file::fixup_mmap_after_fork: requeste
d 0xFFE90000 != 0x0 mem alloc base 0x0, state 0x10000, size 65536, Win32 error 4 87
347 [main] collect2 6904 C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\collect2.exe
: *** fatal error in forked process - recreate_mmaps_after_fork_failed
>>450 だけど、こんなかんじだ。
けせないのかこれは?
ファイルをストリームであつかうのはなぜなんでしょうか ランダムアクセスなシーケンスですよね ネットワークやパンチカードなら順次送られてくる流れという見方がしっくりくるのもわかります でも現代的なファイルまでストリームでやる意味は無いと思います
現代的なファイルってのは ひとつ10GBとか50GBあるファイルのことか?
>>455 意味がないと思うなら、勝手に止めればいいと思う。
ただし、その考えを他人に押しつけるのだけは勘弁してくれ。
>>455 別にランダムアクセスしたければいかようにもできるし、でもランダムアクセスって固定長前提の様な気がするんですけど、固定長って今でも現役なんでしょうか?>プロの方
459 :
デフォルトの名無しさん :2012/12/29(土) 23:01:31.93
mallocでポインタのポインタを作って、それを関数に引数として渡した後、どこでfreeをするのが正解ですか?
まずはお前はどこが政界だと思っているんだ それを書けよ
使い終わったらすればよい その後すぐ終わるプログラムならいちいちしなくていいよ
>>459 呼び元でmallocするなら呼び元でfree、呼び先でmallocするなら、解放用の関数作ってそこでfreeさせるようにしている。
>>459 基本的にはmallocしているところと対称の位置でfreeするよう考えながらプログラムするといい。
例:
ブロックの最初でmallocして、最後でfreeする。
for () {
p = malloc();
...
free(p);
}
最後に利用したところでfreeするという方法もあるが、ダングリングポインタが
発生する可能性があがるのでお勧めしない。
途中でリターンしたいやろうが
そういうつまらない突込みしているキミが基本を外すのは10年早い。
>>464 その作法はwin32apiでも(一様ですが)仮定されているので、それはそれで一つのやり方だとは思うですが、それを守っていると正直つらいときがあります。
(くどくど言い訳16行を省略)
もうBoemGCでいいんじゃないですかー
お前はレス禁止。うんこスレに引っ込んでろ。
今日日、win32apiを叩かないとダメな仕事って何だろう
>>459 Foo** make_foo()
void delete_foo(Foo** foo)
のように領域を確保する関数、関数型マクロを用意する
仕様ですが 安倍内閣は危ない核
一様じゃなく一応でしょ
473 :
桃白白 :2012/12/30(日) 19:48:47.81
LIFOつくって退避する。 チンカスが寄ってくるから続きはうんこスレでやれ。
475 :
桃白白 :2012/12/30(日) 20:38:38.59
>>474 えーわかんなーい、桃白白そんな適当な説明じゃわかんなーい。
LIFOてスタックでいんでしょ。スタックをどう使うの? そこんとこ教えて。
push 3 push 5 push 6 if(行き止まり) pop & print // 6 戻った pop & print // 5 push 4 if(行き止まり) pop & print // 4 戻った pop & print // 3 push 1 push 2 if(行き止まり) pop & print // 2 戻った pop & print // 1 push 0 if(行き止まり) pop & print // 0 という感じかな
> 再帰を使わずに > 再帰を使わずに > 再帰を使わずに > 再帰を使わずに お題も理解せずにドヤ顔でウンコードを張り付けるバカってなんなの?
479 :
桃白白 :2012/12/30(日) 23:17:03.74
>>476 見た。桃白白いま考えてる。超考えてる。
>>477 桃白白、スタックオーバフローが超怖いから再帰しないやりかたを知りたいの。
>>479 再帰関数を自作スタックを使うように書き換えるだけでよくね?
基礎だからググればサンプルも山ほど見つかるんじゃね?
>>479 >スタックオーバフローが超怖いから
平衡二分木が現実的かと
昔は同じくスタックオーバーフローが超怖いので非再帰にこだわっていたこともありましたソースが発掘できたらあげます
484 :
桃白白 :2012/12/31(月) 02:19:23.24
485 :
桃白白 :2012/12/31(月) 02:40:30.37
>>483 もらう。gotoでできちゃうわけ、gotoすげー半端ねー。
平行二分探索木はバランスとっちゃうやつね、知ってる。
>>485 いや、これは struct Node に作業用変数を設け、巡回時(int lib_output(struct Lib_node *p, int (*out_f)(void *)))に戻り位置を記録しておくもの。
これといった必要性もなく goto を使ってしまったと思っています。いずれにせよ当時は二分木の危険性を過大視しておりました。DOSだったし。
487 :
桃白白 :2012/12/31(月) 06:37:12.05
状態変数もいらないのか。インデントしなければこれでできちゃうな。 void a(Stack s, Node n) { while (n != NULL) { Stack_push(s, n); n = n->right; } } void Tree_dump(Tree tree) { Stack s; Node n; s = malloc(sizeof(struct Stack)); a(s, tree->root); while (s->root != NULL) { n = Stack_pop(s); printf("%d\n", n->value); a(s, n->left); } free(s); }
-- Stack s; s = malloc(sizeof(struct Stack)); -- 腐ってやがる。
489 :
桃白白 :2012/12/31(月) 08:02:57.83
>>488 ____
/ \
/ _ノ ヽ、_ \ そんなこと言われても
/ (●) (●) \ 桃白白どうすりゃいいのさ
| (__人__) |
\ ` ⌒´ /
/´ `\
/ / l l .
__l l_.[] _____/_/__
\, ´-'ヽ
ヾ_ノ
|
|
|__ コロ・・・・
_____\ コロ・・・・
()__)」
s が NULL かどうかチェックしろ、ということでは? 実質的にいるのか?
typedef struct Hoge *Hoge って気持ち悪くない?
>>489 今すぐ、死ねばいいよ。↓これも
> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);
うん
494 :
桃白白 :2012/12/31(月) 09:48:02.55
mallocの戻り値はポインタだけど struct Treeとかstruct Stackはポインタなの? ポインタだとするとmallocの引数がポインタのサイズになってておかしいよ
あ、ちゃんと読めてなかったtypedefしたのとstructのままので分けてるのか 気にせんといてー
>>494 お前を含めて、わからないバカ共は死んだ方がいい。
死ぬのがいやならウンコスレでウンコこねて遊んでろ。出てくるな。
>>491 typedefしないと、変数を定義する際にイチイチstructって書かないとダメだろ
>>494 Tree make_tree(){ return (Tree)malloc(sizeof(struct Tree)); }
free_tree(Tree *tree){ free(tree); }
vipのAAって久々に見たけど、他人をイラだたせるのにスゴク効果的だな
> typedefしないと、変数を定義する際にイチイチstructって書かないとダメだろ お前もバカだな。そういう意味じゃない。
>>498 typedefすること自体に文句つけてると思ったのかよw
>>498 お前破壊的にバカ。こんなバカ久しぶりに見た。そういう事じゃない。www
>
>>494 > Tree make_tree(){ return (Tree)malloc(sizeof(struct Tree)); }
> free_tree(Tree *tree){ free(tree); }
503 :
デフォルトの名無しさん :2012/12/31(月) 15:20:00.79
動的二次元配列を0で初期化したいのですがfor でまわす以外に方法ってなにかあるのでしょうか??
calloc
優しい奴が多いな。
エディタ何使って開発してますかー VisualStudioはどうでもいいので、回答しなくて結構ですよ
>>508 微妙に違う。PGの適性の無いバカを煽ってるだけ。
おい、白白。おまえがクソコード撒餌したおかげで記録的なバカが釣れたぞ。
反省文書け。
511 :
デフォルトの名無しさん :2012/12/31(月) 17:19:40.07
>>488 と
>>492 は別人だ。
解説が必要なバカも同罪。わかるまで考えて遺書か辞表か反省文書け。
しかもおせっかいな通りすがりがヒント出してるのに。
malloc,freeの直書きが気持ち悪くてつい
優越感に浸っちゃってるつもりなんだろうな、かわいそうな人
その程度じゃ「PGの適性が無いバカ」とまでは罵らねーよ。
普通は関数マクロでメモリ取るよね?
日常的にcなんて触るもんじゃないし
具体的に書けないのは、指摘され返されたら面目丸つぶれだからなの?
三人ぐらい居てカオス
>>518 まず罵ろうというのがおかしくね?
幼少時代になんかあったの?
だいたいみんな、興味を持ち出して、BSD付属のコマンドを覗いたぐらいから、 大学を卒業してM$AccessやPHPで仕事をする
>>524 さあ、なんでだろうね。わからないけどバカみると吐き気がする。
今日日、cで仕事をしようなんて、大体は幼少時代に何かあった人たち
typedef struct Hoge *Hoge;ってどっかの流派であるの? C++に慣れた頭からすると、C++だとstruct HogeはHogeという型名でもアクセスできるから、混乱しそうだなとは思うんだけど。
cじゃ変数定義するときにstruct付けないとエラー出るよ gccないの?
確かに俺も混乱しそうだと思う
初めてパッと見たときに勘違いする
というのはわかるが、
>>515 には何がダメなのか解説してほしい
typedefが理解できてないだけなんじゃないか?
はあ? 気持ち悪いtypedefだがそんな事で罵っていない。
>>488 は引用が一行足りないので、もしかするとそれで煽ってたのかもしれないが、
>>492 みて疑問を持たないバカは死んだ方がいい。
>>492 > Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);
アマチュアはプロジェクトに沿ったコーディング規約を使えば良い 自動車業界なんかだと、MISRA-cなり規格やら検査ツールがあるらしい きっと、年末年始や土日祝日も開発室に篭って仕事なんだろう
>>533 BSDなり、メモリ確保するあたり
あんなの幼少時に何かあった人たちだよ
計算機に育てられたか、計算機の中で生まれたか
>>531 具体的にコードで指摘してみろよ、バーカww
やなこった。悔しいかバカ。w
自信がないからできないだけ
>>533 #define MALLOCしとくとメモリアロケータをごっそり入れ替える事が容易。
ツールキットによっては独自のメモリアロケータ使う事が必要な場合もあるので、
オープンソースな開発ではかなり普通に使われているテクニック。
>>538 うんこQzが得意とする炎上学習法。ww
「コードコード」と必死に連呼するさまもQzそのもの。
というわけで、修正
> 適性の無いバカは哀れだねえ。気づいて無いのは白白と
>>498 とバカのQzの三人だけだろうな。
自 信 が な い の で で き ま せ ん
悔しそうだな。バカ。 白白が気付いて反省文書くまでまってろ。w
意訳:自信がないのでできません
意訳: バカでわからないので教えてください。
意訳:バカなので答えることができません
バカなので句点の後に草を生やしてしまいます
桃白白ってただの無知な初心者だったのか コテハン使うくらいだからそれなりに骨のある奴かと思ってたわ
548 :
デフォルトの名無しさん :2012/12/31(月) 19:28:40.38
意訳: バカでわからないので教えてください。
意訳:バカですが恥ずかしいコードを晒すことは何があっても回避します
意訳: 無知でバカなので
>>483 のようなウンコードも平気で晒します。
見た瞬間めまいがしてすぐに閉じた。w
意訳:バカなのでコテハンの存在が疎ましく難癖つけて憂さを晴らします
バカなので肥溜めに自ら入り込んでしまいます
バカなのでQzと同じ土俵に立っていることがまるで理解できていません
Qzじゃ無いとしても、コードコードと騒ぐ炎上学習法を真似て実践するクズだから、 こんな簡単な事も気づけないんだろうな。惨めすぎる。 白白はとっとと反省文書くように。その他のQzを含む気付けないバカ共は遺書を書け。
自称霊感が強い、なので他の人には見えないものが見えてしまいます
557 :
デフォルトの名無しさん :2012/12/31(月) 20:52:24.83
>>482 だけじゃバカにはわからないらしいからもう少しヒントをやろう。
これがおかしいコードだと気づけないバカは年越さずに死ね。
> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);
> Tree_add(tree, 1);
何でこんなに荒れるんやろねぇ まぁ何にしろ書き込んでるのはひとりやろけどね
バカが分をわきまえればいい。
オレ(
>>492 )は
>>488 じゃないわけだが。自演に見えるのはバカの証拠。
でも、教えてもらったらきっと死にたくなるよ。えれー基本的な事だから。
こんなバカどものウンココードで世の中は動いてるんだろうと想像すると
こっちが死にたくなってくるけどな。
> こんな××どもの×××コードで某巨大掲示板は動いてるんだろうと想像すると > こっちが死にたくなってくるけどな。
>>561 とっとと思いを遂げろ
自意識過剰のバカ
>>561 くだらないやり取りを、自演という表現に換えただけですよ。
>>557 で気付かないバカは分をわきまえた方が生きやすいぞ。
入門編スレで息巻く先輩、マジパネーっす
入門者が質問するスレであって、バカが答えるスレじゃ無いわけだ。
答えないやつがなに偉そうに言ってんの?って感じ
×答えない ○答えられない
自称回答者のバカには教えてやらない。
572 :
桃白白 :2012/12/31(月) 21:50:35.76
>>528 typedef struct Hoge *Hogeの流派はないんじゃね。すくなくとも桃白白は
同じことをする人を知らない。マジでかーやめたほうがいいのか。
C++だとtypedefでどんな名前にしちゃうの?
マジカッケーっすww ところでわりんすけどタバコ買ってきてもらえません?
574 :
デフォルトの名無しさん :2012/12/31(月) 22:06:11.68
int **matrix; matrix = (int **)calloc(gyo,sizeof(int)); if (matrix==NULL){ exit(1); } for (i=0; i<gyo; i++) { matrix[i] = (int *)calloc(retu,sizeof(int)); if (matrix[i]==NULL) { exit(1); }} すみません、これなんですが、 callocで配列は確保できているみたいなのですが ところどころ(5こおきに等)0になりません 間違いをおしえてくださいmm
>>574 もしかして
sizeof(int) != sizeof(int*)
>>572 構造体とそれへのポインタを同じ名前にするとかキチガイ沙汰。
とっとと
>>557 で指摘されてるのなおして反省文書くように。
バカ共が必死で答えを待ってるぞ。
キチがキチと呼ぶ
>>576 変数じゃねえだろ型にtypedefしてるだけだ
579 :
デフォルトの名無しさん :2012/12/31(月) 22:33:58.00
>>575 すみません(int*)って何をあらわしてるんですか??
とりあえずsizeof(int) == sizeof(int*)でした
キャストもわからないんじゃ、入門書を3冊ぐらい読んでから またくるんだね。
>>580 Cの規格書読み直せバカ
あ、読んでねえからそんな発言がでんだな
583 :
574 :2012/12/31(月) 23:44:20.84
>>581 sizeof(int *)
今までわからずにつかってましたが、というかつかってないが
後ろの部分ってキャストだったんですね
(int **)calloc
の(int **)もよくわかりません、**ってのが特にわかりません
どうかおしえてください
sizeof はキャストじゃないっぺ。
585 :
デフォルトの名無しさん :2012/12/31(月) 23:55:19.30
>>582 お前がバカって事は良くわかってるから、そんなに必死でアピールしなくてもいい。
もうすぐ年越すけどやっぱりわからないんだろ。さすがバカ。wwww
>>574 再現する最小構成のソースを貼ってくださいと何度言わせれば
おそらくmatrixへのアクセスミスだろうとエスパーしてみた
5個おきではないので違うっぽいけど
http://codepad.org/Phyx7G5V >>583 int**は読んでそのまま、intへのポインタへのポインタ。でっていう。
ポインタはCで挫折しやすい所だから、まずはしっかり勉強した方がいい。
ここで一から聞くのではなく、図などで分かりやすく説明してるサイトで勉強して、
そのうえで分からない所をここで聞け。
キャストなども同じ。基礎を勉強しないでノリでサンプル動かしてる感じかい?
587 :
574 :2012/12/31(月) 23:59:06.50
>>584 ですよねー
sizeof(int *)
は(int *)のサイズ求めてるだけですよねー;
もしかして581って違う人にいってたとしたらはずいな;
588 :
574 :2013/01/01(火) 00:04:44.35
>>586 ありがとうございます、すいません
はろうとしたのですが、なんか忍者修行中で、リンクはれませんでした;;
ですね。勉強します。
苦しんで覚えるC言語入門(サイト)
は一通りしました。
やり方ググッてとりつけてるかんじです。
589 :
574 :2013/01/01(火) 00:08:23.66
590 :
574 :2013/01/01(火) 00:09:35.95
すみません、OTZはれましたOTZ
最新のヴァkはh抜かすのもできねーのかよ
>>572 やりたいことは理解したつもりです。結論からいうと、
>>484 のまずいところは以下の2点
1) malloc() して得た領域が 0 クリアされていることを仮定している。
> Tree tree = malloc(sizeof(struct Tree));
の直後に
> Tree_add(tree, 3);
をおいてしまっている。たぶん、c++/java のコンストラクタにあたるものを C にするときに書き落としてしまっているかと。
2) malloc() の帰り値はチェックしたほうがいいんじゃないかな?
>typedef struct Hoge *Hoge
名前空間が違うからねえ可能といえば可能だけれども。もう C++/java 的な考え方に染まっておられるんですね。
確かに非再帰に書けばスタックオーバーフローの恐怖からは逃れられるけれども、この問題の場合も私ならば再帰的に書いてしまう。
http://ideone.com/fya8EI 木構造は再帰的ゆえに木構造を扱うアルゴリズムも再帰的に書いて楽をしたくなってしまいます。
スタックオーバーフローは別の手段で回避しようかと、リンク時にスタックサイズを指定したり、ああ、最近 AVL 木を添削してもらったのでぼちぼち使い始めています。
あけおめ!
>>539 なるほどねえ、現に私ことQZも早々とアロケータはデバッグのための自前物にしちゃってるからねえ、オープンソースものに参加するのもいいかもしれませんね。
594 :
574 :2013/01/01(火) 00:30:39.17
591 最近のバカはその後httまで抜かすも戻るを押し書き込んだ模様です
h抜かす必要ないのに
596 :
桃白白 :2013/01/01(火) 00:45:04.73
>>592 rootにNULLを入れるのが抜けてるってことね。
mallocのNULLチェックは質問の本旨と関係ないから省いた。
AVL木の添削したのはじつは桃白白だったりしちゃうんだけど、削除の方はできた?
>>596 その節はありがとうございます。:-)
今のところはうまくいっているようですが、まだ自分で再構成できるまでには至っていない、削除ルーチンはまだだし、当分は無理かなあ、まだ怖くて怖くて。
598 :
桃白白 :2013/01/01(火) 01:14:25.79
>>597 二分探索木の削除はわかる? AVL木の削除はそれに平衡処理を追加するだけだ。
>>598 二分木の削除はOKですが、木回転が一回で終わらないのが今のところの難所になっています。ああ、これは本のサンプルを見たほうがはやいかもしれませんね。
600 :
桃白白 :2013/01/01(火) 02:58:17.72
>>599 削除時に回転が必要になるのは左右の木の高さの差が2になったとき。
左右の木の高さの差が2になるのは木の高さが1減ったとき。
木の高さが1減るのは木のバランスがイーブンになったとき。
木のバランスがイーブンになるのは
左に傾いている木の左のノードを削除したとき。
右に傾いている木の右のノードを削除したとき。
木の回転が行われたとき。
木のバランスがイーブンでなかったら木の高さは変わってないわけだから
平衡がとれてるってことでその上のノードでは回転は必要なくなる。
削除時の回転は、回転後にバランスがイーブンになるものと、
回転後にバランスがイーブンにならないものとがある。
分類するとこうなる。
http://i.imgur.com/8xf54.png ノードのバランスをチェックすることで左への回転か右への回転かを
わけることができる。子のバランスをチェックすることで一重回転か
二重回転かをわけることができる。一重回転のときは子のバランスを
チェックすることで回転後のバランスをわけることができる。
二重回転のときは孫のバランスをチェックすることで回転後のバランスを
わけることができる。
削除時はパターンが2個増えて、平衡したという判断の仕方が変わるだけ。難しくないっしょ。
>>572 C++の場合、
struct Hoge {
int a;
};
自体が
typedef struct Hoge {
int a;
} Hoge;
相当になる。というかclassとstructがほとんど違いがない。(メンバ変数のデフォルトのアクセス制限の違いだけだったはず)
602 :
桃白白 :2013/01/01(火) 03:33:55.52
>>601 なるほどー、桃白白もそう書くことにしようかな。
> rootにNULLを入れるのが抜けてるってことね。
年を越したらようやく正解が出てたか。 白白は反省文書くように。Stackも同様。
こんな簡単な事を恥ずかしくないコード出せとか必死で煽ってたバカは死にたくなっただろう。
もう死んだ?
>>549 とか
>>549 とか
>>549 とか
>>549 とか
まぐれで動くこともあるから、普通にレビューの経験積んでればこの程度の事は一瞥で
わかるようになってるもんだ。
3年以上PGやっててわからなかった奴は才能無いからホームレスに転職しろ。
>>603 たしかにこの種のバグはデータ構造を扱うようになると一度は出会う、QZのような馬鹿だと何度も首をかしげることになりますね。
そこで、
>>592 に一端を示してもいる「QZアロケータ」では malloc()したあとにランダム値を書き込んで返すという cmalloc() と真逆のことをして早期発見に努めています、本質的な対策にはなっていませんけど。
もっとも最近はめっきりと出会うことはなくなりました。
でも本当は c++ にさっさと移行してコンストラクタをきっちり書くことでしょうね。
>>603 ご指摘感謝アマチュアには身に余る配慮でした。
自然対数の底の展開もなんかやらかしてるのかな?
>>600 子ノードを左右とも持つノードの削除で思考/試行格闘中です。
>>603 結局おまえば出せずじまいじゃん
ちょろっと晒してドヤ顔してればいいものを
よほど自信がなかったんだろうなwwバーーカ
607 :
デフォルトの名無しさん :2013/01/01(火) 12:46:41.66
>>605 こんな簡単なのでドヤ顔で指摘しろとか、本当にバカって惨め。
>>515 でヒントのヒント、そのあとでヒント
>>557 を出してるのにバカには
わからなかったんだな。吐き気がするほどのバカ、破滅的に頭が悪い。
んじゃ、お年玉代わりにバカ向けにドヤ顔で解説してやる。感謝しろよ。バカ。
>>515 の「おせっかいな通りすがり」とは彼ら(
>>503-505 )
-------------------------------------
>>503 > 動的二次元配列を0で初期化したいのですがfor
> でまわす以外に方法ってなにかあるのでしょうか??
>>504 > calloc
>>505 >
>>503 > memset
-------------------------------------
続いて
>>557 の解説
mallocの後の領域初期化は要注意ポイント。
それをいきなりTree_addに渡している。Tree_addの引用が一行だけなら
Tree_addで初期化する可能性も否定できないが、2行引用すればバグであること
が明らかにになる。
> Tree tree = malloc(sizeof(struct Tree));
> Tree_add(tree, 3);
> Tree_add(tree, 1);
ふーん
>>607 解説っつーか、バカだの死ねだの発言が問題なわけですがそれは理解できてるんですか?
バカにバカといって何が悪い。
うん
なんでこう回りくどい人なんだろ
613 :
デフォルトの名無しさん :2013/01/01(火) 14:56:58.50
バカって言われたくなければ、自分の順位を正しくはかる事だ。
正月くらい美しく過ごしなさいな
>>613 普段どんな惨めな生活を送ってるんですか?
よほどでなければこうまでねじ曲がらないと思うんですけど?
616 :
デフォルトの名無しさん :2013/01/01(火) 15:48:41.85
バカと言われたのがそんなに悔しいなら、最初から出しゃばらなきゃ良かったんだよ。 お前のようなバカは、自分のバカさを認識して分をわきまえた方が生きやすいと思うぞ。
マァその小さすぎる梅干し程度の脳味噌じゃ自前で認識できないようだから 有難くも私がお前はバカだアホだマヌケだと懇切丁寧に教えてやっているんだがな カネとってもいいくらいだ
こんな底辺スレで何をそんなに大きく出ちゃってるんだこのバカは 実生活でのストレスやらはこんなところくらいでしか発散させられないほどのバカなんだろうな
>>618 底辺PGなんてそんなものだ
察してやろうぜ
争いは、同じレベルの者同士でしか発生しない
まあこれで少しは懲りたでしょうな
623 :
デフォルトの名無しさん :2013/01/01(火) 16:50:05.51
「バカだの死ねだの発言が問題」とかいいながらバカを連発して回りくどいバカだな。
すいません。 ビットマップ画像に、アルファベット、ひらがな、カタカナ、数字、記号を入れて、 指定した文字を画面に描画する処理を作っているんですが、 if分の分岐が100を超えてしまうと、VCがコンパイルエラー表示してしまいます。 if分の分岐を使わずに、指定した文字の座標をセットするにはどうしたらいいでしょうか
>>623 バカ認定してる相手にバカって言われてそんなに悔しいの?www
だったら最初からかみついてくるんじゃねーよバーーーカww
その分岐の一部を貼ってみなよ。
>>624 後学のためその力作のソースを是非とも見てみたいから
ideoneとかにうpしてくれると
新年から討論の種が増えてわたくしはうれしいので
是非ともうpしてちょーだい
if分岐使わないって、関数ポインタの配列によるテーブル化のこと指してるのかな?
629 :
デフォルトの名無しさん :2013/01/01(火) 17:01:17.32
>>625 そんなに頭が悪くて生きているのつらくないか? バカだからそれすらないのか。
自然はうまくできてるな。
いや、普通にこういうのが並んでるだけだけど。 if (strcmp(c_jp, "あ") == 0){ pos->src.x = CHAR_SIZE*0; pos->src.y = CHAR_SIZE*0; } else if(strcmp(c_jp, "い") == 0){ pos->src.x = CHAR_SIZE*1; pos->src.y = CHAR_SIZE*0; } else if(strcmp(c_jp, ":") == 0){ pos->src.x = CHAR_SIZE*20; pos->src.y = CHAR_SIZE*2; } else if(strcmp(c_jp, " ") == 0){ pos->src.x = CHAR_SIZE*21; pos->src.y = CHAR_SIZE*2; } else if(strcmp(c_jp, "「") == 0){ pos->src.x = CHAR_SIZE*22; pos->src.y = CHAR_SIZE*2; } if (c == 'a'){ pos->src.x = CHAR_SIZE*10; pos->src.y = 0; } else if(c == 'b'){ pos->src.x = CHAR_SIZE*11; pos->src.y = 0; } else if(c == 'c'){ pos->src.x = CHAR_SIZE*12; pos->src.y = 0; } else if(c == 'd'){ pos->src.x = CHAR_SIZE*13; pos->src.y = 0; }
なんつーかこう、isascii()とか文字コード判定処理を使おうという 知能は働かないのかね。
#define NCHARTYPE 128 typedef void (*funcp)(); void str_a(); int main(){ funcp str_tbl[NCHARTYPE]; str_tbl['a']=str_a(); } こんな感じのコードを書きたいけど、書けない学部生なら昔見た
data = array[あ]; ってやるとdataに"あ"のX座標とY座標が入るみたいなイメージ。 STLのマップとかでできないですかね
stlのmapでやれよ cでやるならhash関数ぐらい自分で書け
stlのマップのキー値ってchar* の文字列でもいいんでしたっけ
C言語にSTLは無いのでできません
>>637 cstlってライブラリならあります。glibとか基本的なデータ構造は用意されてます
>>634 それって、構造体ポインタの配列(hash)じゃないの?
>>630 普通は
"あ" -> 0, "い" -> 1
'a' -> 10, 'b' -> 11
を計算で求める。でも、計算式を考えるのが嫌だったら。
↓こういう関数作れば解決。
int z(const char *c_jp)
{
if(strcmp(c_jp, "あ") == 0){ return 0;}
if(strcmp(c_jp, "い") == 0){ return 1;}
}
int e(char c)
{
if(c == 'a'){ return 10;}
if(c == 'b'){ return 11;}
}
計算結果求めるのに結局if文がいっぱい並ぶじゃないすか
elseでつないでいるから複雑すぎると言ってコンパイラが降参する。 if () return v; これの連続だけなら楽勝で通る。
もっとかっこいいやつがいいです
{ pos->src.x = CHAR_SIZE*11; pos->src.y = 0;} この部分、関数かマクロで纏めろよ
>>642 if () return v;
をうまく配置して格好いい絵でも書けよ。
>>630 21世紀型プログラミングの真髄を垣間見た
これこそが今の時代に求められるC言語の使い方だ
わたくしはこれ以上この美しいソースを書きかえることなんてできない
>>633 おまえさー、スゲー簡単な答えかもしれないって事を考えずにコードコードと煽ってたのか?
スゲー簡単な答えが出てきたら(実際出てきちゃったんだが)どうするつもりだったんだ?
バカの思考回路は良くわからないな。
>>646 そうじゃなくて、煽ることばかりのお前の態度を指摘していたんだよ(最初から
それが読み取れないのはバカだから?日本人じゃないから?
int hash(const char *cp){ if () return z(); if () return e(); return -1; } #define INSERT(a,b,c) Foo hash_tbl[]={ INSERT(hash("あ")), INSERT(hash("い")), ... } アイディアだけ書く
C++スレへ行ってSTLの使い方聞くだけでいい
>>649 このぐらいならSTLなんてイラナイだろ
651 :
デフォルトの名無しさん :2013/01/01(火) 17:39:47.57
>>647 それに対抗するために煽り返していたのか。バカの後付けの言い訳は見苦しすぎる。
足りない頭で必死に考えて、そんな回答ないと確信して煽ってたんだろうな。
バカすぎwww
この半角のおっさんここにもいるのかwwww うかうかしてらんねーな
>>650 STL使えるVC++でSTLを避ける意味はない。
>>651 >そんな回答ないと確信して
ここら辺がバカすぎ
全く理解できてない
あるかないかは関係ないだろwww
C++スレ池
>>653 ひょっとすると、visual studioでgnuへ貢献しようとしてるかもしれないだろ
gnuへ貢献ってstl使っちゃいかんの?
659 :
デフォルトの名無しさん :2013/01/01(火) 17:57:52.64
>>655 つまり、気に入らない態度に対して同じ態度で煽り返していたと。バカ丸出しwww
バカは後付けで言い訳考えない方がいいぞ。
基本的にcで書ける人の方が多いからcで書けってRMSが唱えてたよ いろんな分野の混じったとき、c++が読めない人も居るからとかなんとか 論文だか草稿だかならみた記憶ならあるけれど
とかいいつつ、 gcc は c++ で書き直されたんだよな。
>>661 スラド民の誰かが、中の人が中二病起こしたって書いてたな
技術的な詳細なんてシラネ。そんな人間がこの板を通り掛かるわけもないだろうし
>>659 同じことをしてやればさすがに理解できるだろうからだよwww
分かったかバカwwwww
しかし、バカにバカって言って何が面白いのか
if () else if() else if() ... が、どのくらいいけるか試してみた。VC++ 500行OK, 700行はだめ。 clang, gccは10000行でもOK VC++ 弱すぎ。
665 :
デフォルトの名無しさん :2013/01/01(火) 18:13:09.74
>>663 残念ながらバカにバカといわれても全然平気。
それより気に入らない態度を自分が真似できる神経を尊敬する。バカってある意味最強だな。
>>665 これが部下なら鉄拳制裁してやれるのにな
667 :
デフォルトの名無しさん :2013/01/01(火) 18:18:51.68
やられたら手段を選ばずやり返すって、日本人のメンタリティじゃないよね。
>>665 バカと言われるのは平気と言いながらもレスを絶やすのはできないほど高いプライドをお持ちのようでwwww
669 :
デフォルトの名無しさん :2013/01/01(火) 18:23:29.49
バカの正体は多分↓これだな。これをバカにされたのを粘着してたのか。読み返してみてもバカすぎる。www
From: [498] デフォルトの名無しさん <sage>
Date: 2012/12/31(月) 10:26:26.81
>>491 typedefしないと、変数を定義する際にイチイチstructって書かないとダメだろ
>>494 Tree make_tree(){ return (Tree)malloc(sizeof(struct Tree)); }
free_tree(Tree *tree){ free(tree); }
息を吐くようにバカバカ連呼できるのは半島人だからか
うん。相手には、何も言い返すことなくデスクに座って集中している頃合を見計らって、 背後から忍び寄り、後頭部に手を置いて、そのままディスプレイに叩きつけるよ
673 :
デフォルトの名無しさん :2013/01/01(火) 18:27:27.56
>>668 お前ほどのとびっきりのバカはめったにいないからな。
>>673 逆にお前のような奴はどこぞの半島に腐るほどいるんだよな
どっちも小学生の喧嘩レベルになってるぞ
676 :
デフォルトの名無しさん :2013/01/01(火) 18:37:18.61
自分の気に入らない態度に対して同じ方法で煽り返したお前が朝鮮人だろうと言っているんだが。
今、何人居るんだ?3〜5人ぐらい?w
678 :
デフォルトの名無しさん :2013/01/01(火) 18:40:31.37
>>675 まあしょうがないよ。↓こういう下等な人間もどきなんだから。
> 同じことをしてやればさすがに理解できるだろうからだよwww
>>675 皆、正月だから小学生の頃に戻ってるんだよ
>>678 日本には毒を以て毒を制すという言葉がありますが、朝鮮にはどうだかは知りません
>>679 どっちもいい年なんだろうなと思うと哀れに思えるよね
FONT_INFO font_info = { 0, 0 }; xxx.insert(pair<char*, FONT_INFO>("あ", font_info)); とやったとして、 xxx.find("あ"); は、必ず見つかるものなの? "あ"が格納されてるアドレスは必ず同じだと思っていいの?
その昔、右翼団体が合宿してて街宣車が道路を遮ってるわけ。おかげで会社を遅刻したよ。 また路上を遮ってりゃ、アイスピックでお前らのタイヤに穴開けといてやるからな
char str[] = "あいうえお" char c[3]; c[0] = str[0]; c[1] = str[1]; c[2] = '\0'; xxx.find(c); これ駄目じゃん。。」
>>682 せめて、std::stringを使え。使ったところで動くか知らんけど
というか、
>>648 の意味わからなかった?
>>684 とりあえず、全角文字って何バイトか調べろ
688 :
デフォルトの名無しさん :2013/01/01(火) 19:12:50.79
>>672 これじゃないのか。
今回はこいつと張本人の白白、Qz以外は個別には罵倒していないはずだが、
大分前に罵倒したバカのうちの一人かな。粘着力が半島人。www
hash関数かあ、面倒くさいなあ
>>682 C++スレで使い方を聞けっつてんだろバカ
お前の頭じゃマニュアルみても使い方わからんだろ
>>689 STL理解してないだろ。理解するのに2〜3日、或いは一週間は掛かるぞ
>>688 罵倒しようという姿勢が半島人
自分の粘着を棚に上げるのも
フォントだけに限定した場合に衝突しないハッシュ関数って考えられないですかね
完全ハッシュ関数
ああできたわ。サンクス unsigned int hash_val = str[0]; if(str[1] != '\0') { hash_val = hash_val * 256 + str[1]; } xxx.insert(pair<UI, FONT_INFO>(hash_val, font_info));
698 :
デフォルトの名無しさん :2013/01/01(火) 20:08:01.28
バカ必死だな。ww
699 :
デフォルトの名無しさん :2013/01/01(火) 20:10:28.88
バカ必死だな。ww
>>697 なぁ、そのhash関数って最大が幾つになるんだ?
255*256 + 255 = 65536 だからintで十分入ると思うが何か問題かな
×65536 ○65535
>>700 255*256 + 255 = 65535
だからintで十分入ると思うが何か問題かな
2バイト文字の1バイト目が1バイト文字と一致することってあるのかな
>>704 どのコード体系でいえばいいかにもよるけど、少なくともシフトJISなら
あり得る
706 :
デフォルトの名無しさん :2013/01/01(火) 23:17:31.74
double型ってせっかくintの100億倍以上の表現力もあるのに 結局17桁くらいまでしか精度ないんだろう。利点とかってありますか?
お前が使うと利点が消える
709 :
デフォルトの名無しさん :2013/01/01(火) 23:48:00.62
double型の 1.00+e00っていう表示はfloatの一般小数点表示と比べて メリットはあるんですか?純粋な疑問
mingwについて質問なのですが >gcc gtk-sample.c -o gtk-sample `pkg-config gtk+-2.0 --cflags --libs` 「'」の意味と、gccにpkg-configの結果?を渡す理由を教えて下さい
doubleはdoubleになってるからdoubleだろjk
>>455 俺初心者だけどどういう意味ですか?
パンチガードって何?C言語関係あるの?
>>706 ネタなのかマジなのかわからんが、100億倍って桁に直したら10桁だろ。intって8.4桁くらいだろ。足したら18.4桁。大体17桁と違いないから正しいじゃないか。
8桁じゃ困って17桁なら大丈夫な計算なら嬉しいだろう?17桁しかないなら8桁しかないのと同じだと思うの?
>>713 有効桁数は
ビット数 × 0.30102999566398119521373889472449
符号付でも 32bit int なら精度9桁あるぞ
>>706 分野によっては数値の大小よりも「有効桁数」を優先する場合があります。
科学技術の実験値表現では例えば「光速度:2.99792458 × 10^8 m/s」とかいいますがこの場合有効桁数は9桁になります。
浮動小数点表現は有効桁数を優先した表現方法です。
double型って範囲が ±10^(-308)〜10^(308) って事は308桁の精度って事じゃないんですか? intは24億だから10桁の精度。 精度にしたら30倍。違いますか?
>>714 すまん一桁カウントし間違えた。0.4桁分はその計算の言わんとする所の意味だよ。
言いたかったのは、100億倍とかいう表現と17桁とかいう表現を混ぜたら、前者は凄く広大な感じがして後者はわい小な感じがするけど、
整合性はだいたいとれてるだろ、ってこと。
そもそも17桁以上の精度を必要とする計算ってそんなに身近なのか?ということを考えた方がいいと思うんだよね。
17桁ってなんかしょぼいな、って感覚的に思って決めつけちゃう前に。大体のものは17桁の精度で測定なんかできないものばかりだろう。
まあ銀行系とかはdoubleじゃ困るだろうけどね。
銀行系はCOBOLやjavaのクラスライブラリを使うだろ
720 :
デフォルトの名無しさん :2013/01/02(水) 12:23:06.27
ファイルストリームに関する質問だけど ファイルを読み込むとき例えば100字のテキストファイルがあって その70行目まで読み込んでたとします。その時70字分の情報は以降 同じストリームから読み取れないんですか? プッシュバックとかそういうソフトウェア的なことじゃなくて もう一回fopenしない限り読み取れませんか? というか読み込んだファイル情報はすぐにHDDに返されるのでしょうか?
fseek
>>720 >読み込んだファイル情報はすぐにHDDに返されるのでしょうか?
なんで返すんだ?
まさかHDDからメモリに送られた情報は、送り返されるまでHDD上からは消えてるとでも思ってるのか?
723 :
デフォルトの名無しさん :2013/01/02(水) 13:05:42.03
>>722 他のシステムユーザからのアクセスを遮断するために
消えると思うんですが違いますか?
で結局stdinなどで読み込んだ文字は以降は絶対に読み込む事は
できないんでしょうか?
724 :
デフォルトの名無しさん :2013/01/02(水) 13:08:51.06
すいません送り返されはしませんね ストリームを閉じたらメモリから消えるという事ですかね?
725 :
デフォルトの名無しさん :2013/01/02(水) 13:12:01.61
>>721 fseekって結局プッシュバックと同じ仕組みじゃないんですか?
ただのバッファとそこから取り出すっていうだけの仕組みでしょ?
僕が知りたいのはHDDから読み込めるかどうかです。
>>725 2chなんて信じられないんだろ
本買って読めよ
727 :
デフォルトの名無しさん :2013/01/02(水) 13:25:13.71
>>725 > fseekって結局プッシュバックと同じ仕組みじゃないんですか?
違うよ。
729 :
デフォルトの名無しさん :2013/01/02(水) 13:30:19.78
可哀想な子警報age
>>725 ,727
手元の規格標でsetvbufを検索してみ
てか、糞でかいファイル扱う事を考えたら常識的に考えて分かるでしょ
gccのオプション多すぎ
MSVCだって、コマンドラインで使えば似たようなもの
素人のくせに何でプッシュバックとか無理して知ったかぶるかね。
プッシュバックって何の事?
俺もなんのことかと思ってググってみたが、飛行機を引っ張る車しかでてこない
736 :
桃白白 :2013/01/02(水) 16:25:02.00
ねえママ、ママもバックからプッシュしたことある?こういうのパパに聞いたほうが いいのかな、掲示板見たらみんなやってるみたいなんだ、ぼくもプッシュバックしたい。
>>710 バッククォートで括られた箇所は、コマンド実行に置換される
pkg-configってコマンドがあるわけ。manでも読め
実行すると、gtkのヘッダやライブラリの場所がズラズラ出てくる
vector の push_back() のことじゃないの?
ああ、push_back(); は vector だけじゃないね
STL以外のpush_backなんて単語を知らなかったから、
>>735 や
>>736 は、すごく良い教養になった
>fseekって結局プッシュバックと同じ仕組みじゃないんですか? >ただのバッファとそこから取り出すっていうだけの仕組みでしょ? 配列の最後尾に追加するのとは全く逆のようだが
プッシュといえばポップだな、普通は
744 :
デフォルトの名無しさん :2013/01/02(水) 18:24:29.34
720 :デフォルトの名無しさん:2013/01/02(水) 12:23:06.27
ファイルストリームに関する質問だけど
ファイルを読み込むとき例えば100字のテキストファイルがあって
その70行目まで読み込んでたとします。その時70字分の情報は以降
同じストリームから読み取れないんですか?
プッシュバックとかそういうソフトウェア的なことじゃなくて
もう一回fopenしない限り読み取れませんか?
というか読み込んだファイル情報はすぐにHDDに返されるのでしょうか?
723 :デフォルトの名無しさん:2013/01/02(水) 13:05:42.03
>>722 他のシステムユーザからのアクセスを遮断するために
消えると思うんですが違いますか?
で結局stdinなどで読み込んだ文字は以降は絶対に読み込む事は
できないんでしょうか?
725 :デフォルトの名無しさん:2013/01/02(水) 13:12:01.61
>>721 fseekって結局プッシュバックと同じ仕組みじゃないんですか?
ただのバッファとそこから取り出すっていうだけの仕組みでしょ?
僕が知りたいのはHDDから読み込めるかどうかです。
むかつく質問方法を見事に使いこなしてるな。これもある種の才能だな。
そうか?
自分が正しいという前提があってそれに対して同意してもらうことを目的にした書き込みだったね 間違ってるどころか何もかも狂ってたから目論見が外れたみたいだけど
makefileは自動生成するツールがありますが、手書きでmakefileを書くメリットってありますか
スレ違いです
>>750 なぜ、スレ違いなの?
めっちゃC言語、入門じゃん
小規模なのは手で書いた方が早いし、 手で書けない人が自動生成ツールを使うのは難しいんじゃないかな。
753 :
749 :2013/01/03(木) 22:48:57.13
>>752 参考になりました。
ありがとうございます
754 :
デフォルトの名無しさん :2013/01/03(木) 23:44:31.42
netpbm をインストールする時suのパスワードってなにいれるんですか??
755 :
デフォルトの名無しさん :2013/01/03(木) 23:47:31.93
そりゃsuのパスワードだろjk これ以上はUNIX板にでも行けよ
757 :
デフォルトの名無しさん :2013/01/04(金) 00:23:23.61
A 23 F 8 R 23 のような、「文字 数字」をコマンドラインから読み込みたいんだが char c[5]; int a[5], i = 0; double k; for(i=0; i<5; i++){ scanf(" %c %d%[\n]",&c[i],&a[i],&k); } のようにやるとなぜか6回「文字 数字」を読み込んでしまってうまくいかない。 文字はc[i] 数字はa[i] 改行をkに保存してるんだが 何がおかしいのだろうか・・・・・・orz
scanf使うなら戻り値ちゃんと見たほうがいい
759 :
デフォルトの名無しさん :2013/01/04(金) 00:41:31.76
>>758 ありがとうございます。
詳しく調べてみます。
6回読み込んだという理由は? forを抜けた後iが6だったとか?
>>760 コマンドラインで6行読み取ってしまうんです。
A 1
B 2
C 3
D 4
E 5
F 6
のように・・・・・・printfで調べてみたらi=0でどうやら2行分読み込んでるようで。
でも格納されてる値をみたらc[0]〜c[4]はA〜E、a[0]〜a[4]は1〜5の値が入っていたのでさらに意味不明なことに・・・
>>757 > double k;
> 改行をkに保存してるんだが
意味がわからん。
>>761 printf( ) デバッグするなら、i の値も一緒に表示すれば良いのに…
>>757 char c[5], dummy; int a[5], i;
for(i=0; i<5; i++) {
scanf("%c %d%c", &c[i], &a[i], &dummy);
}
としてみるとか。
A 123 4567
と入力すると
A 123
4 567
となるけど。。
>>757 コマンドラインからでなく、コマンドインタプリタを実行している端末エミュレータから入力しているんだろ。
改行文字をdoubleの変数に保存するなんて阿呆なことしていないできちんと書けよ。
つーか、fgets()で一行入力してからsscanf()でばらす方が無難だと思うが。
無難だね
標準入力から一行読みたいときに 一行の長さを調べるにはどうすればいいの?
普通は一行読み込んで、長さを調べる。 一行の長さが予測できない場合は、適当なサイズ毎に読み込んで 行末がでてくるまで文字数をカウントしていく。
標準入力はシーク出来ないんですか?
うん
>>769 標準入力がキーボードの場合シーク要求来たら大変だろ? (w
なんで?
標準入力のタイプによる。レギュラーファイルだったらシークできる。
標準入力をリダイレクトすればできるものにもできる しなけりゃできない
eclipse cdtの方がvisual studioより使いやすいようなー
mingw+eclipseが最強かな
お前らEDLIN知らねえの?
dos 版の ed ね、でも漢なら echo > file あるのなら cat > file だろう?
江戸がギリだな、それより懐古するともはやコーディングとかって話じゃなくなる
780 :
デフォルトの名無しさん :2013/01/05(土) 17:21:35.33
あぁ腹減った
781 :
デフォルトの名無しさん :2013/01/05(土) 20:13:48.00
microsoft visual c++ 2010 を使っているんですけど、 「間接参照のレベルが'int*'と'int[4][5]'で異なっています。」 という警告が出てきます。 この警告の意味はどういうことなのでしょうか??
>>781 警告そのまんま
int*とint[4][5]の型が違いますってこと
てかソース貼れ
嫌です
は?
785 :
デフォルトの名無しさん :2013/01/05(土) 22:39:59.17
rand()なんですが値が 100以下がほとんどでない。 ほとんどが億レベルなんですが理由は何でしょうか? 234213423 23513123 5634521324 234523546 . . . . 3 2000回に一回ペースで100以下が出る。
完全にランダムと仮定して 全体のうち百以下の数の個数と 億単位の個数がいくつあるか 自分の手で計算してごらん
787 :
デフォルトの名無しさん :2013/01/05(土) 23:42:52.22
ごらんとかうるせーよ
計算してごらん 百位かの割合を 簡単なことさ
僕らの下に地獄なんてないし 僕らの上にはは空があるだけ 計算してごらん すべての人がその日暮らし…
ははははは
ゴランに聞いてごらん
printf("%f回に1回くらい出る\n", RAND_MAX/100.0);
見上〜げて、ごらん〜夜の〜ほ〜しを〜
796 :
デフォルトの名無しさん :2013/01/06(日) 19:25:02.72
GAを組んでいるのですが、個体の中身が1だけでしか表示されません。 なぜなのでしょうか?? 適応度は個体によってバラバラなのになぜか遺伝子は1のみになってしまいます。 (個体は2次元配列で、2進数によって表現しているつもりです) おかしい所だらけだと思うのですが、よろしくお願いします。 #include <stdio.h> #include <stdlib.h> #include <limits.h> #define N 5 // 遺伝子長 #define M 50 // 個体数 #define ml 4 //音符数 #define T 10 // 世代数 #define Pc 0.50 // 交叉確率 #define Pm 0.10 // 突然変異確率 // 遺伝子型の定義 struct genotype { int gene[ml][N]; // 遺伝子 float fitness; // 適応度 }; float evaluation(int *a); //適応度計算 void one_point_crossover(struct genotype *ind); //交叉 void mutation(struct genotype *ind); //突然変異 void roulette_selection(struct genotype *ind); //選択 int flip(float prob); // void print_process(struct genotype *ind, int generation); //出力
797 :
デフォルトの名無しさん :2013/01/06(日) 19:27:39.08
int main(int argc, char *argv[]) { int i; // 個体インデックス int j; // 遺伝子座インデックス int s; // 音符数インデックス int t; // 世代インデックス struct genotype individual[M]; // 個体 struct genotype erito; //エリート // 乱数seedの設定 if(argc < 2) { // プログラムの引数が足りない場合 printf("Usage: %s [SEED_NUMBER]\n", argv[0]); exit(1); } else { srand(atoi(argv[1])); } // ステップ1 (0世代目) for(i=0; i<M; i++) { for(s=0; s<ml; s++){ for(j=0; j<N; j++) { individual[i].gene[s][j] = flip(0.5); } individual[i].fitness = evaluation(individual[i].gene); // 個体の適応度計算 } } print_process(individual, 0); // 初期世代の個体群を表示
798 :
デフォルトの名無しさん :2013/01/06(日) 19:29:17.28
//0世代目のエリート選択 for(i=1;i<M;i++){ if(individual[0].fitness < individual[i].fitness){ individual[0] = individual[i]; } erito = individual[0]; } // ステップ2 (1〜T世代) for(t=1; t<=T; t++) { // 交叉 one_point_crossover(individual); // 突然変異 mutation(individual); // 子個体の適応度値計算 for(i=0; i<M; i++) { individual[i].fitness = evaluation(individual[i].gene); } // ルーレット選択 roulette_selection(individual);
799 :
デフォルトの名無しさん :2013/01/06(日) 19:29:51.37
individual[0] = erito; //エリート挿入 for(i=1;i<M;i++){ if(individual[0].fitness < individual[i].fitness){ individual[0] = individual[i]; } erito = individual[0]; //更新 } print_process(individual, t); } return(0); } // End of main() // 個体の適応度計算 float evaluation(int *a) { int j; // 遺伝子座インデックス int count = 0; // 遺伝子中の`1'の数 for(j=0; j<N; j++) { count += a[j]; } return((float)count); } // End of evaluation()
800 :
デフォルトの名無しさん :2013/01/06(日) 19:33:20.45
不要だと思った箇所は省きました // 個体の中身や適応度値を画面に出力 void print_process(struct genotype *ind, int generation) { int i; // 個体インデックス int s; //音符数インデックス int j; // 遺伝子座インデックス float max_fit, min_fit, avg_fit; // 最大,最小,平均適応度 // 各個体の中身を出力 printf("\n世代数: %d\n", generation); for(i=0; i<M; i++) { printf("第%d個体:\n ", i); for(s=0; s<ml; s++){ for(j=0; j<N; j++) { if(ind[i].gene[j] == 0) printf("%c", '0'); else printf("%c", '1'); } printf(" : %.0f\n", ind[i].fitness); } }
>>1 のテンプレすらも詠まずに長々とだらしないコードをここに張り付ける
その精神性からしてすでに能力が透けて見える
そして極めつけは不要だと自分で判断したコードの中にバグがある場合
もしもここまで来るならそれはどうしようもない
803 :
デフォルトの名無しさん :2013/01/06(日) 20:32:19.38
>>802 まあまあそう熱くなるなよ
答えてやるついでに軽く言うくらいが
大人の対応だぜ
805 :
デフォルトの名無しさん :2013/01/06(日) 20:39:37.14
>>805 222行目
× > if(ind[i].gene[j] == 0) printf("%c", '0');
○ > if(ind[i].gene[s][j] == 0) printf("%c", '0');
でないかい?
余談だが printf("%c", '0'); → printf("0"); で良いような
int flip でこうやる float x = (float)rand() / (float)RAND_MAX ;
こいつのレスのコード見返したけど やっぱり不要だと思って勝手に省いた部分ジャネーカ 隠れた部分にバグとか、そのままじゃぜってーみつかんねーよ あおりまくってヴァカにするまでたたかないとコードはでてこねー
普通状況を再現できる最小限のコードをさらすはずなので大丈夫さ
811 :
806 :2013/01/06(日) 22:41:06.95
>>805 float evaluation(int *a);
も気になる。
for (j = 0; j < N; j++) {
count += a[j];
}
↓
for (j = 0; j < ml * N; j++) {
count += a[j];
}
の方が期待される結果を得られるんでないかい?
812 :
806 :2013/01/06(日) 23:27:48.98
そういえば、あと 2つ。 [1] 44行目 // ステップ1 (0世代目) for(i=0; i<M; i++) { for(s=0; s<ml; s++){ for(j=0; j<N; j++) { individual[i].gene[s][j] = flip(0.5); } individual[s].fitness = evaluation(individual[s].gene); // 個体の適応度計算 //individual[i].fitness = evaluation(individual[i].gene); // 個体の適応度計算 } } ↓ for(i=0; i<M; i++) { for(s=0; s<ml; s++){ for(j=0; j<N; j++) { individual[i].gene[s][j] = flip(0.5); } } individual[i].fitness = evaluation(individual[i].gene); // 個体の適応度計算 } でないかい? [2] 141行目 temp[j] = ind[ia].gene[j]; ↓ temp[j] = ind[ia].gene[s][j]; でないかい?
>>805 のコードで
struct genotype individual[M];
を
void print_process(struct genotype *ind, int generation); //出力
のindに渡しているけど、print_process()内で
ind[i]でアクセスして大丈夫でしたっけ。
void print_process(struct genotype ind[M], int generation); //出力
に渡すなら、間違いなくind[i]でアクセス出来るのはわかるけど。
814 :
デフォルトの名無しさん :2013/01/07(月) 04:56:25.90
Cを制す者は世界を制す
>>813 引き数リストのtype name[size]は、type * nameと解釈されるから全く問題ない。
寧ろ、配列そのものではないのでsizeは書かないのが一般的。
ATARUに出てきたのがC言語だとすぐにわかった 声聞くと一番簡単なプログラムだがスイーツはこれを聞いたらすげえと思うのか
818 :
813 :2013/01/07(月) 19:29:11.36
LinuxでC言語のプログラム書くときにVCみたいなやつないんすか エディタはvimでいいんですけどビルドとかコンパイル対象のファイルの指定とか makefile書くのめんどくさいんすけど
中学生はプログラムなんてやってないで勉強してろ
makefileっていってもファイル名を並べて書くだけとかのレベルでしょ 難しく考えすぎなんじゃない VCみたいなのといったらeclipseだろうか たぶんmakefileより面倒な気がするけど
Eclipseでいいんじゃない?Makefileより面倒かどうか、は、Makefileに慣れてるかどうか、って感じじゃない? VSに慣れた自分はEclipseのCDTは結構使いやすく感じるよ。Makefileでのビルドもできるしね。 てか、補完に関してはVSより使いやすい部分も多いし。CamelCaseでの補完(JDTでいうBIS→BufferedInputStreamみたいなやつ)がはやくVCのIntellisenseにも実装されてほしいよ。
>>819 Linuxはボランティアが作っているからねえ。
有料のVSと同じ環境が無料で得られたらMSが潰れてしまう。
楽したけりゃ金出してWindows使っとけという話。
VS部門が無くなったってMSは潰れん
ボランティアが日本語のいわゆる「ボランティア」のことなら、Linuxを作ってるのはそれだけじゃない。 給料貰ってそれを仕事としてやってる人間の方がむしろ多い。
日本語がどう、じゃなくてマスゴミが、ボランティア=無償奉仕かのように間違ったイメージを広げてるだけ。
つまり金貰って開発してるのにGUIのある開発環境すら作れない無能集団ということ?
何言ってんだこいつ
Linuxを作ってる人が開発環境を作ってるわけじゃないだろうし 開発環境はLinuxだけターゲットにしてるわけでもないだろうし じゅんを
MSと比較されて「ボランティアだから」と言い訳したバカが混乱の原因。 そんな事は言い訳にはならない。
オープンソースプロジェクトはバカ避けしにくいって問題もあるだろうな 自己主張が激しいだけの無能とかワラワラいそうだ ブランチ作って永遠にそこから出て来るな! って言ってもバカは言うことを聞かない
iPhoneの無料アプリのレビューも酷いが、あれはあれでウンコアプリの 抑止力になっているのか。
834 :
デフォルトの名無しさん :2013/01/08(火) 16:55:53.56
>>805 です。
問題としていたところが解決されました。
本当にありがとうございました。
835 :
デフォルトの名無しさん :2013/01/08(火) 18:52:10.93
>>805 です。
何度もすみません。
現段階では、評価値が各個体ごとに出力されているのですが、
各個体の、各行(5ビットの2進数)ごとに評価値を出力させるには
どうしたらよいのでしょうか??
836 :
デフォルトの名無しさん :2013/01/08(火) 20:29:08.57
0x00000000,0x77073096,0xee0e612c,0x990951ba,0x076dc419,0x706af48f,0xe963a535,0x9e6495a3, 0x0edb8832,0x79dcb8a4,0xe0d5e91e,0x97d2d988,0x09b64c2b,0x7eb17cbd,0xe7b82d07,0x90bf1d91, 0x1db71064,0x6ab020f2,0xf3b97148,0x84be41de,0x1adad47d,0x6ddde4eb,0xf4d4b551,0x83d385c7, 0x136c9856,0x646ba8c0,0xfd62f97a,0x8a65c9ec,0x14015c4f,0x63066cd9,0xfa0f3d63,0x8d080df5, 0x3b6e20c8,0x4c69105e,0xd56041e4,0xa2677172,0x3c03e4d1,0x4b04d447,0xd20d85fd,0xa50ab56b, 0x35b5a8fa,0x42b2986c,0xdbbbc9d6,0xacbcf940,0x32d86ce3,0x45df5c75,0xdcd60dcf,0xabd13d59, 0x26d930ac,0x51de003a,0xc8d75180,0xbfd06116,0x21b4f4b5,0x56b3c423,0xcfba9599,0xb8bda50f, 0x2802b89e,0x5f058808,0xc60cd9b2,0xb10be924,0x2f6f7c87,0x58684c11,0xc1611dab,0xb6662d3d, 0x76dc4190,0x01db7106,0x98d220bc,0xefd5102a,0x71b18589,0x06b6b51f,0x9fbfe4a5,0xe8b8d433, 0x7807c9a2,0x0f00f934,0x9609a88e,0xe10e9818,0x7f6a0dbb,0x086d3d2d,0x91646c97,0xe6635c01, 0x6b6b51f4,0x1c6c6162,0x856530d8,0xf262004e,0x6c0695ed,0x1b01a57b,0x8208f4c1,0xf50fc457, 0x65b0d9c6,0x12b7e950,0x8bbeb8ea,0xfcb9887c,0x62dd1ddf,0x15da2d49,0x8cd37cf3,0xfbd44c65, 0x4db26158,0x3ab551ce,0xa3bc0074,0xd4bb30e2,0x4adfa541,0x3dd895d7,0xa4d1c46d,0xd3d6f4fb, 0x4369e96a,0x346ed9fc,0xad678846,0xda60b8d0,0x44042d73,0x33031de5,0xaa0a4c5f,0xdd0d7cc9, 0x5005713c,0x270241aa,0xbe0b1010,0xc90c2086,0x5768b525,0x206f85b3,0xb966d409,0xce61e49f, 0x5edef90e,0x29d9c998,0xb0d09822,0xc7d7a8b4,0x59b33d17,0x2eb40d81,0xb7bd5c3b,0xc0ba6cad,
0xedb88320,0x9abfb3b6,0x03b6e20c,0x74b1d29a,0xead54739,0x9dd277af,0x04db2615,0x73dc1683, 0xe3630b12,0x94643b84,0x0d6d6a3e,0x7a6a5aa8,0xe40ecf0b,0x9309ff9d,0x0a00ae27,0x7d079eb1, 0xf00f9344,0x8708a3d2,0x1e01f268,0x6906c2fe,0xf762575d,0x806567cb,0x196c3671,0x6e6b06e7, 0xfed41b76,0x89d32be0,0x10da7a5a,0x67dd4acc,0xf9b9df6f,0x8ebeeff9,0x17b7be43,0x60b08ed5, 0xd6d6a3e8,0xa1d1937e,0x38d8c2c4,0x4fdff252,0xd1bb67f1,0xa6bc5767,0x3fb506dd,0x48b2364b, 0xd80d2bda,0xaf0a1b4c,0x36034af6,0x41047a60,0xdf60efc3,0xa867df55,0x316e8eef,0x4669be79, 0xcb61b38c,0xbc66831a,0x256fd2a0,0x5268e236,0xcc0c7795,0xbb0b4703,0x220216b9,0x5505262f, 0xc5ba3bbe,0xb2bd0b28,0x2bb45a92,0x5cb36a04,0xc2d7ffa7,0xb5d0cf31,0x2cd99e8b,0x5bdeae1d, 0x9b64c2b0,0xec63f226,0x756aa39c,0x026d930a,0x9c0906a9,0xeb0e363f,0x72076785,0x05005713, 0x95bf4a82,0xe2b87a14,0x7bb12bae,0x0cb61b38,0x92d28e9b,0xe5d5be0d,0x7cdcefb7,0x0bdbdf21, 0x86d3d2d4,0xf1d4e242,0x68ddb3f8,0x1fda836e,0x81be16cd,0xf6b9265b,0x6fb077e1,0x18b74777, 0x88085ae6,0xff0f6a70,0x66063bca,0x11010b5c,0x8f659eff,0xf862ae69,0x616bffd3,0x166ccf45, 0xa00ae278,0xd70dd2ee,0x4e048354,0x3903b3c2,0xa7672661,0xd06016f7,0x4969474d,0x3e6e77db, 0xaed16a4a,0xd9d65adc,0x40df0b66,0x37d83bf0,0xa9bcae53,0xdebb9ec5,0x47b2cf7f,0x30b5ffe9, 0xbdbdf21c,0xcabac28a,0x53b39330,0x24b4a3a6,0xbad03605,0xcdd70693,0x54de5729,0x23d967bf, 0xb3667a2e,0xc4614ab8,0x5d681b02,0x2a6f2b94,0xb40bbe37,0xc30c8ea1,0x5a05df1b,0x2d02ef8d,
コードを読んで結果がどのようになるか当てる問題です。
過去のテストでこのようなコードがでたのですが
ttp://ideone.com/zTUtAt まったくわかりません。解説お願いします。
まずどこから考えればいいのでしょうか・・・。
840 :
桃白白 :2013/01/09(水) 08:46:34.28
>>839 arrayは
mainで[1, 2, 0]がセットされる。
functionで変更される。
mainで出力される。
functionでarrayの値がどう変わるのか考えればいい。
一回目のfunctionでは。
jは-3。
arrayの0番目には-3が加算される。
arrayは[-2, 2, 0]
jは3。
二回目のfunctionでは。
arrayは[-2, 2, 0]
arrayの2番目には3が加算される。
arrayは[-2, 2, 3]
jは-1。
arrayの1番目には-1が加算される。
arrayは[-2, 1, 3]
jは2。
arrayの0番目には2が加算される
arrayは[0, 1, 3]
jは-2。
>>819 一応、makefileを自動で作成するツールはいくらでもあるけれど
君みたいな馬鹿が質問するレベルのことって、手書きのmakefileで十分な規模じゃないの?
>>835 このプログラムは何だか分からないけど、評価値って適応度(genotypeのfitness)のこと?
そうだとしたら、
// 遺伝子型の定義
struct genotype {
int gene[ml][N]; // 遺伝子
float fitness; // 適応度
};
↓
struct genotype {
int gene[ml][N]; // 遺伝子
float fitness[ml]; // 適応度
};
として、
evaluation();は
for(j=0; j<ml*N; j++) {
count += a[j];
}
↓
for(j=0; j<N; j++) {
count += a[j];
}
として、fitnessを設定するところでfitness[]それぞれについてevaluation();を呼び出す。
というのではいかが?
(fitnessを各5bitごとに持たせる。つまり、一個体につきfitnessを4つ持つことになるが良いのだろうか?)
evaluation();の中でfitness[ml]を全部計算した方が良いかな
C初心者です。高橋麻奈の「やさしいC」なら簡単に分かるのですが、 「独習C」になると歯が立ちません。その間を埋めるような教科書が無いでしょうか? ポインタ、構造体などの基礎は理解しているつもりです。 たとえばレス ハンコックの「C言語入門」あたりなのでしょうか。 以上よろしくお願いします。
神になるためのテンプレから外れるからそういう遠回りになるのだ
独習Cに難しいところなんてあったっけ?
例えば何が難しいのか言ってくれ
849 :
デフォルトの名無しさん :2013/01/10(木) 06:33:17.63
日本語が難しいのだと予想
独習Cは文体が学術っぽくて堅苦しいうえにあの厚さ。 一般人は5分で投げ出す。 翻訳者は高橋麻奈を見習えと言いたい。
原書よめばいいだろ。
居るよね 入門書ばっかり読む奴 全く素質無いから早く気づいてやめればいいのに
本を買ってくれる分おまえよりは業界に貢献してるだろ
854 :
854 :2013/01/10(木) 17:03:56.82
ideone.com/Yzef0W char strload_y[] = "12345678901"; /* 11 桁 */ float loaded_y_float = atof(strload_y) / 10000000; int loaded_y_int = atoi(strload_y) / 10000000; 上記において、割り算の結果を int に入れた時に数値がおかしくなる理由を教えてください。 Mac OS X 10.8.2(GCC 4.2.1)LP64(I32LP64)モデルです。 よろしくお願いいたします。
32ビットでのintの最大値が21億ほどだから。
856 :
854 :2013/01/10(木) 17:26:55.12
>>855 ありがとうございました。11 桁の段階で既に int が扱える桁を超えていたということなのですね。
漠然としか理解できていなかったので助かりました!
ついでに言うと、floatも桁数が足りてない。
858 :
854 :2013/01/10(木) 18:49:45.54
>>857 ありがとうございます。あの後調べたところ
long 型に変換する atol という関数があること
double 型に変換する atof と、atof が double 型を扱うことまで分かりました。
実際に使用しているプログラムでは 4 桁の数値を取り出すものだったので
たまたま問題にはならなかったみたいです。重ね重ねありがとうございました。
GCC の話かも知れないのですが、エラーメッセージで時々 Abort trap: 6 Segmentation fault: 11 など数字のついたメッセージを受け取ります。 他の数字のエラーメッセージを見てみたいのですが これは何の規格で定義されているものですか?
故意にセグらせる命令があったはず
6 = SIGABORT 11 = SIGSEGV Unix系なら<signal.h>付近に書いてある。
なんで、find,grepの使い方から覚えないんだろう
リッチーさんも亡くなったのにまだCに固執してるのかきめえ Bに移行しろよ
2ちゃんねるブラウザを作ろうかと思ってC言語を勉強しているわけなんですが C言語で専ブラの画面を作るには、どのように作るのがベストなのでしょうか C#で作られている専ブラのソース見てみたら、画面共通化されていない感じでした。 ちなみに、一番の問題はスレを表示する機能を実装する時に、 どのように高速動作 + 画像表示させるのかが問題になってくるかなと思っています。
win32apiで作るかC言語で作るのを諦めるかじゃないかなあ
CでGUIはキツい それでなくともショートカットやらマウスジェスチャやら 面倒は山積みだ 一番問題なのは2chブラウザにあたって C言語を選定するその考えだ
スレ表示についてはIEコンポーネントを貼り付けるだけでもいける
868 :
864 :2013/01/12(土) 23:37:19.15
>>865 最初はwin32で作ろうかなと思ったのですが、面倒そうだったのでやめました
gtkを使ってプログラムしてこうかなって思ってます
過去に専ブラを作ろうと試みたこともあるのですが、スレを表示するのが難しくて困り果てました
表示するだけなら簡単だけど、画像を表示させたりすると難しいんですね
869 :
864 :2013/01/12(土) 23:48:06.98
>>866 .NETは会社で使っているので、スルーすることに決めました
>>867 それは過去に考えたことがあるんですが、独自描写でいきたいなと思ってます。
独自描写すればプログラム的に楽しそうだからです
DirectXでレスを3D表示すると楽しいよ
wxWidgetsでアプリ作るのはどうかな
>>868 win32api が面倒とか言ってる奴が、C でやると言うのも理解できないけど、
そもそもなんで C++ でないのか?
まあ、それはそれでスレ違いになるけど。
HTMLでtable使ってドット絵吐き出せばいいじゃん
>>869 やめとけよ。
Cの標準ライブラリを見てみたか?
ブラウザを作れそうな機能なんて一つもないだろ?
そういう言語なんだよCは。
10 SCREEN 0:CONSOLE,,0,1:WIDTH 80,25:DEFINT A-Z:CLS 3
20 ARGC=2:ARGV$(1)="
>>874 ボケが"
30 GOSUB *MAIN
40 END
100 *MAIN
110 PRINT ARGV$(1)
120 RETURN
>>868 画像表示とか要らんので、lynxやmnewsみたいのを作って下せ。
既存のGUI部品に全く頼らず、 ゲームの画面みたいに全部独自のUIでやるのは面白いかもしれないな そういうのないから大ヒットするかもしれんぞ
UIカスタマイズとか面白いね
1から200までの整数のうち、7の倍数を一行に13個ずつ表示するプログラムが課題で出されたのですが 7の倍数を抽出する部分は出来たのですが、一行に13個ずつ表示するという部分ができません。 授業では、if文とfor文しか扱っていないのでその範囲内で解決できるみたいです。 ご教授いただけると嬉しいです。よろしくお願いします。
>>880 キューに貯めて
七個あったら一気に書き込み
>>880 >一行に13個ずつ表示するという部分ができません。
13個出力したら、"\n" を出力するだけだろ。
#include <stdio.h> int main(void){ int count = 0; for(int i = 1; i <= 200; i++){ if(i % 7 == 0){ printf("%d ",i); count++; if(count % 13 == 0){ printf("\n"); } } } return 0; }
でたーmainの引数にvoid入れちゃう奴www
お前ならどうすんの?
俺ならchar * envまで書いちゃうね
darwinだと4つも渡してくれるらしいぞ。 int main(int argc, char **argv, char **envp, char **apple);
その最後のやつはなに?
実行ファイルのパスが入ってたりするらしいけど。 ていうかやってみたら実際に入ってた。 おおっぴらに使っていいもんではないのかも。
じゃargv[0]には何が入っているの?
Winmainなんかはargv書き換えると落ちるし
void main()対策 #define void int
>>896 で、写像の意味を理解してないから、減点くらう訳ですね。
プリプロセッサはC言語の事なんかなんにも知らないっしょ
プリプロセッサは何にも知らないけれど プリプロセッサの気持ちはよく分かる プリプロセッサ可愛いや 可愛いやプリプロセッサ
赤いプリプロセッサに唇よせて 黙って見ている蒼井そら
>>877 UIって今後はjsで標準化されてくよ
QMLやgnome-shell、silverlight、javafx辺りが良い例。
argv[0]は実行ファイルのフルパスじゃなかったっけ。
>>902 コマンドインタプリタ次第。
相対パスの場合もあれば、aliasの場合もある。
起動時に与えられた通りの内容が入ってる。
<time.h> void a(int year, int month, int day){ struct tm b; time_t c; b.tm_year = year -1900; b.tm_mon = month - 1; b.tm_mday = day; b.tm_hour = 0; b.tm_min = 0; b.tm_sec = 0; c=mktime(&b); /* */ } 関数を作っていてこれのmktimeの部分でエラーが出てコンパイルできないのですがなにが原因でしょうか
>>906 どんな[エラー]?
こちらでは、
「関数 a(); で c に値がセットされたが使われていない」
というような[警告]は出るけどコンパイルは通るよ。
Windowsでもそのアプリを起動するアプリ次第だけどな。
910 :
859 :2013/01/14(月) 16:52:31.42
>>859 です。遅くなりましたがありがとうございました。
>>861 ISO の規格に載っていたとは、検索の仕方がわるかったです。
>>862 iPhone アプリ制作の基礎として C 言語を学んでいるので
UNIX の知識はあまりありません。時間を見て調べてみます。
マジなの?
相対パスで起動すれば相対パスで入ってるだろ
WindowsならGetFullPathName()つかってフルパス名に変換してた。
915 :
デフォルトの名無しさん :2013/01/14(月) 20:23:31.00
プログラミングを始めようと思っています ゲームのチートツールなどを作りたいと思っているのですが これに特化した言語はありますか?全ての言語で出来ると良いんですが・・・
Cかアセンブリ
917 :
デフォルトの名無しさん :2013/01/14(月) 20:40:14.02
>>916 かっこいいwwwありがとうございます!
こいつには無理だな
919 :
デフォルトの名無しさん :2013/01/14(月) 20:58:04.62
そんなもの糞のやくにもたたんひたすら書け なんかしらんが宿題スレがいま盛況だからちょうどいい
そんな事より働く気なら基本情報位持ってないとバカだと思われるぞ
えーレバーあんま好きじゃないわ レバーの魅力を語って
昔の一種くらいはほしいね今は何?今でもCやcaslやってるのか?いずれにせよ妬くには立たん
924 :
デフォルトの名無しさん :2013/01/14(月) 21:26:28.32
>>919 会社でその資格に対して手当てとか出るなら、とったほうが良い。
そうでないなら、とる意味なし。
うわぁ
同じような能力の2人が居てどちらか一人にしか仕事を与えられない場合、 違うのが資格の有無だけなら資格ありの方を選ぶだろ普通は。 資格があるということは、それだけの水準であることと、その水準になろう という「やる気」がある証明になる。 資格が無いことは、水準もやる気も無いことの証明にはならないが、 「ある」かどうか分からない。 それなら、「ある」ことが分かっている、有資格者を選ぶだろ。 資格は役に立つ。やる気アピールの一つの表現方法でもある。 それを否定するのは人を選んだこと無い証拠。 と、当たり前のことだが書かずにはいられないな。
928 :
デフォルトの名無しさん :2013/01/15(火) 16:14:32.17
「〜の型が1の仮引数および実引数と異なります。」という警告が表示されるのですが、 このまま実行するとどういった不具合が起こるのでしょうか??
リットルをガロンと計算し 787が墜落する
資格の有無でしか部下の能力を測れない無能な上司のいる職場は嫌だなあw
C言語で循環少数をポインタを使って表示する方法を教えて下さい。 表示方法として循環部分を()でくくる方法にしたいです。 例えば5÷7なら0.(714285)の様に表示させたいです。
>>932 ポインタを使ったものが見つからないのですが、詳しく教えていただけませんか?
934 :
デフォルトの名無しさん :2013/01/15(火) 17:41:47.07
20bitの2進数の並びから、5bitごとに見ていき、目的の5bitの2進数の並びを 探索していく、というプログラムを組みたいのですがどのように組んだらよいのでしょうか?? 例えば、「10010010101110100101」という並びから最初の5bitを見て、「10010」 であればある変数に点数を加え、次の5bitを見ていき同様のことを繰り返していきます。 説明が下手ですみません。よろしくお願いします。
シフトしてマスクとANDで抽出して比較
資格なんか意味ねえ、その資格がないと仕事ができないならともかくITの糞資格なんか 官僚の天下り先を作る為に生み出された資格でしかないのに馬鹿じゃないの そもそも客も資格持ってないから高度資格持ってたら逆に生意気だと思われたり 無茶な仕事振られたりするリスクが増えるだけ 本当に優秀な奴は実務経験で語る
同じような能力の2人が居てというが 地頭も過去の経歴も年齢も全く同じ奴なんかいるわけないだろ 資格見る前に別の要素で勝負は決まるわ
頭悪いな
そもそも能力がないから資格に走ろうとしているのがみえみえなんだよ 大体天下りの時代遅れのおっさんが問題作ってるんだから業務の役に立つわけが無い なんなんだあの午後の問題はただの現代文の読解問題じゃないかあんなのでITスキルを図れると思っている方がおかしい 資格なんか取るくらいなら家でプログラミングしてapple storeにアプリ登録するとか 趣味でツールでも作ってsource forge辺りに登録でもしてる方が何倍もマシ こういった活動は面接でもアピールになるしな
君がそう思っているのならそれでいいじゃないか
分かったら秀丸をアンインストールして vimをダウンロードしろ ソフトウェア開発の素養のないドキュメント製作しか能のない 馬鹿たれどもが分かったか
会社的には○○保持者何人みたいな感じで営業のネタになったりするよね。 受注した仕事ほとんど外注にやらせて社員は資格の勉強してる会社見た事あるわw
資格も能力も無いゴミが顔真っ赤にして何か言ってら
それで仕事とれるんなら有用じゃないのって言ってるんだけど。
一種とネスペとデスペなら取った。 正直地頭悪いと取れない資格だと思う。
お前は何の為に仕事をしているんだ 何のために情報技術の世界に足を踏み入れたんだ ソフトウェアを作りたいという純粋な気持ちからではなかったか 仕事がとれればどうでもいい 金さえ儲かればどうでもいい 面倒なことは下請けに押し付ければいい こんな考えは人として間違っているのではないか 自分では何も生み出さず他人の成果を奪うだけの行為は間違っているのではないだろうか
金が欲しくて、働いて、眠るだけ
>>927 >同じような能力の2人が居て
資格の有無に着目するより本当に「同じような能力」なのかを見るべきでは?
>>931 輪になって踊る数
1/7 = 142857/999999 = 0.142857143857142857...
資格(学歴も含む)よりも能力が−−というのは間違いではないが、 その能力を見極めるチャンスを与えてもらえる取っ掛かりになりえるんだよ。 資格がなければ門前払いもある。 いままでの実績も一つの指標であるが、その実績を作るために資格も学歴も無い どこぞの馬の骨を雇ってくれた最初の人に感謝しろよ。 今の時代、そんな馬の骨が通用するかよ。まったく… とにかく書きまくれってヤツ。 自己流の勘違い野郎を増長させるな。
ま、資格にもよるわな。旧一種(今はなんだっけ?)は最低ラインだそれは認める
>>919 のは疑問いったいどんな問題なんだ?
あとは読みまくれ書きまくれ
>自己流の勘違い野郎
それは書く量の絶対的不足を示唆しているに過ぎない。
高卒・資格無しの自己流君。 設計よりもいきなりコーディング。 設計の抜けを盛り込むためあちこちの関連を修正。 修正漏れで謎のバグ。 ちょっとした仕様変更で詰んで、 「健康理由により退職します…」 残された大卒・資格持ちが尻拭い。
>>952 設計は普通大卒資格餅がするんだろう?なんで高卒に振るの?
資格とか自分の腕に自信が無い証拠
955 :
デフォルトの名無しさん :2013/01/15(火) 20:52:16.28
変数に + - * / などの演算子を文字として格納する方法を教えていただけますか? 〜 char x; x = +; 〜 ではダメだったので・・・
"+"
おいおいおいおい
960 :
955 :2013/01/15(火) 20:59:53.54
さっそくありがとうございます! 解決できました!
入門書嫁でいいだろ流石にこんなもん
プログラマが経験を積んで設計者になるという考えがそもそもおかしい 土建業者か何かと勘違いしているから昭和生まれのロートル脳は困る Linuxを開発したリーナス・トーバルズは設計書だけ書いて実装は下請け丸投げなんかしてるかよ 実装もやるし経験を積んだら実装+設計をやるのが正しい進化だ それを何を勘違いしたか経験を積んだら下請け丸投げでふんぞり返ってるだけでピンはね丸儲けだと思ってる 全然違いますから!
つーかこれ+に限ったことじゃないじゃん? C言語初めて10分で得られる知識だろ。
おまいら、プログラミング以外の話になると生き生きしてるなw 寂しかったんだねっ!
リーナスのおっさんとお前らは同じ業種じゃないから。
プログラマは人ではない プログラムをビルドする(不安定な)ツールである
お前らがアホ面して秀丸とパワポだけ使って設計も実装も下請け丸投げしかできないくせに 無駄に人件費を消耗して開発力を落としてるから家電メーカーは馬鹿にしていた韓国に負けるし 最後の砦であるところの自動車メーカーもソフトウェアの比重が高まるにつれて日本メーカーの 優位性が損なわれていっている。現に自動車の完全自動操縦機能なんか何十年も自動車開発 してきたトヨタがぽっと出のgoogleに先を越されてしまっている昭和生まれのハードウェア脳の 年寄りが支配するメーカーが革新的な製品を生み出せるはずがないこの国は年寄りが若者を 搾取するだけの未来の無い終わった国だエコカー減税だエコポイントだ税金を投入しないと利益 を出せない昭和な企業は倒産するべきだし税金は若者主導のベンチャー企業に使うべきだ メーカー製PCのバンドルソフトなんか見ても分かるだろなんだあのセンスのないソフトウェアは あんなのの開発費に税金が投入されているんだぞ年寄りの安定雇用のために存在する国なのかここは
たのしいCのはなしをしてくれ
Cならハードウェアにちかいこともできる。ハードウェアからはなれるべきではないというかんがえもある
ここってホントに入門編なの?と思う時がある
>>973 入門の内容にしか答えられない人がハバを利かせてるスレの意
じゃあ僕は構造体の勉強をしようっと
女子大生のわたしはsetjmp, longjmpの練習
jmpて使った事無いんだがどんなとこで使うの?
try〜catchぽい使い方が多いんじゃないかしら。
ポインタの質問です int *pA , a=5; pA = &a; の場合はpAにaのアドレスが格納されますが pA = a; とした場合はaのアドレスが格納されず、aに格納されている5が代入されるだけですか?
goto禁止規約のときjmpで
コンパイラに怒られる
983 :
979 :2013/01/16(水) 01:57:36.23
その前にエラー吐きましたすいませんでした
pAには変数aのアドレスが格納されてて *pAには変数aが格納されてるってことでいいの?
格納じゃなくて、参照できるでは
戻り値の型がvoidの関数って、returnを書かなくてもコンパイル出来ますよね。 void func(int n) { printf("%d\n",n); // return がない } return を書かないと、どうも気持ちが悪いのですが、たまに書き忘れてしまいます。 上記のコードをコンパイルエラーか、警告がでるようにしたいのですが、何か良い方法はないでしょうか?
voidの意味知ってる?
>>986 C言語の規格として、関数本体の終わりまでreturn文に出会わなかった場合、
そこに式のないreturn文があると見なされることになっている
特にバグの原因になるとも思えないし、書かなくて気持ち悪いというより、
省略できて便利だなあぐらいに思っておけば?
>>986 returnがないのに慣れろ
妙な癖付けられると、そのソースいじる他の人にとっちゃたまったもんじゃない
voidをやめて、intまたはboolにすれば… 例 if(! function() ) { /* エラーならここにきます */ }
バッドノウハウだな
returnを書いたらダメって訳ではないですよね? returnを書き忘れないように気をつけるか いっそのこと、returnを書かないようにするしかないのか・・・
コンピュータが馬鹿だという事がわかってない人に資格どうのこうのは関係ない 馬鹿の目線で考えないと
return false;
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。