トップページ⇒tech
1001コメント322KB

C/C++の宿題片付けます 165代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/06/03(月) 19:28:25.11
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。
気に入らない質問やその他の発言はスルーの方向で。
「著作」「違法」「Qz」はNGワード推奨。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を
 入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0153デフォルトの名無しさん2013/06/15(土) 19:36:13.02
ヨンシバは公開できないようです。何を恐れているのでしょうか。
0154デフォルトの名無しさん2013/06/15(土) 19:36:48.29
>>152
評価 C

評価の理由は期限切れ後に教えてやる。WWWW
0155デフォルトの名無しさん2013/06/15(土) 19:38:35.43
>>154
じゃあヨンシバを評価してやるからさっさと書け。
出してないのはお前だけだぞ。
0156デフォルトの名無しさん2013/06/15(土) 19:56:33.13
>>153
期限内の回答はカンニングへの協力になるだろ。 バカ学生にエサはやらない。 WWWW

>>155
お前のはどれだよ。WWWW
0157デフォルトの名無しさん2013/06/15(土) 20:02:15.15
ヨンシバさんは他の人のコードをカンニングしました。
0158デフォルトの名無しさん2013/06/15(土) 20:02:19.45
>>154
てめー、騙るんじゃねー。ねっ殺すぞ

評価は一緒だが WWWW
0159デフォルトの名無しさん2013/06/15(土) 20:17:35.31
[1] 授業単元:タンシバへの挑戦状
[2] 問題文:入力された正の整数をローマ数字に変換するプログラムを作れ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C/C++どちらでも可
[4] 期限:2013/06/18
[5] その他の制限:なし
0160デフォルトの名無しさん2013/06/15(土) 20:22:36.52
[1] 授業単元:サンシバへの挑戦状
[2] 問題文:入力された正の整数を漢数字に変換するプログラムを作れ(123→百二十三)。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C/C++どちらでも可
[4] 期限:2013/06/18
[5] その他の制限:なし
0161デフォルトの名無しさん2013/06/15(土) 20:25:24.07
[1] 授業単元:ヨンシバへの挑戦状
[2] 問題文:「こんにちは世界」と表示するプログラムを作れ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C/C++どちらでも可
[4] 期限:2013/06/18
[5] その他の制限:なし
0162デフォルトの名無しさん2013/06/15(土) 20:32:09.41
>>155
おいチンカス、提出しないとDだぞ。WWWW
0163デフォルトの名無しさん2013/06/15(土) 20:36:49.81
>>162
ヨンシバさん、挑戦状が届いてます。>>161これなら
ヨンシバさんでも答えられるんじゃないでしょうか。
問題設定が非常にいいと思います。ヨンシバさんのためになると思います。
0164デフォルトの名無しさん2013/06/15(土) 20:47:33.56
>>150
sqだけなら

>>163
提出期限 遅れないようにな。チンカス WWWW
0165デフォルトの名無しさん2013/06/15(土) 20:50:00.28
ヨンシバさんがまたもや逃亡しました。
0166デフォルトの名無しさん2013/06/15(土) 21:00:07.90
ヨンシバハ、カスデアリマス。
ロクデモナイ、ニンゲンデアリマス。
0167デフォルトの名無しさん2013/06/15(土) 21:17:34.55
やらないか?
0168 ◆QZaw55cn4c 2013/06/15(土) 22:11:20.56
>>119
http://toro.2ch.net/test/read.cgi/tech/1313183984/738
>>>147, >>151 >>154
評価およびオナニー指数評価の両方をお願いいたします。
0169デフォルトの名無しさん2013/06/15(土) 22:29:04.93
Qは老害だから射精したら心臓止まりそうになるんじゃねw
0170 ◆QZaw55cn4c 2013/06/15(土) 22:41:58.17
>>119
設題「1 <= n <= 10000 とした時の全ての Happy number を列挙せよ。」にあわせて置きます
http://toro.2ch.net/test/read.cgi/tech/1313183984/739

>>147 >>151 >>154
評価よろしく
0171デフォルトの名無しさん2013/06/15(土) 22:42:56.50
>>169
止まらなければ問題ない
0172デフォルトの名無しさん2013/06/15(土) 22:43:55.42
>>168
評価 片山MZより出来が悪いからC-
0173デフォルトの名無しさん2013/06/15(土) 22:46:59.88
>>164
騙るんじゃねー。殺すぞ

>>166
ふざけんじゃねー 雑魚がWWWW

>>170
評価はもう終わってんだよWWWW
0174デフォルトの名無しさん2013/06/15(土) 22:51:49.43
俺はおっぱい好きWWWW
おっぱいおっぱいWWWW
それも大きなおっぱいWWWW
おまえらおっぱい写真貼れよWWWW
0175デフォルトの名無しさん2013/06/15(土) 22:56:34.78
おい、おま、貼れよ
いろいろ持ってるんだろWWWW
0176デフォルトの名無しさん2013/06/15(土) 23:30:04.73
おまいらそんなにV8が好きか
0177デフォルトの名無しさん2013/06/15(土) 23:58:13.60
>>119
http://ideone.com/a6ZQAK
0178デフォルトの名無しさん2013/06/16(日) 00:12:22.46
QZ発狂しすぎて発作起こすなよおい
0179デフォルトの名無しさん2013/06/16(日) 00:48:24.45
QZって何のために糞コード回答してるの?
0180デフォルトの名無しさん2013/06/16(日) 01:29:02.05
ポインタのポインタを引数とする関数が全く分からないんだけど、なんか参考になるコードとかないかな?
0181デフォルトの名無しさん2013/06/16(日) 01:55:50.94
int main(int argc,char **argv)←コレ
メモリ空間上にはアドレスが振られてて、有るアドレスに有る値を別のアドレスとして解釈するのがポインタ。
ポインタ自体は只の値に過ぎない。アドレス値という値をどう解釈してアクセスしたいかを考えればそれで良い。
mainの中で、
argvと書くと「「「どこかに有るcharな値」が連続する場所の頭を指すchar*な値」が連続する場所の頭を指すchar**な値」。
*argvと書くと「「どこかに有るcharな値」が連続する場所の頭を指すchar*な値」。
**argvと書くと「どこかに有るcharな値」。
argv=〜とか*argv=〜とか**argv=〜とかで書き換えるのもその値。
argv[N]だと「頭を指す」が「頭からN番目を指す」に変わるだけ。
0182片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/16(日) 01:58:47.80
>>180
2次元配列のように、マップデータや画像データを保持するためにポインタのポインタが使われることがある。
または、ポインタを書き換えるためのポインタとして使うことがある。
0183片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/16(日) 02:18:18.63
Cの文字列は、ゼロ終端の文字の並びの先頭アドレスでchar*型またはconst char*型だ。constを無視すると、文字列配列はchar**型に互換となる。
0184デフォルトの名無しさん2013/06/16(日) 03:06:23.50
多次元配列の罠にかかった人がここにも一人。
これだから多次元配列は…「char a[16*16];a[x+16*y]」でもつかっとけ。

>>182
> 2次元配列のように
ポインタ配列は兎も角、二次元配列はポインタのポインタ(配列)のような記法でアクセスできるだけでポインタのポインタ(配列)ではないぞ。
「char a[16][16];char **b=a;」はコンパイル通らないだろ。
メモリ消費量も16*16バイトピッタリで、16*16+sizeof(char*)*16バイトではない。
エラーに出てるかもしれんが、各配列長を型として保持して、先頭から位置を求めてるんだよ
**argvのメモリアクセスは二度だが、**aのメモリアクセスは一度だけだ。

>>183
> 文字列配列はchar**型に互換
「char a[16][16];」はナル終端文字列の配列だが互換性はないぞ。
0185片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/16(日) 03:16:33.11
くっ、なかなかやるな

今日はこの辺にしといてやるが、次はこうはいかないぜぇ

あばよ
0186デフォルトの名無しさん2013/06/16(日) 03:19:06.33
上で書いたものだけど、
function(int n,int *a,int **b)を宣言して、この関数で配列a[]の各要素のアドレスを
配列に入れて返したいんだけど**bの使い方が全く分からなくて困ってるって話からこの質問をさせてもらったんだ。
ちょっと抽象的な質問になっちゃったから聞き直したいんだけど、上記の関数ってどういう感じで考えてコードを書いていくか教えてほしい。
答えじゃなくてもヒントでも構わないんでどなたかよろしくお願いします。
0187しったかぶり2013/06/16(日) 03:55:54.57
>>186
返答返してから書くのもアレだけど、出来ればC++相談室向けの話題かもな。
で、片山クンが自爆したおかげでサンプル出てきたけど、ポインタと配列の絡みは型が重要になってくることもあるから宣言も一緒にね。
181ではさらっと"「どこかに有るcharな値」が連続する場所"と書いたが、配列でない時は"「どこかに有るcharな値」の場所"となる。
結論から行くと、おそらく「int aA[N]=...;int *aB[N]=...;f(N,aA,aB);」としているとして「int i;for(i=0;i<n;i++)b[i]=a+i;/*&(a[i])でも可*/」となる。
考え方だが…
まず、aBはポインタの配列で、bもまたポインタの配列(の先頭)を指している。aAはintの配列で、aもまたintの配列(の先頭)を指している。
値を代入したい先はポインタの配列上のi番目のポインタ値であり、bの指す配列のi番目を更新することになる、ので「b[i]=〜」だ。
代入したい値はintの配列上のi番目の値"への"ポインタ値であり、aから数えてi番目の位置を欲しい、ので「a+i;」か「&(a[i])」だ。

入れ子になる順序やそれらが指す場所の意味を意識すると良い。
int **Pがあるとして、
「int{へのポインタ/の配列}(←甲とする){へのポインタ/の配列}(←乙とする)」を確認して、
「P[甲としての何番目か、ポインタなら0][乙としての何番目か、ポインタなら0]」とアクセスする。
PやP[〜]やP[〜][〜]はそれぞれが値なので&()で括ってそのアドレスを取り出す。

多次元配列は片山くんみたいなミスにつながるので、「char a[16*16];a[x+16*y]」でやったほうが確実。
Typoの危険は増えるけど、メモリ上での配置順とかが分かりやすくなるし、ああいうミスも減る…と思う。
0188デフォルトの名無しさん2013/06/16(日) 04:21:26.24
長えよ
01891872013/06/16(日) 05:08:46.64
しったかさんですもの
0190デフォルトの名無しさん2013/06/16(日) 06:38:02.91
>>180
int main(int argc, char **argv);
0191デフォルトの名無しさん2013/06/16(日) 06:49:27.00
>>186
ごめんね今まで例を都度ごとに書いていたんだけれど今日はあんまりやる気が起きないんだ、これでどうでしょうか?
http://codepad.org/WbYjbaN5
0192デフォルトの名無しさん2013/06/16(日) 07:17:13.81
C言語初心者です。
年利r、元金A,元利a,年数iのとき元金が倍になるまでの年数を求めるプログラムを作成せよ
というプログラムですが

#include<stdio.h>
void main()
{
float a;
int A,r,i;
printf("年利(%)="); scanf("%d",&r);
printf("元金="); scanf("%d",&A);
i=0; a=A;
while(a<A*2){a=a*(1+(r*0.01)); i++;}
printf("i=%d年後,元金=%d円,元利合計=%5f円",i,a0,a);
}
とすると表示はされるのですが、解答の方ではfloat r;、int A,a,i、元利合計の部分が=%dとなっておりこの通りにするとエラーはないのですが
年利、元金入力後動かなくなります。
0193デフォルトの名無しさん2013/06/16(日) 07:39:45.02
> 解答の方ではfloat r;、int A,a,i、元利合計の部分が=%dとなっており

解答が間違っている。%f が正しい。
0194デフォルトの名無しさん2013/06/16(日) 07:41:17.45
>>192
> printf("i=%d年後,元金=%d円,元利合計=%5f円",i,a0,a);

printf("i=%d年後, 元金=%d円, 元利合計=%d円\n",i,A,(int)a);
とするのが綺麗
0195デフォルトの名無しさん2013/06/16(日) 07:52:50.45
すみません最後a0ではなくAでした

>>193
>>194
ありがとうございました。
0196デフォルトの名無しさん2013/06/16(日) 09:30:48.36
おカネの計算に安易にfloatを使わせるのは教育上問題がある
0197デフォルトの名無しさん2013/06/16(日) 09:35:26.61
そんなこと言い出したらCでやること自体が間違いだし
0198デフォルトの名無しさん2013/06/16(日) 10:16:37.55
そういう意味じゃないと思うぞ
0199デフォルトの名無しさん2013/06/16(日) 10:29:54.78
>>172
オナニー指数評価もお願いします
0200デフォルトの名無しさん2013/06/16(日) 11:01:10.08
>>191
うーん、逆によく分からなくなってきた
0201デフォルトの名無しさん2013/06/16(日) 11:50:30.38
>>200
http://ideone.com/QskKIo

もしかしてこういう事がしたいの?

Cだとポインタのポインタの参照がないからよく間違えるんだけど、ポインタ配列のアドレスを返すには
ポインタのポインタのポインタにしなければならないので結構最初はとまどう
0202デフォルトの名無しさん2013/06/16(日) 13:21:31.63
>>200-201
こういうときは C++ の参照がいいなっって思います. http://codepad.org/zX53XG8v

>>201
× if ((*b = (int **)malloc(sizeof(int **) * n)) == NULL)
○ if ((*b = (int **)malloc(sizeof(int *) * n)) == NULL)

× for (i = 0; i < N; i++) (*b)[i] = &a[i];
○ for (i = 0; i < n; i++) (*b)[i] = &a[i];

あと free()‥‥.
0203デフォルトの名無しさん2013/06/16(日) 13:53:49.90
>>202
free()はC++じゃないとついつい忘れる
0204デフォルトの名無しさん2013/06/16(日) 13:58:22.58
特に呼び出した関数でmalloc()なんかしてると、小さなプログラムならいいけど、
大きくなると管理しきれないよね
0205デフォルトの名無しさん2013/06/16(日) 14:16:05.03
>>203 >>204
javaのデコレーションの味を知ってしまったら‥‥GCもやむをえない、GCなんてlispな人だけのマイナーな存在だとばかりおもってたのにいつのまにか
0206デフォルトの名無しさん2013/06/16(日) 14:35:16.45
>>205
俺は、プログラミングはC言語から入ってC++→JAVA(基本)→C#って
感じで勉強してきて、今、再度JAVAをちゃんと勉強してるけど
あ〜・・配列返せるってなんて楽なんだろうとか、メンバ変数は初期化しなければ
勝手に0やnullやfalseにしてくれてるし、そのほかもろもろ楽だ〜・・・って思う。
が、反面、Cやってたせいか、いくらGCでもメモリまわりはいつも気になる。
0207デフォルトの名無しさん2013/06/16(日) 15:22:50.56
>>180
さっきひさしぶりにC言語のコード書いた。これ参考になるかな?freeは自分でしてね。
#include <stdio.h> #include <string.h>#include <stdlib.h>
typedef struct Hito Hito;
struct Hito{char * name;int age;Hito * next;};
Hito* getNewInstance(char * name,int age){
Hito * temp = malloc(sizeof(Hito));temp->name = malloc(sizeof(char*)*(strlen(name)+1));strcpy(temp->name,name);
temp->age = age;return temp;}
void toAlist(Hito **top){char buff[256] = {'\0'},name[128] = {'\0'};int age = 0,i;char *p;Hito *temp;
for(i = 0; i < 3; i++){if(*top == NULL){puts("名前と年齢を一つスペースを空けて入力");
fgets(buff,256,stdin);
if(p =strchr(buff,'\n'))
*p = '\0';sscanf(buff,"%s %d",name,&age);
*top = getNewInstance(name,age);
(*top)->next = NULL;
}else{puts("名前と年齢を一つスペースを空けて入力");
fgets(buff,256,stdin);
if(p =strchr(buff,'\n'))
*p = '\0';
sscanf(buff,"%s %d",name,&age);
temp = getNewInstance(name,age);
temp->next= NULL;
temp->next = *top;
*top = temp;}}}
void ShowAll(Hito *top)
{Hito *temp;
for(temp = top; temp != NULL;temp = temp->next){
printf("%s %d\n",temp->name,temp->age);}}
int main(int argc, char *argv[]){Hito *top = NULL;toAlist(&top);ShowAll(top);}
0208デフォルトの名無しさん2013/06/16(日) 16:19:16.14
>>206
c# ってどんな感じ? java は言語仕様自体よりも豊富なライブラリ群に感心しているのだが
c# に classpath がのっかるとかそんな話はないの?
0209デフォルトの名無しさん2013/06/16(日) 16:35:56.35
>>208
どんな感じって、例えばハーバート・シルトの「独習C#」でいいから打ち込んでみれば
C#がどんな言語かは自分で分かる。Javaと似ているようでもあるし、全然違う部分も
ある。特にGUIは超簡単。Javaにないプロパティも便利。

方向性がJavaとC#では違うんだよな
0210デフォルトの名無しさん2013/06/17(月) 00:01:30.48
>>151
さて、>>119 の期限が切れたわけなんですが
0211デフォルトの名無しさん2013/06/17(月) 01:00:39.35
ヨンシバさん、居たら返事してよ
0212デフォルトの名無しさん2013/06/17(月) 07:44:11.08
>>210
お前だけ未提出なわけだが、その上で煽る強靭なメンタルにはビックリだよ。WWWW
ideone.com/VMs8to
0213デフォルトの名無しさん2013/06/17(月) 08:38:24.84
この数列は
a 1, ...
b 4, 16, 37, 58, 89, 145, 42, 20, ...
のどちらとなり、aがhappy number
採点基準は問題から1)収束条件を読み取り、2)happy numberを出力する誤りの無いプログラムを作成する事。

A: 1,2を満たす
B: 1,2の一方が不完全
C: 1,2の両方とも不完全
D: 未提出

>>140は収束条件に配列サイズの制限ありなのでB とした

未提出はチンカス1人だけ WWWW
0214デフォルトの名無しさん2013/06/17(月) 08:40:36.99
大口たたいてこの程度とかw
0215デフォルトの名無しさん2013/06/17(月) 08:41:30.94
>>213
配列サイズの制限について詳しく
0216デフォルトの名無しさん2013/06/17(月) 09:01:53.36
>>214
未提出のチンカスがなにかほえてるなWWWW

>>215
整数全域の検査できないだろ
10以下と配列使ったチェックの組み合わせなら別解としてAでも良いが
0217デフォルトの名無しさん2013/06/17(月) 09:03:32.80
nの範囲が限定されてるのに、整数全域の検査ができないことに何の問題が?
0218デフォルトの名無しさん2013/06/17(月) 09:17:49.64
無駄な計算を気にしない点ではクズと同レベルだったなw
0219デフォルトの名無しさん2013/06/17(月) 09:24:22.78
構ってちゃんなだけだった
アホだろ
0220デフォルトの名無しさん2013/06/17(月) 09:29:23.06
140
0221デフォルトの名無しさん2013/06/17(月) 09:29:52.71
>>217
20世紀の伝説の恥晒しKKCに匹敵する「末尾再起を知らなかったチンカス」にしては全然ダメ

前回以上の爆笑レス期待してるぞ WWWW
0222デフォルトの名無しさん2013/06/17(月) 09:38:33.55
ミス
140をちょっと改良

#include <stdio.h>

int sq[10] = {0, 1, 4, 9, 16, 25, 36, 49, 64, 81};
char chk[9 * 9 * 4 + 1] = {0, 1};
int calc(int n)
{
int ret = 0;
while(n) ret += sq[n % 10], n /= 10;
return ret;
}
int f(int n)
{

if(chk[n]) return chk[n];
chk[n] = -1;

return chk[n] = f(calc(n));
}

int main(void)
{
int i, j, k;

for(i = 1; i <= 9 * 9 * 4; i++) if(f(i) == 1) printf("%5d", i);
for( ; i <= 10000; i++) if(chk[calc(i)] == 1) printf("%5d", i);

return 0;
}
0223デフォルトの名無しさん2013/06/17(月) 09:49:01.57
なんかあれだよな、ヨンシバのネタってあたし何歳だと思う?に近いよな。
やりとりがくだらねえし、答え言われてもああそうで終わる。
0224デフォルトの名無しさん2013/06/17(月) 09:51:28.97
一番提出が遅かったヨンシバ、効率が劇悪なコードを披露してしまってあえなく大敗北。
評価はFで。
0225デフォルトの名無しさん2013/06/17(月) 09:59:47.71
だって頭が悪いのに虚栄心だけは人一倍なんですもの
0226デフォルトの名無しさん2013/06/17(月) 10:30:50.78
最強麻雀スレを焼け野原にしたクソコテに似てる
0227桃白白 ◆9Jro6YFwm650 2013/06/17(月) 12:58:12.48
>>160
http://ideone.com/QVVdEq
0228片山博文MZパンク ◆0lBZNi.Q7evd 2013/06/17(月) 13:56:01.67
桃白白、C言語もできるんだw
0229桃白白 ◆9Jro6YFwm650 2013/06/17(月) 14:00:13.29
>>228
笑うな!黙れ!!黙れ!!
0230デフォルトの名無しさん2013/06/17(月) 14:44:34.81
>>227
0
0231デフォルトの名無しさん2013/06/17(月) 16:23:43.64
>>221
例の末尾再起コードは末尾で再起してるけど、そのへんのコンパイラでは最適化掛からず普通に再帰してスタック食いつぶして死ぬ。
元の発言者が末尾再起を知らなかった可能性は否定しないが、煽ってた馬鹿も末尾再起を理解していなかったオチだぞ。
0232デフォルトの名無しさん2013/06/17(月) 16:55:31.84
末尾最適化をアテにしたコードを書くなよ
0233デフォルトの名無しさん2013/06/17(月) 17:05:51.73
>>231
再帰
0234デフォルトの名無しさん2013/06/17(月) 18:05:01.51
>>231
ごまかすなよ WWWW
Qzが「再起ダセー」とうるせーから、これなら文句ねーだろと末尾再起の形に書き変えた後の大爆笑。ほらよログだ。 WWWW

toro.2ch.net/test/read.cgi/tech/1352812333
874 :デフォルトの名無しさん:2013/01/29(火) 12:37:44.50
バカがうるさいので書き直してやるよ。www
void free_l(struct l * restrict p) {
struct l *next = p->next;
free(p);
if (next)
free_l(next);
}

バカのいいがかりなんて所詮この程度の事。 バカには意味わからないだろうけどな。www
875 :デフォルトの名無しさん:2013/01/29(火) 12:50:52.54
いくつ連結されるかわからないリスト構造を再帰で解放するのは
キチガイのやることです
876 :デフォルトの名無しさん:2013/01/29(火) 12:58:33.48
ここでwwwさんに問題です
天才には簡単な問題ですので必ず逃げないで答えてください

スタックサイズが8MBのとき、このfree_l関数で解放可能な連結リストは
最大何個連結可能でしょうか?

アーキテクチャは好きに選んでいいですよ
0235デフォルトの名無しさん2013/06/17(月) 18:08:26.41
あー、今見てもハラ痛てー

しかも、とうのQzは渾身のオナニーに末尾再起を使うようになりましたとさ。WWWW
0236デフォルトの名無しさん2013/06/17(月) 18:47:27.36
>>231
>例の末尾再起コードは末尾で再起してるけど、そのへんのコンパイラでは最適化掛からず普通に再帰してスタック食いつぶして死ぬ。

ちなみに、末尾呼び出しを最適化しない「そのへんのコンパイラ」ってどれだよ。
後学のために名前とバージョン教えてくれや。WWWW
0237デフォルトの名無しさん2013/06/17(月) 18:52:22.86
BCC32.EXE
0238 ◆QZaw55cn4c 2013/06/17(月) 19:20:15.48
>>231
はい!末尾再帰の本質を理解していませんでした!
でも今なら(一方向の再帰ならば)末尾再帰に書き直すことができるまでに成長しました!誉めてください :−)
0239 ◆QZaw55cn4c 2013/06/17(月) 19:41:58.46
>>231
>煽ってた馬鹿も末尾再起を理解していなかったオチだぞ。
懇切丁寧に末尾再帰を教えていただいた彼の名誉のために敢えて申し上げておきますと、彼は一言で末尾再帰の本質を言い当てており、私もその一言で救われました。
>ジャンプ最適化
0240デフォルトの名無しさん2013/06/17(月) 19:49:37.62
>>239
Schemeの継続が参考になるかもね。
ttp://practical-scheme.net/docs/cont-j.html
0241デフォルトの名無しさん2013/06/17(月) 19:50:17.79
しかしやべえなQZってコテ
絶句
0242デフォルトの名無しさん2013/06/17(月) 20:05:10.01
再起ねえ。
ハングルで書くと、区別出来ないらしいが。
0243 ◆QZaw55cn4c 2013/06/17(月) 20:48:37.76
>>240
setjmp()/longjmp() は実装も含めておなじみなんですけれども、いまいち call/cc は‥‥‥
http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3AScheme%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%83%AC%E3%83%99%E3%83%AB10
>SICPも買ってはみたけれど、ちょっと読んでまだ難しそうなのでお休み。
0244デフォルトの名無しさん2013/06/17(月) 20:57:33.23
#include<stdio.h>
#define SIZE 9

void function(int n,int *a,int **b);

int main(void){
int i;
int *b;
int a[SIZE] = {1,2,3,4,5,6,7,8,9 };

function(SIZE, a, &b);

for(i = 0; i < SIZE; i++){
printf("%d %d %p\n",i,a[i],&b);
}
return 0;
}

void function(int n,int *a, int **b){
int i;
for(i = 0; i < n; i++){
b[i] = &a[i];
}
}

自分で書いたらこんな感じになったんだけど、コンパイルして実行してみるといまいち思い通りの結果にならない…。
どなたか修正点をしてきしていただけるとありがたいです。
ちなみに>>186です。
0245デフォルトの名無しさん2013/06/17(月) 21:03:50.43
>>244
b の領域が無い
0246デフォルトの名無しさん2013/06/17(月) 21:07:56.11
>>245
ありがとうございます。領域確保はどのようにすればいいのでしょうか…?
0247デフォルトの名無しさん2013/06/17(月) 21:16:15.41
>>241
toro.2ch.net/test/read.cgi/tech/1352812333/876
はQzじゃない。>>223-224がそのチンカス
そのスレはまだ続きがあるんだ。末尾再帰を知らずに恥を晒し続けるチンカス(884,889) WWWW
これに懲りたか、具体的な煽りは避けるようにしたらしい。WWWW
0248デフォルトの名無しさん2013/06/17(月) 21:29:56.84
この性犯罪者、まだ言ってるのか
どんだけ根に持ってるんだよwww
0249デフォルトの名無しさん2013/06/17(月) 21:32:01.45
>>236
http://toro.2ch.net/test/read.cgi/tech/1359585842/55
バージョンは知らん。

>>239
「コンパイラがそれ検知して最適化しない限り」意味が無い。
コンパイラ+最適化オプションに依存してクラッシュするコードとかどうすんだよ。
0250デフォルトの名無しさん2013/06/17(月) 21:50:20.72
>>212
なにやら偉そうなことを言ってるけどお前も間違ってるじゃないか
0251デフォルトの名無しさん2013/06/17(月) 22:01:42.13
>>249
pastebin.com/hdLkPJ0G gcc-4.2.1/x86
pastebin.com/qdBuvre7 gcc-4.2.1/x64
pastebin.com/pbQWWVL5 vc++2010/x86
pastebin.com/Mgd4Bpgm vc++2010/x64
問題のfree_lは最適化できてるけど WWWW
アセンブリ読めない? WWWW
0252デフォルトの名無しさん2013/06/17(月) 22:04:16.24
>>250
前回以上の爆笑レスを期待してるぞ。 チンカス WWWW
■ このスレッドは過去ログ倉庫に格納されています