13/01/03 21:59:36.98
スレ違いです
751:デフォルトの名無しさん
13/01/03 22:16:03.79
>>750
なぜ、スレ違いなの?
めっちゃC言語、入門じゃん
752:デフォルトの名無しさん
13/01/03 22:24:00.11
小規模なのは手で書いた方が早いし、
手で書けない人が自動生成ツールを使うのは難しいんじゃないかな。
753:749
13/01/03 22:48:57.13
>>752
参考になりました。
ありがとうございます
754:デフォルトの名無しさん
13/01/03 23:44:31.42
netpbm
をインストールする時suのパスワードってなにいれるんですか??
755:デフォルトの名無しさん
13/01/03 23:47:31.93
>>754
なんでもないです、
すみません
756:デフォルトの名無しさん
13/01/03 23:49:26.79
そりゃsuのパスワードだろjk
これ以上はUNIX板にでも行けよ
757:デフォルトの名無しさん
13/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
758:デフォルトの名無しさん
13/01/04 00:39:47.81
scanf使うなら戻り値ちゃんと見たほうがいい
759:デフォルトの名無しさん
13/01/04 00:41:31.76
>>758
ありがとうございます。
詳しく調べてみます。
760:デフォルトの名無しさん
13/01/04 10:48:43.15
6回読み込んだという理由は?
forを抜けた後iが6だったとか?
761:デフォルトの名無しさん
13/01/04 11:00:22.74
>>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の値が入っていたのでさらに意味不明なことに・・・
762:デフォルトの名無しさん
13/01/04 11:09:28.77
>>757
> double k;
> 改行をkに保存してるんだが
意味がわからん。
>>761
printf( ) デバッグするなら、i の値も一緒に表示すれば良いのに…
763:デフォルトの名無しさん
13/01/04 12:10:27.77
>>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
となるけど。。
764:デフォルトの名無しさん
13/01/04 13:07:54.09
>>757
コマンドラインからでなく、コマンドインタプリタを実行している端末エミュレータから入力しているんだろ。
改行文字をdoubleの変数に保存するなんて阿呆なことしていないできちんと書けよ。
つーか、fgets()で一行入力してからsscanf()でばらす方が無難だと思うが。
765:デフォルトの名無しさん
13/01/04 16:52:54.18
無難だね
766:デフォルトの名無しさん
13/01/04 17:43:34.43
標準入力から一行読みたいときに
一行の長さを調べるにはどうすればいいの?
767:デフォルトの名無しさん
13/01/04 17:48:53.95
普通は一行読み込んで、長さを調べる。
一行の長さが予測できない場合は、適当なサイズ毎に読み込んで
行末がでてくるまで文字数をカウントしていく。
768:デフォルトの名無しさん
13/01/04 17:50:08.92
>>766
エスパー回答
スレリンク(tech板:35番)
のどこかにあるchar *mygetline(FILE *fp)を調べれ
769:デフォルトの名無しさん
13/01/04 18:54:38.84
標準入力はシーク出来ないんですか?
770:デフォルトの名無しさん
13/01/04 18:58:00.04
うん
771:デフォルトの名無しさん
13/01/04 19:38:48.81
>>769
標準入力がキーボードの場合シーク要求来たら大変だろ? (w
772:デフォルトの名無しさん
13/01/04 19:44:49.38
なんで?
773:デフォルトの名無しさん
13/01/04 19:45:02.98
標準入力のタイプによる。レギュラーファイルだったらシークできる。
774:デフォルトの名無しさん
13/01/04 21:42:01.61
標準入力をリダイレクトすればできるものにもできる
しなけりゃできない
775:デフォルトの名無しさん
13/01/04 23:19:10.79
eclipse cdtの方がvisual studioより使いやすいようなー
776:デフォルトの名無しさん
13/01/04 23:21:25.09
mingw+eclipseが最強かな
777:デフォルトの名無しさん
13/01/04 23:54:03.03
お前らEDLIN知らねえの?
778:デフォルトの名無しさん
13/01/05 00:50:25.15
dos 版の ed ね、でも漢なら
echo > file
あるのなら
cat > file
だろう?
779:デフォルトの名無しさん
13/01/05 03:23:19.72
江戸がギリだな、それより懐古するともはやコーディングとかって話じゃなくなる
780:デフォルトの名無しさん
13/01/05 17:21:35.33
あぁ腹減った
781:デフォルトの名無しさん
13/01/05 20:13:48.00
microsoft visual c++ 2010 を使っているんですけど、
「間接参照のレベルが'int*'と'int[4][5]'で異なっています。」
という警告が出てきます。
この警告の意味はどういうことなのでしょうか??
782:デフォルトの名無しさん
13/01/05 20:29:58.01
>>781
警告そのまんま
int*とint[4][5]の型が違いますってこと
てかソース貼れ
783:デフォルトの名無しさん
13/01/05 21:10:22.92
嫌です
784:デフォルトの名無しさん
13/01/05 21:18:41.75
は?
785:デフォルトの名無しさん
13/01/05 22:39:59.17
rand()なんですが値が
100以下がほとんどでない。
ほとんどが億レベルなんですが理由は何でしょうか?
234213423
23513123
5634521324
234523546
.
.
.
.
3
2000回に一回ペースで100以下が出る。
786:デフォルトの名無しさん
13/01/05 22:42:35.80
完全にランダムと仮定して
全体のうち百以下の数の個数と
億単位の個数がいくつあるか
自分の手で計算してごらん
787:デフォルトの名無しさん
13/01/05 23:42:52.22
ごらんとかうるせーよ
788:デフォルトの名無しさん
13/01/05 23:44:52.66
計算してごらん 百位かの割合を 簡単なことさ
789:デフォルトの名無しさん
13/01/05 23:53:02.42
僕らの下に地獄なんてないし
僕らの上にはは空があるだけ
計算してごらん すべての人がその日暮らし…
790:デフォルトの名無しさん
13/01/05 23:54:00.82
ははははは
791:デフォルトの名無しさん
13/01/05 23:56:14.16
ゴランに聞いてごらん
792:デフォルトの名無しさん
13/01/05 23:57:58.37
printf("%f回に1回くらい出る\n", RAND_MAX/100.0);
793:デフォルトの名無しさん
13/01/05 23:58:10.02
>>787
ヒント:NGワード
794:デフォルトの名無しさん
13/01/06 00:08:12.38
URLリンク(codepad.org)
795:デフォルトの名無しさん
13/01/06 01:07:17.67
見上~げて、ごらん~夜の~ほ~しを~
796:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/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:デフォルトの名無しさん
13/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);
}
}
801:デフォルトの名無しさん
13/01/06 20:19:13.96
> ★ソースコードを晒すと答えやすくなるかもしれません。
> # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
> # サイズが大きい場合はアップローダ等を利用してください。
> URLリンク(codepad.org)
> URLリンク(ideone.com)
802:デフォルトの名無しさん
13/01/06 20:31:55.59
>>1のテンプレすらも詠まずに長々とだらしないコードをここに張り付ける
その精神性からしてすでに能力が透けて見える
そして極めつけは不要だと自分で判断したコードの中にバグがある場合
もしもここまで来るならそれはどうしようもない
803:デフォルトの名無しさん
13/01/06 20:32:19.38
>>797です。
URLリンク(codepad.org)
804:デフォルトの名無しさん
13/01/06 20:38:50.37
>>802
まあまあそう熱くなるなよ
答えてやるついでに軽く言うくらいが
大人の対応だぜ
805:デフォルトの名無しさん
13/01/06 20:39:37.14
何度もすみません。
訂正があったので
URLリンク(codepad.org)
806:デフォルトの名無しさん
13/01/06 21:02:07.37
>>805
222行目
× > if(ind[i].gene[j] == 0) printf("%c", '0');
○ > if(ind[i].gene[s][j] == 0) printf("%c", '0');
でないかい?
807:デフォルトの名無しさん
13/01/06 21:09:35.36
余談だが
printf("%c", '0'); → printf("0");
で良いような
808:デフォルトの名無しさん
13/01/06 21:26:07.18
int flip でこうやる
float x = (float)rand() / (float)RAND_MAX ;
809:デフォルトの名無しさん
13/01/06 21:31:15.90
こいつのレスのコード見返したけど
やっぱり不要だと思って勝手に省いた部分ジャネーカ
隠れた部分にバグとか、そのままじゃぜってーみつかんねーよ
あおりまくってヴァカにするまでたたかないとコードはでてこねー
810:デフォルトの名無しさん
13/01/06 22:30:13.31
普通状況を再現できる最小限のコードをさらすはずなので大丈夫さ
811:806
13/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
13/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];
でないかい?
813:デフォルトの名無しさん
13/01/06 23:47:42.36
>>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:デフォルトの名無しさん
13/01/07 04:56:25.90
Cを制す者は世界を制す
815:デフォルトの名無しさん
13/01/07 07:44:29.95
>>813
問題ないよ
816:デフォルトの名無しさん
13/01/07 09:27:31.16
>>813
引き数リストのtype name[size]は、type * nameと解釈されるから全く問題ない。
寧ろ、配列そのものではないのでsizeは書かないのが一般的。
817:デフォルトの名無しさん
13/01/07 15:02:30.93
ATARUに出てきたのがC言語だとすぐにわかった
声聞くと一番簡単なプログラムだがスイーツはこれを聞いたらすげえと思うのか
818:813
13/01/07 19:29:11.36
>>815-816
ありがとうございます。
struct genotype *ind と struct genotype **ind で勘違いしていました。
URLリンク(ideone.com) で実験して理解出来ました。
819:デフォルトの名無しさん
13/01/08 00:35:40.79
LinuxでC言語のプログラム書くときにVCみたいなやつないんすか
エディタはvimでいいんですけどビルドとかコンパイル対象のファイルの指定とか
makefile書くのめんどくさいんすけど
820:デフォルトの名無しさん
13/01/08 00:39:25.88
中学生はプログラムなんてやってないで勉強してろ
821:デフォルトの名無しさん
13/01/08 00:41:14.03
makefileっていってもファイル名を並べて書くだけとかのレベルでしょ
難しく考えすぎなんじゃない
VCみたいなのといったらeclipseだろうか たぶんmakefileより面倒な気がするけど
822:デフォルトの名無しさん
13/01/08 02:02:44.92
Eclipseでいいんじゃない?Makefileより面倒かどうか、は、Makefileに慣れてるかどうか、って感じじゃない?
VSに慣れた自分はEclipseのCDTは結構使いやすく感じるよ。Makefileでのビルドもできるしね。
てか、補完に関してはVSより使いやすい部分も多いし。CamelCaseでの補完(JDTでいうBIS→BufferedInputStreamみたいなやつ)がはやくVCのIntellisenseにも実装されてほしいよ。
823:デフォルトの名無しさん
13/01/08 06:56:38.62
>>819
Linuxはボランティアが作っているからねえ。
有料のVSと同じ環境が無料で得られたらMSが潰れてしまう。
楽したけりゃ金出してWindows使っとけという話。
824:デフォルトの名無しさん
13/01/08 08:12:56.24
VS部門が無くなったってMSは潰れん
825:デフォルトの名無しさん
13/01/08 12:03:31.11
ボランティアが日本語のいわゆる「ボランティア」のことなら、Linuxを作ってるのはそれだけじゃない。
給料貰ってそれを仕事としてやってる人間の方がむしろ多い。
826:デフォルトの名無しさん
13/01/08 12:30:58.45
日本語がどう、じゃなくてマスゴミが、ボランティア=無償奉仕かのように間違ったイメージを広げてるだけ。
827:デフォルトの名無しさん
13/01/08 12:37:21.56
つまり金貰って開発してるのにGUIのある開発環境すら作れない無能集団ということ?
828:デフォルトの名無しさん
13/01/08 12:49:54.12
何言ってんだこいつ
829:デフォルトの名無しさん
13/01/08 13:40:50.59
Linuxを作ってる人が開発環境を作ってるわけじゃないだろうし
開発環境はLinuxだけターゲットにしてるわけでもないだろうし
じゅんを
830:デフォルトの名無しさん
13/01/08 15:15:29.50
MSと比較されて「ボランティアだから」と言い訳したバカが混乱の原因。
そんな事は言い訳にはならない。
831:デフォルトの名無しさん
13/01/08 15:21:21.24
オープンソースプロジェクトはバカ避けしにくいって問題もあるだろうな
自己主張が激しいだけの無能とかワラワラいそうだ
ブランチ作って永遠にそこから出て来るな!
って言ってもバカは言うことを聞かない
832:デフォルトの名無しさん
13/01/08 15:31:35.14
iPhoneの無料アプリのレビューも酷いが、あれはあれでウンコアプリの
抑止力になっているのか。
833:デフォルトの名無しさん
13/01/08 15:44:12.26
>>832
広告アプリの足の引っ張り合いかも
834:デフォルトの名無しさん
13/01/08 16:55:53.56
>>805です。
問題としていたところが解決されました。
本当にありがとうございました。
835:デフォルトの名無しさん
13/01/08 18:52:10.93
>>805です。
何度もすみません。
現段階では、評価値が各個体ごとに出力されているのですが、
各個体の、各行(5ビットの2進数)ごとに評価値を出力させるには
どうしたらよいのでしょうか??
836:デフォルトの名無しさん
13/01/08 20:29:08.57
上で指摘された箇所を修正したものです。
URLリンク(codepad.org)
837:デフォルトの名無しさん
13/01/09 02:28:08.71
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,
838:デフォルトの名無しさん
13/01/09 02:28:39.97
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,
839:デフォルトの名無しさん
13/01/09 07:16:17.33
コードを読んで結果がどのようになるか当てる問題です。
過去のテストでこのようなコードがでたのですが
URLリンク(ideone.com)
まったくわかりません。解説お願いします。
まずどこから考えればいいのでしょうか・・・。
840:桃白白
13/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。
841:デフォルトの名無しさん
13/01/09 14:46:50.03
>>819
一応、makefileを自動で作成するツールはいくらでもあるけれど
君みたいな馬鹿が質問するレベルのことって、手書きのmakefileで十分な規模じゃないの?
842:デフォルトの名無しさん
13/01/09 14:49:43.18
>>827
基本情報ぐらい取れば?
843:デフォルトの名無しさん
13/01/09 20:31:02.16
>>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つ持つことになるが良いのだろうか?)
844:デフォルトの名無しさん
13/01/09 20:33:37.26
evaluation();の中でfitness[ml]を全部計算した方が良いかな
845:デフォルトの名無しさん
13/01/09 21:17:03.56
C初心者です。高橋麻奈の「やさしいC」なら簡単に分かるのですが、
「独習C」になると歯が立ちません。その間を埋めるような教科書が無いでしょうか?
ポインタ、構造体などの基礎は理解しているつもりです。
たとえばレス ハンコックの「C言語入門」あたりなのでしょうか。
以上よろしくお願いします。
846:デフォルトの名無しさん
13/01/09 21:28:34.27
神になるためのテンプレから外れるからそういう遠回りになるのだ
847:デフォルトの名無しさん
13/01/09 21:31:44.39
独習Cに難しいところなんてあったっけ?
848:デフォルトの名無しさん
13/01/09 22:29:46.63
例えば何が難しいのか言ってくれ
849:デフォルトの名無しさん
13/01/10 06:33:17.63
日本語が難しいのだと予想
850:デフォルトの名無しさん
13/01/10 06:49:57.39
独習Cは文体が学術っぽくて堅苦しいうえにあの厚さ。
一般人は5分で投げ出す。
翻訳者は高橋麻奈を見習えと言いたい。
851:デフォルトの名無しさん
13/01/10 09:19:03.77
原書よめばいいだろ。
852:デフォルトの名無しさん
13/01/10 09:25:29.86
居るよね
入門書ばっかり読む奴
全く素質無いから早く気づいてやめればいいのに
853:デフォルトの名無しさん
13/01/10 13:30:11.20
本を買ってくれる分おまえよりは業界に貢献してるだろ
854:854
13/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)モデルです。
よろしくお願いいたします。
855:デフォルトの名無しさん
13/01/10 17:08:13.71
32ビットでのintの最大値が21億ほどだから。
856:854
13/01/10 17:26:55.12
>>855
ありがとうございました。11 桁の段階で既に int が扱える桁を超えていたということなのですね。
漠然としか理解できていなかったので助かりました!
857:デフォルトの名無しさん
13/01/10 18:24:38.75
ついでに言うと、floatも桁数が足りてない。
858:854
13/01/10 18:49:45.54
>>857
ありがとうございます。あの後調べたところ
long 型に変換する atol という関数があること
double 型に変換する atof と、atof が double 型を扱うことまで分かりました。
実際に使用しているプログラムでは 4 桁の数値を取り出すものだったので
たまたま問題にはならなかったみたいです。重ね重ねありがとうございました。
859:デフォルトの名無しさん
13/01/10 20:42:51.81
GCC の話かも知れないのですが、エラーメッセージで時々
Abort trap: 6
Segmentation fault: 11
など数字のついたメッセージを受け取ります。
他の数字のエラーメッセージを見てみたいのですが
これは何の規格で定義されているものですか?
860:デフォルトの名無しさん
13/01/10 20:44:27.31
故意にセグらせる命令があったはず
861:デフォルトの名無しさん
13/01/10 20:50:43.44
6 = SIGABORT
11 = SIGSEGV
Unix系なら<signal.h>付近に書いてある。
862:デフォルトの名無しさん
13/01/11 00:00:12.10
なんで、find,grepの使い方から覚えないんだろう
863:デフォルトの名無しさん
13/01/11 02:19:19.02
リッチーさんも亡くなったのにまだCに固執してるのかきめえ
Bに移行しろよ
864:デフォルトの名無しさん
13/01/12 23:29:53.77
2ちゃんねるブラウザを作ろうかと思ってC言語を勉強しているわけなんですが
C言語で専ブラの画面を作るには、どのように作るのがベストなのでしょうか
C#で作られている専ブラのソース見てみたら、画面共通化されていない感じでした。
ちなみに、一番の問題はスレを表示する機能を実装する時に、
どのように高速動作 + 画像表示させるのかが問題になってくるかなと思っています。
865:デフォルトの名無しさん
13/01/12 23:31:32.43
win32apiで作るかC言語で作るのを諦めるかじゃないかなあ
866:デフォルトの名無しさん
13/01/12 23:36:07.81
CでGUIはキツい
それでなくともショートカットやらマウスジェスチャやら
面倒は山積みだ
一番問題なのは2chブラウザにあたって
C言語を選定するその考えだ
867:デフォルトの名無しさん
13/01/12 23:37:09.66
スレ表示についてはIEコンポーネントを貼り付けるだけでもいける
868:864
13/01/12 23:37:19.15
>>865
最初はwin32で作ろうかなと思ったのですが、面倒そうだったのでやめました
gtkを使ってプログラムしてこうかなって思ってます
過去に専ブラを作ろうと試みたこともあるのですが、スレを表示するのが難しくて困り果てました
表示するだけなら簡単だけど、画像を表示させたりすると難しいんですね
869:864
13/01/12 23:48:06.98
>>866
.NETは会社で使っているので、スルーすることに決めました
>>867
それは過去に考えたことがあるんですが、独自描写でいきたいなと思ってます。
独自描写すればプログラム的に楽しそうだからです
870:デフォルトの名無しさん
13/01/12 23:50:54.93
DirectXでレスを3D表示すると楽しいよ
871:デフォルトの名無しさん
13/01/13 00:16:25.06
wxWidgetsでアプリ作るのはどうかな
872:デフォルトの名無しさん
13/01/13 00:32:50.72
>>868
win32api が面倒とか言ってる奴が、C でやると言うのも理解できないけど、
そもそもなんで C++ でないのか?
まあ、それはそれでスレ違いになるけど。
873:デフォルトの名無しさん
13/01/13 00:42:10.18
HTMLでtable使ってドット絵吐き出せばいいじゃん
874:デフォルトの名無しさん
13/01/13 01:12:12.85
>>869
やめとけよ。
Cの標準ライブラリを見てみたか?
ブラウザを作れそうな機能なんて一つもないだろ?
そういう言語なんだよCは。
875:デフォルトの名無しさん
13/01/13 02:09:08.05
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
876:デフォルトの名無しさん
13/01/13 11:59:25.23
>>868
画像表示とか要らんので、lynxやmnewsみたいのを作って下せ。
877:デフォルトの名無しさん
13/01/13 12:05:20.43
既存のGUI部品に全く頼らず、
ゲームの画面みたいに全部独自のUIでやるのは面白いかもしれないな
そういうのないから大ヒットするかもしれんぞ
878:デフォルトの名無しさん
13/01/13 12:14:06.04
UIカスタマイズとか面白いね
879:デフォルトの名無しさん
13/01/13 14:28:04.56
>>877
freeglutとかで出来そう
880:デフォルトの名無しさん
13/01/13 14:52:14.03
1から200までの整数のうち、7の倍数を一行に13個ずつ表示するプログラムが課題で出されたのですが
7の倍数を抽出する部分は出来たのですが、一行に13個ずつ表示するという部分ができません。
授業では、if文とfor文しか扱っていないのでその範囲内で解決できるみたいです。
ご教授いただけると嬉しいです。よろしくお願いします。
881:デフォルトの名無しさん
13/01/13 14:57:50.46
>>880
キューに貯めて
七個あったら一気に書き込み
882:デフォルトの名無しさん
13/01/13 15:06:05.08
>>880
>一行に13個ずつ表示するという部分ができません。
13個出力したら、"\n" を出力するだけだろ。
883:デフォルトの名無しさん
13/01/13 15:10:22.12
#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;
}
884:デフォルトの名無しさん
13/01/13 15:14:00.23
でたーmainの引数にvoid入れちゃう奴www
885:デフォルトの名無しさん
13/01/13 15:22:00.00
お前ならどうすんの?
886:デフォルトの名無しさん
13/01/13 17:14:41.97
俺ならchar * envまで書いちゃうね
887:デフォルトの名無しさん
13/01/13 17:20:35.14
darwinだと4つも渡してくれるらしいぞ。
int main(int argc, char **argv, char **envp, char **apple);
888:デフォルトの名無しさん
13/01/13 17:21:08.26
その最後のやつはなに?
889:デフォルトの名無しさん
13/01/13 17:35:12.75
実行ファイルのパスが入ってたりするらしいけど。
ていうかやってみたら実際に入ってた。
おおっぴらに使っていいもんではないのかも。
890:デフォルトの名無しさん
13/01/13 17:45:10.55
じゃargv[0]には何が入っているの?
891:デフォルトの名無しさん
13/01/13 18:03:22.58
同じの入っとる。
そっちは書き換えるアプリがあるせいかね。
と思ったけどまったく同じでもないっぽい。
URLリンク(unixjunkie.blogspot.jp)
892:デフォルトの名無しさん
13/01/13 20:37:28.45
Winmainなんかはargv書き換えると落ちるし
893:デフォルトの名無しさん
13/01/13 21:08:38.17
void main()対策
#define void int
894:デフォルトの名無しさん
13/01/13 21:17:19.16
>>893
入門者が本気にするだろw
895:デフォルトの名無しさん
13/01/13 22:54:58.07
>>893
予約語って書き換えできるっけ?
896:デフォルトの名無しさん
13/01/13 23:02:39.51
>>895
できたよ
URLリンク(ideone.com)
897:デフォルトの名無しさん
13/01/13 23:22:30.52
>>896
で、写像の意味を理解してないから、減点くらう訳ですね。
898:デフォルトの名無しさん
13/01/13 23:27:44.74
プリプロセッサはC言語の事なんかなんにも知らないっしょ
899:デフォルトの名無しさん
13/01/13 23:34:08.68
プリプロセッサは何にも知らないけれど
プリプロセッサの気持ちはよく分かる
プリプロセッサ可愛いや
可愛いやプリプロセッサ
900:デフォルトの名無しさん
13/01/13 23:53:43.12
赤いプリプロセッサに唇よせて
黙って見ている蒼井そら
901:デフォルトの名無しさん
13/01/14 02:10:18.27
>>877
UIって今後はjsで標準化されてくよ
QMLやgnome-shell、silverlight、javafx辺りが良い例。
902:デフォルトの名無しさん
13/01/14 02:38:06.68
argv[0]は実行ファイルのフルパスじゃなかったっけ。
903:デフォルトの名無しさん
13/01/14 02:41:03.09
>>902
コマンドインタプリタ次第。
相対パスの場合もあれば、aliasの場合もある。
904:デフォルトの名無しさん
13/01/14 02:43:09.83
起動時に与えられた通りの内容が入ってる。
905:デフォルトの名無しさん
13/01/14 02:46:31.85
>>902
URLリンク(ideone.com)
では、
argv[0]=./prog
と出た
906:デフォルトの名無しさん
13/01/14 04:28:45.10
<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の部分でエラーが出てコンパイルできないのですがなにが原因でしょうか
907:デフォルトの名無しさん
13/01/14 04:38:09.77
>>906
どんな[エラー]?
こちらでは、
「関数 a(); で c に値がセットされたが使われていない」
というような[警告]は出るけどコンパイルは通るよ。
908:デフォルトの名無しさん
13/01/14 04:56:43.16
>>902
Windowsではフルパスだよね
909:デフォルトの名無しさん
13/01/14 09:14:03.76
Windowsでもそのアプリを起動するアプリ次第だけどな。
910:859
13/01/14 16:52:31.42
>>859 です。遅くなりましたがありがとうございました。
>>861
ISO の規格に載っていたとは、検索の仕方がわるかったです。
>>862
iPhone アプリ制作の基礎として C 言語を学んでいるので
UNIX の知識はあまりありません。時間を見て調べてみます。
911:デフォルトの名無しさん
13/01/14 18:30:22.14
>>909
マジかよ・・・
912:デフォルトの名無しさん
13/01/14 19:01:10.81
マジなの?
913:デフォルトの名無しさん
13/01/14 19:06:48.98
相対パスで起動すれば相対パスで入ってるだろ
914:デフォルトの名無しさん
13/01/14 19:11:55.92
WindowsならGetFullPathName()つかってフルパス名に変換してた。
915:デフォルトの名無しさん
13/01/14 20:23:31.00
プログラミングを始めようと思っています
ゲームのチートツールなどを作りたいと思っているのですが
これに特化した言語はありますか?全ての言語で出来ると良いんですが・・・
916:デフォルトの名無しさん
13/01/14 20:36:57.47
Cかアセンブリ
917:デフォルトの名無しさん
13/01/14 20:40:14.02
>>916
かっこいいwwwありがとうございます!
918:デフォルトの名無しさん
13/01/14 20:41:31.10
こいつには無理だな
919:デフォルトの名無しさん
13/01/14 20:58:04.62
資格ってとった方がよいですか?
いいなら、1級までとる。
URLリンク(www.shikakude.com)
920:デフォルトの名無しさん
13/01/14 21:00:04.13
そんなもの糞のやくにもたたんひたすら書け
なんかしらんが宿題スレがいま盛況だからちょうどいい
921:デフォルトの名無しさん
13/01/14 21:13:43.60
そんな事より働く気なら基本情報位持ってないとバカだと思われるぞ
922:デフォルトの名無しさん
13/01/14 21:16:33.63
えーレバーあんま好きじゃないわ
レバーの魅力を語って
923:デフォルトの名無しさん
13/01/14 21:25:11.52
昔の一種くらいはほしいね今は何?今でもCやcaslやってるのか?いずれにせよ妬くには立たん
924:デフォルトの名無しさん
13/01/14 21:26:28.32
>>918
お前って馬鹿だな
925:デフォルトの名無しさん
13/01/14 21:40:49.51
>>919
会社でその資格に対して手当てとか出るなら、とったほうが良い。
そうでないなら、とる意味なし。
926:デフォルトの名無しさん
13/01/15 09:45:46.35
うわぁ