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/
511 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:45:05 ] >>506 再帰 int fib(int n) { if (n == 0) return 0; else if (n == 1) return 1; else return fib(n-1) + fib(n-2); } 非再帰 int fib(int n) { int a = 0; int b = 1; while (n > 0) { int t = a+b; a = b; b = t; n = n-1; } return a; }
512 名前:508 mailto:sage [2007/07/20(金) 23:48:54 ] >>494 , 510 入力する式で括弧を使うかってこと
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 助かりました☆