[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 09:30 / Filesize : 328 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 92代目
pc11.2ch.net/test/read.cgi/tech/1183511364/

513 名前:デフォルトの名無しさん [2007/07/20(金) 23:52:35 ]
>>506
そのフィボナッチ数列あってる?
初項と第2項は共に1じゃなかったっけ?

514 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:55:37 ]
>>513
fib(1)とfib(2)を1にしたいんじゃないかな
そうすっと、fib(0)を0にしてfib(1)を1にするとちょうどよくなる

515 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:03:37 ]
>>512
括弧は使っても使わなくても大丈夫です。
とにかく、問題文の内容を使い動けばいいみたいです

516 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:04:58 ]
>>506

#include <stdio.h>
int fib1(int n) { //再帰
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib1(n-1) + fib1(n-2);
}
int fib2(int n) { //非再帰
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}
int main(void) {
int n[] = {10, 20, 30, 40, 45};
int i;
for (i=0;i<5;i++) printf("%d ", fib1(n[i]));
putchar('\n');
for (i=0;i<5;i++) printf("%d ", fib2(n[i]));
putchar('\n');
return 0;
}

517 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:20:07 ]
>>515
>以下のプログラムのmainとnumber大域変数
mainとnumberは大域変数なのか?

>とにかく、問題文の内容を使い動けばいいみたいです
前スレで回答があったんだがな。気がつかなかった?


518 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:51:20 ]
>>511 >>516
ありがとうございました
参考にさせてもらいます

519 名前:デフォルトの名無しさん [2007/07/21(土) 02:36:41 ]

3目並べのプログラムです。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4692.c

何度も対戦できるようにするために列の判定の配列を初期化するようにしたらコンパイルエラーが出るようになってしまいました。
頭の中がぐちゃぐちゃになってきたので、アドバイス等いただければと思います。

正常にプログラムを実行したとき、先攻or後攻を決めることになりますが
また実装はしていませんのでお飾り状態です。

520 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:39:33 ]
>>517
以下のプログラムのmainとnumber大域変数は変更しないで、
1つのスタックは数値ともう1つには演算子を表す数を大域変数にすればいいと
思います



521 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:50:35 ]
>>520
mainは大域変数なのか?



522 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:58:09 ]
>>519
酔っぱらっているので、ロジックはチェックできないがw

まず、変数と関数に同じcheckを割り当てることを止めろ。
配列={0}とできるのは、配列変数の宣言をする時。
それ以外の箇所で初期化したいなら、
ループで各要素に0を代入するか、
>memset(area,sizeof(area),0);
とかするといいぞ。

523 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:18:49 ]
>>520
宿題の回答を依頼したいなら、
使う用語は理解してからにしてくれ。

大域をpublicと言う意味で使うにしても、
mainやnumberは変数ではないよ。
スタックと言う言葉の意味は分かっているのか?
依頼したい内容が、そもそも通じてないから、
回答が無いのじゃないかな?

524 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:27:57 ]
>>521>>523
あやふやな言い方ですいません。mainとnumber大域変数は変更しないで、
intのスタックを2つ作りたいです。
1つのスタックは数値をいれる。
もう1つには演算子を表す数をいれる。です。

よろしくお願いします

525 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:36:44 ]
>>519
battle→put→battleって流れがあるからずっと対戦続けてるとばぐるよ。
int check[8]がグローバルである必要が無い。check関数内のみでOK。
もちろん名前は>522の言うように別でw

あと、do-whileですっきりしそうなところがいっぱいある。
別に直さなくても動くから無視してくれていいけど。

526 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:36:51 ]
だから、そもそもmainは変数じゃないって。
変数じゃない物を、変更できる訳はないよ。
あなたが言う「スタック」とは何なのか
説明してくれないと、意味が分からない。

527 名前:526 mailto:sage [2007/07/21(土) 03:39:36 ]
振り先は>>524です。orz

528 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:41:46 ]
>>524
あやふやな言い方を直したつもりなのか同じことを繰り返しているぞw
元のプログラムに「number大域変数」というものが存在しない。
よって変更するしないとかいう意味がわからない。
提示したプログラムだが途中までしかコピペしていないんじゃないか?
break;なんかで終わってるしterm関数が見当たらない。

529 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:44:40 ]
>>526
スタックはおそらくそのままスタックでいいかと。
2つってのが引っかかるが演算子と数値で2つ作るんだろう。
「1+2-3」って入力ならスタックA「1 2 3」スタックB「+ -」になって
popA popB popAの演算をスタックがなくなるまで行う。
って感じでエスパーしてみた。

乗除に対応しようとした時点で破綻する設計だなw

530 名前:526 mailto:sage [2007/07/21(土) 03:54:08 ]
この問題、奇特な人が回答しているんだが。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4615.c
依頼者はこれが気に入らないのかな。
もちろん、この時の依頼者は別人かも試練。
だが、「スタックで実装しろ」の言う意味は
理解してからにして欲しい。


531 名前:519 [2007/07/21(土) 03:55:30 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4693.c

checkをローカルに戻してareaの再初期化をforに変更しました。
プログラムを実行すると、途中でうまく配置できていない感じになってしまいます。

先攻後攻は先ほどと同じく未実装です。



532 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:57:18 ]
すいませんでした。
プログラムが途中でした。
}
return(ans);
}
int number(void){ //数値データ
int i=0;
while (isdigit(*p)){
i = i*10+(*p++)-48;
}
return(i);
}

533 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:58:33 ]
とりあいずmainとnumberは変更しないで、
intのスタックを2つ作る。
1つのスタックは数値をいれる。
もう1つには演算子を表す数をいれる。です。

534 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:00:58 ]
>>530さん
書き込みが食い違いになってしまいすいません。

535 名前:526 mailto:sage [2007/07/21(土) 04:02:18 ]
だから、スタックって何?

536 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:05:17 ]
whileをintだけで書けってことをいいたいのか?

537 名前:526 mailto:sage [2007/07/21(土) 04:07:07 ]
>>533
「演算子を表す数」を定義してくれ

538 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:07:33 ]
あれか?それともint使ってとにかく数値をいれるのと
演算子を表す数のを作ればいいのか?

539 名前:526 mailto:sage [2007/07/21(土) 04:13:19 ]
要件定義ができないなら、それでも良いが、
どういう物を作って欲しいのか、理解可能な表現にして下さい。
少なくとも宿題をそのまんま書いてくれないと、espの領域になる。

540 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:17:12 ]
演算子を表す数ですか?
一応黒板に書いてあったのを書き込みました

541 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:19:48 ]
確か+が一番弱く/が一番強くなるように作ると言っていました



542 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:20:14 ]
>>531
print関数がおかしい。
ループ部分を以下みたいにしてみ。
for(i=0;i<9;i++){
if(area[i] == 0)
printf(" ");
else if(area[i] == 1)
printf("○");
else if(area[i] == 4)
printf("×");
else
printf("as");
printf("|");
if ( i % 3 == 2 )
printf("\n");
}
とりあえずは動くよ。

543 名前:526 mailto:sage [2007/07/21(土) 04:21:36 ]
>>531で示した回答にどういう不満があるのか、
せめてそれだけども答えてくれ。

>演算子を表す数ですか?
>一応黒板に書いてあったのを書き込みました
見落としたかも知れないから、
演算子と定数の対応表を再掲してくれ。


544 名前:526 mailto:sage [2007/07/21(土) 04:23:51 ]
スタックの定義も提示してくれ。

545 名前:519 [2007/07/21(土) 04:31:10 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4694.c

>>542
挙動は正常になったようなのですが
2度目以降の対戦がうまく動作しません・・・(´・ω・`)
area[]の初期化は出来ていると思うのですが・・・


>>543
レスアン間違ってないですか?

546 名前:519 [2007/07/21(土) 04:33:00 ]
初期化できてなかったですね・・・^^;
すいません、みすってました

547 名前:526 mailto:sage [2007/07/21(土) 04:35:27 ]
>>541
宿題の意味が分からないなら、>>531で宿題の回答にしたらいい。
この回答に不満があるなら、
この回答のどこが設問と違うか、提示すればいいだけだと思うが。

548 名前:519 [2007/07/21(土) 04:41:21 ]
526さんは何を言ってるんでしょうか?

私ともう一人質問をされてる方がいるんだとおもんですが・・・?

私は3目並べの話をしてるんですが?

549 名前:526 mailto:sage [2007/07/21(土) 04:46:50 ]
>>548 気にしないで下さい。あなたの推察通りです。

済まん、酔っぱらいだ
>>547で書いた>>541>>540の間違いだ。訂正する。

550 名前:519 [2007/07/21(土) 05:08:59 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4695.c

先攻or後攻も考慮してみました。

課題の指示としては
1,二人対戦・com対戦可能
2,毎回com/man対戦・終了を選ぶ

というものです。

このプログラムでみたせてるでしょうか?

私の中ではOKだとは思うのですが

できてねーぞごるぁ! とかあればおねがいします

551 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 05:14:31 ]
【即会い!!】

私自身が使用してみて、即出会えた出会い系サイトを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトのみを厳選して薦めております。
↓↓↓
【ブログ 〜即出会えるサイト】deaigets.blog97.fc2.com/



552 名前:519 [2007/07/21(土) 05:18:33 ]

もう一つ指示があったのを忘れていました。

・戦歴の表示

というのがあったので、追加しました
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4695.c

評価お願いします。

553 名前:519 [2007/07/21(土) 05:22:51 ]
何度もすみません、凡ミスがあったので修正しました。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4696.c

554 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 07:22:22 ]
とても丁寧な読みやすいコーディングだね。
ソース流し読みしただけだけど敢えて問題があるとするなら
ループでscanfを使ってるくらい?

555 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 09:35:31 ]
>>519
良くできてると思いますよ。

556 名前:519 [2007/07/21(土) 10:06:42 ]
ありがとうございました。

557 名前: ◆yb5ufjhaCo [2007/07/21(土) 11:21:02 ]
すいません、あんまりわからないので、教えてください。
ほんとに初歩の質問ですいません

1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
<次のプログラムの断片は誤りを含んでいるところがある。
その誤りの理由を述べ、正しい動作をするようにその箇所を修正した
プログラム断片全てを書け。ただし無関係のところまで変えないこと。

[3] 環境
 [3.1] OS: Linuxです
 [3.2] コンパイラ名とバージョン: gcc です
 [3.3] 言語: Cでお願いします。
[4] 期限: 25日いっぱいまでです。


558 名前: ◆yb5ufjhaCo [2007/07/21(土) 11:22:35 ]
すいません。問題忘れてました…
(1)
if(c = '\0')
n++;

(2)
while(c = getchar() !=EOF)
putchar(c);

(3)
for(i = 0; i < 10; j++){
total += i;
}

(4)
switch(c){
case 'y':
state = 1;
case 'n':
state = 0;
default:
state = -1;
}

お願いします…

559 名前: ◆yb5ufjhaCo [2007/07/21(土) 11:23:13 ]
(5)
if(k = 0)
1++;
else
1--;


(6)
for (i = 0; i < 8; j++){
b[i] -= a[i+j];
}

(7)
switch(c){
case 'y':
count--;
case 'n':
count++;
default:
break;
}


560 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 11:28:31 ]
1:=
2:(c=getchar())
3:無限るーっぷって怖くね?
4:break;
5:=, 1++, 1--
6:3に同じ
7:break;

違うかも

561 名前:519 [2007/07/21(土) 13:07:12 ]
comが1Pのリーチを阻止できるようにしたいのですが、
どういうコードを書けばいいでしょうか?



562 名前: ◆M2clACoxQA [2007/07/21(土) 13:28:04 ]
[1] 授業単元: プログラミング 基礎
[2] 問題文(含コード&リンク):
#include <stdio.h>

int main(void)
{
int i = 1;
int j = 0;

do{
j = j + i;
i += 2;
}while(i<=99);

printf("1から99までの奇数の総数は%dです。\n", j);

return 0;
}

以上の「奇数の総和」を求めるプログラムを関数化して作成しなさい。
開始値と終了値を引数として使用し、main関数で確認する。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: visual studio2005
 [3.3] 言語: C言語
[4] 期限: 2007年7月21日15:00まで
[5] その他の制限:
習ったのは、if-else文 do-while文 for文。
sum関数を使うと言っていました。
まだ習いたてなので、あまり難しいのはわかりません。
よろしくお願いします・・・

563 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 13:32:20 ]
>>562
お前さんのところで作ったsum関数とやらは知らんがそれ見ながらdo{}whileの処理を
sum関数の要領でmain文の外に追い出せばいいだけ。

564 名前: ◆M2clACoxQA mailto:sage [2007/07/21(土) 13:40:18 ]
>>563
なるほど・・・そういうことだったんですね。
変に難しいことを考えてしまいました^^;
親切に教えてくださり、ありがとう御座いました!!

565 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:13:55 ]
>>547
エラーで書けなくなった為遅くなりました。
checkはまだ習っていません。何通りかやり方があると
言っていたので他にも実行するプログラムはありますか?
何度もあやふやな言い方だと迷惑だと思うので、友達に確認してから
もう一度書き込みします。
よろしくお願いします


566 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:31:37 ]
習ってないも糞もおまいさんの作った関数だろうから習ってないとか意味不明。
授業中に提示された関数をただ使ってるだけだならちゃんと話聞いとけ馬鹿で終了だし。

他に実行できるプログラムはあると言えるけど、
>>519の要件満たせばいいだけならプログラマの数だけやり方はあると言えるから、
質問自体の意味がない。

何がしたいのかはっきりすればどうすればいいのか言えるけど、
何がしたいのかを言わないようじゃエスパーに頼るしかないし。

567 名前:519 [2007/07/21(土) 14:37:48 ]
>>566

私は565じゃないですよ!!!!!

568 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:42:14 ]
>>565
お前さんが>>494なら、>>547>>594にあるとおり、ただの勘違いのようだから
スルー汁
>>530のレスは読んだのか?

569 名前:568 mailto:sage [2007/07/21(土) 14:43:13 ]
×>>547>>594にあるとおり
>>547>>549にあるとおり

570 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:48:50 ]
なんかここんとこgdgd説教したりそんなんじゃ相手に伝わらないよ俺はわからんよって
だったらgdgdレスしてないで答えなきゃ良いじょのいこっ(えなり君風に)

571 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:04:37 ]
>>568
>>530は読みました。>>530自体が問題のプログラムで。

問題は、/*-+の順に計算できるようにする。そのためにint2つ作る。
1つは数字、1つは記号(/*-+)



572 名前:デフォルトの名無しさん [2007/07/21(土) 15:11:11 ]
>>420をお願いします

573 名前:519 [2007/07/21(土) 15:17:54 ]
私が質問している3目並べは
>>561をおねがいします!

574 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:48:08 ]
>>573
check関数内で、check変数の値が2になっているラインに置けばいい。
ってか、checkの名前がかぶってるのをやめたほうがいいって言われてなかった?

575 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:01:30 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
整数n、rを入力し全組み合わせを配列に配置するプログラムを作成しなさい。
例えばn=4,r=2の場合
{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}
となる。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7/25
[5] その他の制限: 特に無し

画面に出力するだけなら何とかなりそうなんですが配列に入れるとなると
もう何がなんだか…

576 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:06:56 ]
>>575
配列なんて出てくるか?
2重ループで一発だと思うんだが?違う?

577 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:08:30 ]
お前は何を言ってるんだ

578 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:16:34 ]
適当に大きめの2次配列に入れるなり、
動的確保するなりして入れればいいだけじゃないか。
表示できるなら配置もできるだろ。

579 名前:デフォルトの名無しさん [2007/07/21(土) 16:20:31 ]
【即会い!!】

私自身が使用してみて、即出会えた出会い系サイトを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトのみを厳選して薦めております。

フリメ登録OKなサイトを拡充しました!
↓↓↓
【ブログ 〜即出会えるサイト】deaigets.blog97.fc2.com/

580 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:34:05 ]
>>494
最小限の実装.変な式を入れたときにどうなるかは知らない.
<変更点>
・以下のグローバル変数を追加
int ops[100], vals[100], optop, valtop;

・term()は使わないので消していい

・expression() の内容を以下に変更
int expression() {
valtop = optop = -1;
vals[++valtop] = number();
while (1) {
int opcode;
if (*p == '+') opcode = 1;
else if (*p == '-') opcode = 2;
else if (*p == '*') opcode = 3;
else if (*p == '/') opcode = 4;
else opcode = 0;
while (optop >= 0 && ops[optop] >= opcode) {
if (ops[optop] == 1) vals[valtop-1] += vals[valtop];
if (ops[optop] == 2) vals[valtop-1] -= vals[valtop];
if (ops[optop] == 3) vals[valtop-1] *= vals[valtop];
if (ops[optop] == 4) vals[valtop-1] /= vals[valtop];
valtop--; optop--;}
if (opcode == 0) break;
ops[++optop] = opcode;
*p++;
vals[++valtop] = number();}
if (valtop != 0) printf("some error\n");
return vals[0];}

581 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:40:46 ]
>>578
なんで2次配列なのか小一時間問い詰めたい



582 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:44:54 ]
>>576
なんで2重ループなのか小一時間問い詰めたい

583 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:55:27 ]
>>578
表示できるといっても再帰で表示させてるんで
うまいこと添字があわなくて…
配列に配置させるのに利用できないんです

584 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:16:20 ]
>>453 俺もやってみた。クソースだがw
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4698.c

585 名前:519 [2007/07/21(土) 17:31:19 ]
>>574
名前が被ってるというと?

586 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:43:21 ]
>>575
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4699.txt
2次元配列ではなくポインタ配列だが。

587 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:44:29 ]
>>585
関数と変数が同じ名前ってこと。
問題ないけどソース読みづらい。

588 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:28:35 ]
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):
ゼータ関数は次式で定義される。

   ζ(s) = (1/n^s)

s=6のとき、π^6/945に収束する。これを確認するプログラムを作製せよ。
ただし、級数の和を無限個とるのではなく、有限の範囲内で(n=100)で計算せよ。

条件1:倍精度型で計算し、6パターン以上は比較できるようにすること。
条件2:二重ループを使うこと。そのため、外側ループでは初期値をmとして,
nまでm刻みで値を変更し、内側ループでは該当する値に応じたゼータ関数値を算定できるようにコーティングせよ。(例えば、n=1000と、m=100に設定した場合、nの値を10パターン変化させることができる。)

[3] 環境
 [3.1] OS:MAC OS X
 [3.2] コンパイラ名 gcc
 [3.3] 言語:C
[4] 期限:来週の月曜日まで
[5] その他の制限: とくに無し

条件が多いですが、よろしくお願いします。



589 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:43:31 ]
それ7/18までじゃなかったっけ?

590 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:03:58 ]
>>587
同じ名前で変数と関数があったら、
普通、再定義エラーにならないか?

591 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:14:43 ]
グローバルとローカルの違いってCの基礎じゃないの?



592 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:20:33 ]
グローバル変数と関数が同じ名前だったんだが。

593 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:22:03 ]
ローカルでも普通にエラーでるんじゃね?

594 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:23:01 ]
っていうか>>519の最新が553?

595 名前:593 mailto:sage [2007/07/21(土) 19:25:33 ]
さっき>>553で名前被りエラー出なかったからあのレス忘れてくれ。

596 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:29:31 ]
最新にしてはエラーや警告出まくるんだけどw
で、comに考える力を与えてみた。

int com_put(){

int input;

do{
input = rand()%9;
}while(area[input] != 0);

if (area[0] + area[1] + area[2] == 8) input = (area[0] == 0)*0 + (area[1] == 0)*1 + (area[2] == 0)*2;
else if(area[3] + area[4] + area[5] == 8) input = (area[3] == 0)*3 + (area[4] == 0)*4 + (area[5] == 0)*5;
else if(area[6] + area[7] + area[8] == 8) input = (area[6] == 0)*6 + (area[7] == 0)*7 + (area[8] == 0)*8;
else if(area[0] + area[3] + area[6] == 8) input = (area[0] == 0)*0 + (area[3] == 0)*3 + (area[6] == 0)*6;
else if(area[1] + area[4] + area[7] == 8) input = (area[1] == 0)*1 + (area[4] == 0)*4 + (area[7] == 0)*7;
else if(area[2] + area[5] + area[8] == 8) input = (area[2] == 0)*2 + (area[5] == 0)*5 + (area[8] == 0)*8;
else if(area[0] + area[4] + area[8] == 8) input = (area[0] == 0)*0 + (area[4] == 0)*4 + (area[8] == 0)*8;
else if(area[2] + area[4] + area[6] == 8) input = (area[2] == 0)*2 + (area[4] == 0)*4 + (area[6] == 0)*6;
else if(area[0] + area[1] + area[2] == 2) input = (area[0] == 0)*0 + (area[1] == 0)*1 + (area[2] == 0)*2;
else if(area[3] + area[4] + area[5] == 2) input = (area[3] == 0)*3 + (area[4] == 0)*4 + (area[5] == 0)*5;
else if(area[6] + area[7] + area[8] == 2) input = (area[6] == 0)*6 + (area[7] == 0)*7 + (area[8] == 0)*8;
else if(area[0] + area[3] + area[6] == 2) input = (area[0] == 0)*0 + (area[3] == 0)*3 + (area[6] == 0)*6;
else if(area[1] + area[4] + area[7] == 2) input = (area[1] == 0)*1 + (area[4] == 0)*4 + (area[7] == 0)*7;
else if(area[2] + area[5] + area[8] == 2) input = (area[2] == 0)*2 + (area[5] == 0)*5 + (area[8] == 0)*8;
else if(area[0] + area[4] + area[8] == 2) input = (area[0] == 0)*0 + (area[4] == 0)*4 + (area[8] == 0)*8;
else if(area[2] + area[4] + area[6] == 2) input = (area[2] == 0)*2 + (area[4] == 0)*4 + (area[6] == 0)*6;

area[input] = 4;

}

597 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:56:05 ]
>>586
どうもありがとうございます。
なんか今更情報科にきたことを後悔…
複雑になると頭がこんがらがる

598 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:32:47 ]
[1]単元:プログラミング
[2]問題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4700.txt
[3]環境
  OS:リナックス
  コンパイラ:gcc
言語:C
[4]7月23日
 よろしくお願いします。

599 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:41:33 ]
>>588 MinGWで。Macで動くか知りません
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int i, j, s = 6, n = 100, m = 10;
double d = 0;
for(i = m; i <= n; i += m) {
for(j = i-m+1; j < i; j++) d += 1/pow(j,s);
printf("n = %i\t:\t%.15f\n", i, d);
}
printf("π^6/945:\t%.15f\n", pow(M_PI,s)/945);
return 0;
}

600 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:55:00 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):以下のプログラムのmainとnumberは変更しないで、
intのスタックを2つ作る。1つは数値をいれる。もう1つには演算子を表す数をいれる
#include <stdio.h> #include <stdlib.h> #include <ctype.h>
char *p; char c[100]; int expression(void);int term(void);
int number(void);main(){ int ans;while(1){
printf("Enter expression : ");fgets(c,90,stdin);
p=c;if(*p == '\n') break;ans = expression();
printf("Answer:%d\n", ans);}}int expression(){
int ans;ans = term();while(1){if(*p == '+'){
p++;ans = ans + term();}else if(*p == '-'){
p++;ans = ans - term();}else break;}
return(ans);}int term(){int ans,x;ans = number();
while(1){if(*p == '*'){p++;ans = ans * number();}
else if(*p == '/'){p++;x = number();
if(x == 0){printf("Division by 0\n");
exit(1);}ans = ans / x;}
else break;}return(ans);}
int number(){int i=0;while (isdigit(*p)){i=i*10+(*p++)-48;}
return(i);}
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 年07月23日
[5] その他の制限: 特になし


601 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:04:37 ]
いい加減にしろよカス



602 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:09:04 ]
>>600
インクルードくらいは改行しなよ、ナス!

603 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:26:13 ]
>>602
600です。すいません。改行が多いと言われてしまったので。
確かに読みずらいですよね。でも、お願いします。

604 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:27:08 ]
>>603
上のほう見ろ、答えあるから

605 名前:デフォルトの名無しさん [2007/07/21(土) 23:33:42 ]
>>603
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm


606 名前:519 [2007/07/21(土) 23:34:53 ]
>>553で、私の環境では特にエラー出ませんでした^^;

>>596さんのやつはどういう挙動になるんですか?


607 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:38:59 ]
>>598
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4701.c

608 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:42:11 ]
>>606
エラーはカンマとピリオドを打ち間違ってるところ、
警告は戻り地が無い関数なのにintで宣言してるところ。

609 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:47:36 ]
>>604>>605
同じ書き込みがあったんですね。
ありがとうございます

610 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:54:29 ]
>>606
あれで動くってどんな環境だよwww

611 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:02:17 ]
>>607
助かりました☆



612 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:02:55 ]
>>607
ここ> animal=(animal+direction+road_size)%road_size;
と、ここ> fp=fileopen("data");
仕様と違うと思う

613 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:06:51 ]
>>598
道の右端と左端はつながってないの?

>>612
ファイル名の data1.txt data2.txt data3.txt ... になるんだけどどの辺が違う?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<328KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef