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/
467 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:55:12 ] これで電通かよ・・・ 大阪電気通信大学の間違いじゃないのか・・・
468 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:58:03 ] >>462 一緒に幸せになろう
469 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 19:59:05 ] いや、私は電気通信大学じゃないですよw 電気通信大学意以外でも電通って訳すところ、以外とたくさんあるようで。
470 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:03:29 ] [1] 授業単元: 情報演習基礎 [2] 問題文(含コード&リンク): ・ 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う。 ・適用する式は,シンプソンの公式f ( x)=1/(1+x2)とする。 ・a=0, b=100, e=0.0000001の場合の積分値とnの値を表示する ・各変数(nを除く)の型はdoubleとする [3] 環境 [3.1] OS: WinXP [3.2] コンパイラ名とバージョン: visualstudio2005 [3.3] 言語:C++ [4] 期限: 2007 7/22 [5] その他の制限:標準ライブラリは禁止 よろしくおねがいします。
471 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:05:12 ] >>470 printfも使っちゃだめなのか?w
472 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 20:08:25 ] #include <stdio.h> int add(int a,int b) { int c=a+b; a=100;b=200; return c; } int main(void) { int a,b,c; a=1;b=2;c=add(a,b); printf("%d+%d=%d\n",a,b,c); return 1; } これの実行結果が1+2=3になるんですけど、最初の方の100も200も消えちゃってるってことですか?
473 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:12:04 ] >>472 関数の中で宣言した変数は関数を抜けると消えてなくなるよ?
474 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:17:42 ] ここは宿題スレであって質問スレではないから 質問をしたいなら質問スレに行け。
475 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 20:23:41 ] おっと、すみません。 初心者歓迎スレに移行しまする。
476 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:23:42 ] >>453 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4690.txt
477 名前: ◆UoNQqijD4I [2007/07/20(金) 20:27:13 ] >>457 さん、fgetsに変えたのにまだエラーがでます泣
478 名前: ◆UoNQqijD4I [2007/07/20(金) 20:30:25 ] >477ですが、ちなみに今度はこんなエラーです tin.c: 関数 `main' 内: tin.c:12: error: too few arguments to function `fgets' tin.c:14: error: too few arguments to function `fgets' tin.c:16: error: `gcc' undeclared (first use in this function) tin.c:16: error: (Each undeclared identifier is reported only once tin.c:16: error: for each function it appears in.) tin.c:16: error: 文法エラー before "for" tin.c:16: error: 文法エラー before ')' token tin.c: トップレベル: tin.c:20: error: 文法エラー before string constant tin.c:20: 警告: conflicting types for built-in function `printf' tin.c:20: 警告: data definition has no type or storage class
479 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:33:22 ] >>471 ttp://www.geocities.jp/ky_webid/cpp/library/000.html こういうやつのつもりで言ったんですが、違うんですか? 課題が出るときに標準ライブラリ禁止といわれただけなので、よくわからないです
480 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:35:13 ] >>478 いやゴメン、使い方はオンラインマニュアルなりで確認しようね とりあえず fgets(buf, sizeof(buf), stdin); にすればおk あと>>458
481 名前:480 mailto:sage [2007/07/20(金) 20:35:50 ] bufじゃなかった、strだった
482 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:49:02 ] finを思い出した。
483 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 20:57:35 ] スイマセンこれは宿題なんでこっちで教えてください。 1+2+3+…+nをつくるんですが、 #include <stdio.h> int sum(int n) { int ans,i; ans=i; for(i=0;i<=n;i++) ans+=i; return ans; } int main(void) { int n,s; printf("n="); scanf("%d",&n); s=sum(n); printf("1から%dまでの和は%dです。\n",n,s); return 1; } こうしたら実行結果が n=5 1から5までの和は16です。 となってしまったんですが、どこで1増えてしまってるんでしょうか?
484 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:16 ] >>483 よく見てないけど、sum()の中の ans=i;
485 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:42 ] ans=i;をans=0;に変えると幸せになれる
486 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:44 ] >>483 >ans=i; 何を代入してるんだ。
487 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 21:00:39 ] ああ! ans=0; ですね!ありがとうございました!
488 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:11:04 ] 上に書いてあったのに読んでないんだな
489 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:19:48 ] 宿題を人に投げる人間なんてそんなもん。
490 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:20:35 ] ans=iはans=1の写し間違いだとesp
491 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 21:38:53 ] おお、なるほど。
492 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:44:31 ] コピペに移し間違いなんt
493 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:48:16 ] >>479 C言語にprintf関数やputs関数など、多数の関数群(標準ライブラリ関数)があるように よく読んだか?
494 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:49:58 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 次のようにプログラムを作成せよ。以下のプログラムのmainとnumber大域変数は変更しないで、 intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる #include<stdio.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); } }
495 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:50:48 ] int expression(){ int ans; ans = term(); while(1){ if(*p == '+'){ *p++; ans = ans + term(); } else if(*p == '-'){ *p++; ans = ans - term(); } else break; [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2007年07月21日 [5] その他の制限:特になし
496 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:55:05 ] >>494 翻訳ソフトにかけた日本語みたいだな。さっぱりわからん。
497 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:56:27 ] >>494 こんな問題出す糞教官は死んだ方がいいな
498 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:58:10 ] >>493 読み飛ばして勘違いしていました すみません >>470 は標準ライブラリではなく C++標準ライブラリです
499 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:01:05 ] >>494 問題文は?
500 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:02:02 ] >>498 std::coutとかも標準ライブラリじゃねぇの?
501 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:23:13 ] 必要なものはアセンブラで組めと
502 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:24:09 ] >>494 です 書いたプログラムのmainとnumber大域変数は変更しないで、 intが2つのに変えます。1つにはスタックは数値をいれて、もう1つには演算子を表す数をいれます。 それで、+−*/を出来るようにします。 例えば +の時は0 -の時は1 *の時は2 /の時は3 を入れるそうです。
503 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:24:54 ] 日本語でおk
504 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:29:52 ] >>1 に [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) ってあるから標準ライブラリ使うなって言うトチ狂った事が多発するんじゃね? ここで [5] その他の制限: (どこまで習っているか、ある特定の標準ライブラリ関数は使ってはいけない等々) って書いとけばちょっとはマシになるのでは?
505 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:30:58 ] 別にどうでも良い。 スルーするなり、非標準の関数を用いるなり、好きにすれば良いじゃん。
506 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:31:08 ] [1] 授業単元: アルゴリズム [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4691.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 7/23 [5] その他の制限: 特になし よろしくお願いします
507 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:34:06 ] [5] その他の制限:(#include<stdio.h>は使ってはいけない等々) [6] どこまで習っているか (for文を習いました等々) もっと具体的に、そして分けたほうがいいんじゃないか?
508 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:39:25 ] >>494 括弧は使うの?
509 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:41:46 ] >>507 んなコマいこと言ってたらキリが無い
510 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:44:49 ] >>508 括弧はどこの括弧ですか?大域変数なら、その大域変数を用いて プログラムを作成するみたいです
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じゃないですよ!!!!!