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/
429 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:12:12 ] >>426 そろそろ自分でやったらどうだい?
430 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:13:10 ] if((a + b) % 2 == 0) printf("丁"); else printf("半");
431 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:15:04 ] あと、掛け金もおながいします その辺はきでんのセンスで
432 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:20:09 ] >>431 なんでいっぺにいわないんだい? 自分でやりなさい。
433 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:22:53 ] >>431 指定の口座に3本ほど振り込んでくれないか
434 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:23:55 ] お金はないので他のお礼で。。。
435 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:25:16 ] 釣りだろ
436 名前:デフォルトの名無しさん [2007/07/20(金) 14:25:25 ] 6カ月分のガス料金を求めましょう 使用料金=基本料金+(1㎥当たりの単価×使用量) 使用量 基本料金 1㎥当たりの単価 25㎥以下 690円 127円 25㎥から500㎥以下 1170円 108円 500㎥より多い 6980円 96円 月の使用量を順番にキーボードから入力する。 使用料金は基本料金+(1㎥当たりの単価×使用量)で計算する。 各月の使用料金を算出して以下のように表示させる。 例) 1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin Charge 12500 25600 35410 19860 13250 2980s0 1278540 21906
437 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:26:15 ] >>434 体?でどう?
438 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:27:04 ] ㎥が文字化けしているぞ?
439 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:31:26 ] int ryokin(int siyou) { int kihon, tanka; if(siyou <= 25) { kihon = 690; tanka = 127; } else if(siyou <= 500) { kihon = 1170; tanka = 108; } else { kihon = 6980; tanka = 96; } return kihon + siyou * tanka; }
440 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:36:55 ] >>438 してないお(^ω^)
441 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:38:41 ] >>437 女でよければ。。
442 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:39:41 ] int i, siyou[6], charge[6]; int gokei,heikin; gokei = 0; for(i = 0; i < 6; i++) { printf("%d月の使用量:", i); scanf("%d", &siyou[i]); charge[i] = ryokin(siyou[i]); gokei += charge[i]; } heikin = gokei / 6; printf("1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin \n"); printf("Charge"); for(i = 0; i < 6; i++) printf("%6d", charge[i]); printf("%6d", gokei); printf("%6d\n", heikin);
443 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:41:16 ] >>441 はやっぱなし!高校生だし
444 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:47:10 ] >>443 えええええええええええええええええええええええええええええええ ええええええええええええええええええええええええええええええ えええええええええええええええええええええええええええええ ええええええええええええええええええええええええええええ えええええええええええええええええええええええええええ ええええええええええええええええええええええええええ えええええええええええええええええええええええええ ええええええええええええええええええええええええ えええええええええええええええええええええええ ええええええええええええええええええええええ えええええええええええええええええええええ ええええええええええええええええええええ えええええええええええええええええええ ええええええええええええええええええ えええええええええええええええええ ええええええええええええええええ えええええええええええええええ ええええええええええええええ えええええええええええええ ええええええええええええ えええええええええええ ええええええええええ えええええええええ ええええええええ えええええええ ええええええ えええええ ええええ えええ ええ え
445 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:50:05 ] >>444 for(int i = 0; i < 31; i++) { for(int j = 0; j < 31 - i; j++) printf("え"); puts(""); }
446 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:50:29 ] >>445 実はもう書いてあったw
447 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:57:14 ] なにこの流れ
448 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:13:49 ] あと、>>418 も私です お礼はできませんが、ほんとお願いします
449 名前:デフォルトの名無しさん [2007/07/20(金) 15:16:18 ] 名前は指定なしで勝手にきめていいの?
450 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:16:57 ] 指定しないほうがありがたいです☆
451 名前: ◆DpMW3bRjps [2007/07/20(金) 15:26:22 ] [1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク):任意の文字列を入力し、その文字列の中に任意の文字が何個入っているかを出力する プログラムのソースコードを提出しなさい。 実行例) 文字列を入力してください yamamotoyama さがす文字を入力してください y 入力された文字列の中に指定された文字は2個あります [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2007年07月23日17時まで [5] その他の制限:今回初めて文字配列というものを習いました!春から初めた初心者です よろしくお願いします!!
452 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:41:33 ] >>451 #include <stdio.h> #define N 128 int main(void) { char target, str[N]; int i, count=0; printf("文字列を入力してください\n> "); gets(str); printf("さがす文字を入力してください\n> "); gets(&target); for(i=0 ; i<N ; i++){ if( str[i] == target ) count++; } printf("\n入力された文字列の中に指定された文字は%d個あります\n", count); return(0); }
453 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:02:07 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4686.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) 自宅はWindows、学内はLinux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) 自宅:Microsoft Framework SDK 学内:gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月21日まで(おそらく日付変わるまでなら大丈夫) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 基本的に情報系の高校生でも組めるようなプログラムにしていただけると助かります。 多少複雑になってもいいので、できるだけ基本的な命令(ifとかfor)でお願いします
454 名前: ◆DpMW3bRjps [2007/07/20(金) 16:25:21 ] >>451 さんへ ありがとうございます!!
455 名前: ◆UoNQqijD4I [2007/07/20(金) 17:08:04 ] >452ですが。今コンパイルしたら下のようにエラーがでました(><) /tmp/cc2eSWqP.o(.text+0x38): In function `main': : warning: the `gets' function is dangerous and should not be used.
456 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:13:46 ] 内容: [1] 授業単元:C++ [2] 問題文 文字列の長さを計算する関数を作成せよ [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C++ [4] 期限: (20日18:00まで] [5] その他の制限: 以下の内容に手を加えて欲しいのですが・・・ #include <stdio.h> #define MAX 100 string_length(char str[MAX]); int main(void){ int i,string_len; char string[MAX]; printf("入力:"); scanf("%s",string); printf("文字列の大きさは%dです。",string_length(string)); return(0); } int string_legth(char str[MAX]){ int i; int str_len; for(i=0;str[i]!='\0';i++);{ } str_len=i; return(str_len); } Error: 外部シンボル '_string_length' が未解決 と、出て四苦八苦してるのでよろしくお願いします
457 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:15:06 ] >>455 ワーニングだ fgetsに帰ればおk
458 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:16:07 ] > char target, str[N]; > gets(&target); コレは幾らなんでもマズい
459 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:19:11 ] >>456 - string_length(char str[MAX]); + int string_length(char str[MAX]); - int string_legth(char str[MAX]){ + int string_length(char str[MAX]){
460 名前:456 mailto:sage [2007/07/20(金) 17:22:01 ] >>459 さん ありがとうございます。俺が間抜けでした!! レポート出してきます!!
461 名前:デフォルトの名無しさん [2007/07/20(金) 18:32:36 ] >>418 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4687.txt チェックは甘いが。
462 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 19:41:06 ] 試験勉強中です…付き合ってくださる師匠様募集中… [1] 授業単元:関数を自作する [2] 問題文:n!を計算するプログラムを作る [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:??? [3.3] 言語:C++ …なんですけど、先生はいつもC言語と混ざっている気がする。 #include <stdio.h> int kaijo(int n) { int ans,i; ans=i; for(i=1;i<=n;i++) ans*=i; return ans; } int main(void) { int n,k; printf("n="); scanf("&d",&n); k=kaijo(n); printf("%d!=%d\n",n,k); return 1; } とやってみたら、 n=5 10494432!=0 となってしまって…。
463 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:44:44 ] scanf("&d",&n);をscanf("%d",&n);に変えると幸せになれる
464 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:47:59 ] kaijo()もおかしいから、それだけじゃ幸せにはなれない
465 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:52:57 ] 順を追って考えろ int ans, i; このときのansの値とiの値は特に決められていない だからans = i; としたところで何も意味がない ans = 定数にしてやれ
466 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 19:53:09 ] >>463 それだけで幸せになれました。ありがとうございます。 またわからないとこが出てきたら来ます。
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じゃないですよ!!!!!
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 ... になるんだけどどの辺が違う?
614 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:19:46 ] >>612 プログラムの冒頭に「系列ファイル文字列」をキーボードから入力するってあるので 同じだけど一応オレも。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4702.c
615 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:28:05 ] >>614 thx 見落としてた >>598 >>607 はキーボードからの入力になってないので >>614 をどうぞ
616 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:33:28 ] >>607 は他にも間違いがある…orz 関数 fileopen 中の fclose(fp); ↓ else fclose(fp);
617 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:49:50 ] UPする前に質問します C言語の筆記問題はスレ違いになるのでしょうか?
618 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:50:34 ] スレ違いではないとおもうけど、食指が動かない
619 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:51:12 ] 別にいいんでね?質問する前にUPして欲しい。 すれ違いなら優しいおじさんが誘導してくれるかもしれない。
620 名前:617 mailto:sage [2007/07/22(日) 00:58:38 ] レスありがとうございます 食指は動かないかもしれませんが、後でUPしてみます
621 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:10:02 ] 後でって、さっさとうpしろよw みんな寝ちゃうぞ
622 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:23:50 ] 2 4 6 30 32 34 36 40 42 44 46 50 52 54 56 60 62 64 66 この数列の、20項以降を表示させる関数を作れといわれたのですが 分かりませんでした
623 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:28:07 ] >>622 0は入らないのか?10台、20台は入らないのか? 数列の並びがよくわからん。
624 名前:617 mailto:sage [2007/07/22(日) 01:30:15 ] 筆記問題なので、注意してくださいませ [1] 授業単元: C言語 基礎&応用 [2] 問題文(含コード&リンク): www-2ch.net:8080/up/download/1185034647068718.NcCDgq ※jpegファイルが6つ入ってます(No1〜No6) No3〜No6までが、今回やってもらいたいファイルです No1とNo2は自分でも問題無かったので入れる必要は無かったのですが テスト形式なので(100点満点)、中途半端に抜かすのもどうかと思い入れました [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:Visual studio.2005 [3.3] 言語:C言語 [4] 期限:23日のAM1時くらいまでが好ましいですが、25日くらいまで大丈夫です [5] その他の制限:
625 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:56:58 ] >>622 それ英語のなぞなぞ (答えTwo thousands)
626 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:06:35 ] 1時なんかもう過ぎてるだろボケ ・・・ボケは私です。 4-1 for(i=0;i<N;i++)b[i]=a[i]; 4-2 1 5-1 t1.a+t1.b; 5-2 5 6-1 4 6-2 7 7-1 return y; 7-2 (a)5 (b)20 8-1 (a) i=0; (b) (i<10) (c) += 8-2 84 8-3 6.800000 + 11.200000 i 8-4 (a) NULL (b)cellp->next 8-5 (a) b==0 (b) gcd( b, a%b ) 9-1 変数 9-2 型 9-3 typedef 9-4 定義 9-5 桁オチ 9-6 情報欠落 かなりテキトー。特に用語のあたりとか。
627 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:10:56 ] >>622 答えは >>625 の言葉でググったら出てきたけど プログラムで書こうとすると難しいよ
628 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:16:26 ] >>624 No.3 [4] (1) : (a) 0 (b) N (c) b[i] = a[i] (2) : (a) 1 [5] (a) t1.a + t1.b (b) 5 [6] (a) 4 (b) 7 [7] ・・・・・・・もうめんどくせ
629 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 03:17:14 ] >>622 #include <stdio.h> int main(){int *a,*b,*c,*d,i=0,val; int n[]={0,2,4,6,-1};int m[]={0,3,4,5,6,-1}; for(a=m;*a>=0;a++)for(b=n;*b>=0;b++) for(c=m;*c>=0;c++)for(d=n;*d>=0;d++){ val=((*a*10+*b)*100+*c)*10+*d;i++; if((i>20)&&(i<=320)) printf("%d\n", val);}return 0;}
630 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 04:37:34 ] 設問者がなぞなぞ好きならそれはそれで良いのかもしれないが。 それで単位を取れるかどうかとなると、学生がちょと河合祖。
631 名前:519 [2007/07/22(日) 11:12:25 ] 戻り値が無い関数はvoidがいいんですか?
632 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:16:21 ] そうだよ☆ でもmainだけは戻り値がいらなくてもintにするのが習慣みたいね
633 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:19:41 ] >なぞなぞ また1つ賢くなった、ありがとう
634 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:23:57 ] >>632 お前は要らないかもしれないけど、システムにとって必要だよ。
635 名前:519 [2007/07/22(日) 11:35:30 ] あと . と , は直してアップしたつもりでした
636 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:37:10 ] >>622 #include <stdio.h> int main(void) { int i; for(i = 1; i < 100; i++) printf("%ld\t", i%4*2 + i/4*10 + (i < 4 ? 0 : 20)); return 0; } 英語のなぞなぞって何?
637 名前:617 mailto:sage [2007/07/22(日) 13:34:20 ] 解答ありがとうございました 参考にさせていただきます!
638 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:14:48 ] >>632 習慣じゃなく規格で決まっている。
639 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:50:54 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 行列のサイズ n, m, l と,それに応じた n×m, m×l の行列が記録されたファイルを食べて,結果を別のファイルに書き出そう. %cat testfile 3 2 3 3.2 4.8 8.2 6.5 4.3 -2.2 -5.0 6.2 8.9 3.5 -0.2 -5.8 であるとする.3×2, 2×3の行列の積をとり,3×3の行列を得る事になる.そこでプログラムを開発して、 % ./prog0 testfile ANSWER とすれば,積が ANSWER というファイルに書き込まれるようにせよ.argv[], argc, fscanf(), fprintf() を総動員する. [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/25まで よろしくおねがいしますm(_ _)m
640 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:51:45 ] argv[], argc, fscanf(), fprintf() を総動員する. ワロタ
641 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:07:42 ] >>639 もうマジで日本語でおk
642 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:11:50 ] 入力テキストは n m l 行列1 行列2 って形式なんだろう
643 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:31:25 ] >結果を別のファイルに書き出そう. >そこでプログラムを開発して、 出題者はどういうノリなんだ。
644 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:35:10 ] >>639 #include <stdio.h> #define N 128 int main(int argc, char *argv[]) { FILE *fpin, *fpout; int n, m, l, i, j, k; double mat1[N][N], mat2[N][N], mat3[N][N]; if(argc < 3 || (fpin = fopen(argv[1], "r")) == NULL || (fpout = fopen(argv[2], "w")) == NULL) return 1; fscanf(fpin, "%d%d%d", &n, &m, &l); for(i = 0; i < n; i++) for(j = 0; j < m; j++) fscanf(fpin, "%lf", &mat1[i][j]); for(i = 0; i < m; i++) for(j = 0; j < l; j++) fscanf(fpin, "%lf", &mat2[i][j]); for(i = 0; i < n; i++){ for(j = 0; j < l; j++){ mat3[i][j] = 0; for(k = 0, mat3[i][j] = 0; k < m; k++) mat3[i][j] += mat1[i][k]*mat2[k][j]; fprintf(fpout, "%f ", mat3[i][j]); } fprintf(fpout, "\n"); } fclose(fpin), fclose(fpout); return 0; }
645 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:36:27 ] 学校行けよ
646 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:45:22 ] 今時期は夏休み返上で赤点補習かな
647 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:53:38 ] >>644 出来ました。ありがとうございますm(_ _)m
648 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 17:39:10 ] はしかのせいで補習のやつが多そうだな
649 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 17:46:05 ] なるほど、失速しないのはその影響か。
650 名前:デフォルトの名無しさん [2007/07/22(日) 18:52:14 ] 行列matの転置行列を求めて次のように出力するプログラムを完成させよ。 | 1 6 11 16 21 | | 2 7 12 17 22 | | 3 8 13 18 23 | | 4 9 14 19 24 | | 5 10 15 20 25 |
651 名前:デフォルトの名無しさん [2007/07/22(日) 18:52:45 ] #include <stdio.h> #define MSIZE 5 void swap(int *a, int *b) { int c; (a) = *a; *a = *b; *b = (a) ; } void main(void) { int i, j, mat[MSIZE][MSIZE] = { { 1, 2, 3, 4, 5}, { 6, 7, 8, 9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25} }; for(i = 0; i < MSIZE - 1; i++) { for(j = (b) ; j < (c) ; j ++) { swap( (d) , (e) ); } } for(i = 0; i < MSIZE; i ++) { printf("|");/25小計 for(j = 0; j < MSIZE; j ++) { printf("%3d ", mat[i][j]); } printf(" |\n"); } } さっぱりわかりません よろしくお願いします
652 名前:デフォルトの名無しさん [2007/07/22(日) 18:53:43 ] あるカップラーメンの値段を店ごとに調べた.それを配列に 入れて,下の出力のように10円刻みに分布をとることを考える. そのためのプログラムを下に示す.空白を補え. 80- 89円: 2 90- 99円: 2 100-109円: 1 110-119円: 2 120-129円: 1 130-139円: 2
653 名前:デフォルトの名無しさん [2007/07/22(日) 18:55:33 ] #include <stdio.h> #define C_NUM 6 void makedist(int a[10], int b[C_NUM]) { int i; for(i = 0; i < 10; i ++) { b[ (a) ] += 1; } } void main(void) { int price[10] = {80, 120, 111, 130, 139, 95, 98, 89, 105, 119}; int dist[C_NUM], i; for(i = 0; i < C_NUM; i++) { dist[i] = (b) ; } makedist( (c) , dist); for(i = 0; i < C_NUM; i++) { printf("%3d-%3d円: %3d\n", (d) , (e) , dist[i]); } } これもさっぱりです・・・ 教えてください
654 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 18:58:12 ] >653 (a)a[i]/10-8 (b)0 (c)price (d)80 + i * 10 (e)89 + i * 10
655 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 19:08:49 ] >>650-651 a:c b:0 c:i d:mat[i][j] e:mat[j][i]
656 名前:655 mailto:sage [2007/07/22(日) 19:10:03 ] 訂正 d:mat[i][j]→&mat[i][j] e:mat[j][i]→&mat[j][i]
657 名前:655 mailto:sage [2007/07/22(日) 19:20:36 ] 何度も済まん… >>650-651 a:c b:0 c:i+1 d:&mat[i+1][j] d:&mat[j][i+1]
658 名前:デフォルトの名無しさん [2007/07/22(日) 19:23:54 ] ありがとうございます!!
659 名前:デフォルトの名無しさん [2007/07/22(日) 19:29:39 ] 与えられた正数aの逆数1/aを,除算を用いずに求めるアルゴリズムを ニュートン法によって作りたい. ただし,初期値x0は十分に解に近いところから出発するものとする. 次の[1]から[4]の空欄(a)から(f)を埋めよ. [1] ニュートン法でaの逆数1/aを求めるためには f(x)=(a)のゼロ点を求めればよい. [2] [1]の式に対して,ニュートン法による第n+1回目の反復による値Xn+1は, 第n回目の反復による値Xnを用いて Xn+1=(b)と表される.
660 名前:デフォルトの名無しさん [2007/07/22(日) 19:30:11 ] [3] [2]で示した反復によるアルゴリズムを実現すると次のようになる. #include <stdio.h> void main(void) { double u, v; int i; printf("正数を入力して下さい.\n"); scanf( (c) ); printf("逆数に十分近い初期値を入力して下さい.\n"); scanf( (d) ); for(i = 0; i < 3; i ++) { u = (e) ; printf("%5.3f\n", u); } } [4] [3]で作ったプログラムを実行し,「3」,「0.5」の順に入力した際に for文の中のprintf関数による出力結果をすべて示すと次のようになる. (f)
661 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:37:35 ] >>659 (a) 1/x - a {x = 1/a → 0 = 1/x - a だから} (b) Xn*(2-a*Xn) {Xn-f(Xn)/f'(Xn) →Xn-(1/Xn-a)/(1/(-Xn*Xn))だから} (c) "%lf",&v (d) "%lf",&u (e) u*(2-v*u) (f) 0.5 0.250 0.332
662 名前:デフォルトの名無しさん [2007/07/22(日) 20:37:52 ] 関数myreplaceを使って実際に文字列を変換させるプログラムを作成したところ, 出力結果(1)は「tuat」となった. 空欄(a)〜(f)を埋めて次のプログラムを完成させ, 出力結果(2)を空欄(g)に記入せよ.
663 名前:デフォルトの名無しさん [2007/07/22(日) 20:39:44 ] #include <stdio.h> (a) ; void main(void) { char code[16] = "GHIGFACDFDBA"; char ret[16] = ""; myreplace(" (b) ", ret); printf("%s\n", ret); ・・・出力結果(1) myreplace(code, ret); printf("%s\n", &ret[5]); ・・・出力結果(2) } void myreplace(char org[ ], char ret[ ]) { char string1[16] = (c) ; char string2[16] = "v)(^e_tua"; int i, j; for(i = 0; org[i] != (d) ; i ++) { for(j = 0; string1[j] != (d) ; j ++) { if(org[i] == string1[j]) { (e) } } } (f) /* 終端記号 */ } 出力結果 (g)
664 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:42:23 ] >>659 訂正 (f) 0.250 0.313 0.332
665 名前:デフォルトの名無しさん [2007/07/22(日) 21:04:07 ] [1] 授業単元: [2] 問題文(含コード&リンク): 2 つのchar 型配列x[],y[] に格納された文字列を入れ替えるプログラムを作成せよ. ただし入替え処理には,関数swap array(char *,char *) を作成して用いること. % ./test 入替前のx: "abcdefgh" 入替前のy: "ABC" 関数swap_array() を呼び出しました 入替前のx: "ABC" 入替前のy: "abcdefgh" % [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (C) [4] 期限: (07月23日00:00まで) [5] その他の制限:ポインタまで習ってます よろしくおねがします
666 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:05:33 ] >>650 マルチ必死だな(´,_ゝ`)プッ
667 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:39:34 ] >>662 なんかヤな問題だな。回答は複数あるけどたぶん↓ (a) void myreplace(char org[], char ret[]); (b) GHIG (c) "ABCDEFGHI" (d) '\0' (e) ret[i] = string2[j]; (f) ret[i] = '\0'; (g) v(^_^)v
668 名前:デフォルトの名無しさん [2007/07/22(日) 22:05:25 ] [1] 授業単元: [2] 問題文(含コード&リンク): 1start で示されるアドレスからlength バイト分だけの領域に関して, 値val で埋める関数cmemset(char*start, int value, int length) を作成せよ. さらに,malloc() 関数を用いてchar 型配列のメモリ領域を確保し, cmemset() が正確に動作することを確認 (メモリ領域の内容を整数値として表示)するプログラムを作成せよ. %./kadai 4 -89 0 1 5 43 ... 112 ← cmemset 使用前 0 0 0 0 0 0... 0 ← 0 で埋めたとき 88 88 88 88 88 88 ... 88 ← 88 で埋めたとき % 2src で示されるアドレスからlength バイト分だけの領域を,dest で示される領域へコピーする関数 cmemmove(char *dest, char *src, size t length) を作れ.なお,送り元の領域と送り先の領 域がオーバーラップしていても,正しくコピーできる仕様にせよ.さらに,malloc() 関数を用いて char 型配列のメモリ領域を確保し,cmemmove() が正確に動作することを確認(メモリ領域の内容を 整数値として表示)するプログラムを作成せよ. % ./kadai 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 ← cmemmove 実行前 1 2 3 4 5 0 0 0 0 0 1 2 3 4 5 0 0 0 ← 0 番目から5 個を10 番目へ 1 2 3 1 2 3 4 5 0 0 1 2 3 4 5 0 0 0 ← 0 番目から5 個を3 番目へ % [3] 環境 [3.1] OS: (Linux3.2) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (C) [4] 期限: (07月23日まで) [5] その他の制限:おねがいします
669 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:24:59 ] char配列埋めるのにvalueはintかよ
670 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:27:26 ] 標準のmemset()もそうでしょ
671 名前:デフォルトの名無しさん [2007/07/22(日) 22:41:46 ] わかる方でいいのでおねがいします
672 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:43:25 ] 何を?
673 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:43:59 ] どれを?
674 名前:671 mailto:sage [2007/07/22(日) 22:45:03 ] すみません全部忘れてました 村上ファンド事件についてインサイダー取引という単語を用いて100字以内にまとめよ です
675 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:47:02 ] he is very very bad
676 名前:デフォルトの名無しさん [2007/07/22(日) 22:51:21 ] 665と668です
677 名前:671 [2007/07/22(日) 23:03:48 ] 本当に誰か答えてください><
678 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:11:30 ] >>665 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4711.c ココの人、みんな"わかる方"だからさ。そういう言い方なんか違うと思うよ。
679 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:16:22 ] Linux3.2 うひょ
680 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:31:17 ] char *cmemset(char *start, int value, int length) { const unsigned char ch = value; while(num--) *ptr++ = ch; return start; } char *cmemmove(char *dest, char *src, size t length) { while(length--) *(dest+length) = *src; return dest; }
681 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:34:45 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4712.zip [3] 環境 [3.1] OS: (Mac) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (C) [4] 期限: ([2007年7月23日9:00まで] ) [5] その他の制限:問題文、プログラム内で使うデータファイル、自分で作ったソースをzipにしました 何故動かないのかわからないのでご教授下さいませ
682 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:35:25 ] メモリコピーはアドレスの大小関係で 昇順、降順を切り替えないとおかしなことになるよ
683 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:45:59 ] >>681 その汚いソースをなんとか動くようにしてくださいっていうなら絶望的だな どっかしらでsegmentation faultが起きてるから頑張って探しな
684 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:52:08 ] >>679 大分未来からお越しのようですね
685 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:14:45 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):整数集合 { 1, 2, 3, 4, 5 } と { 2, 4, 6 } の 共通集合を求め、表示するプログラム 集合をリストを用いて実現し、emptySet, inSet, addElem, intersection, printSet, freeSet を リストを用いた集合操作に変更しなさい。 コード:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4713.c [3] 環境 [3.1] OS: Linux [3.2] gcc [3.3] 言語: C [4] 期限: 2007/7/25 15:00 プログラムのコード自体はやってる最中なのでめちゃくちゃですが気にしないでください。 コンパイルは特にエラーもなく通ります。 実行したあと %./a.out と出るだけでそこから何も起きません。 無限ループに陥ってる可能性を考えてmain関数内にprintfを設置しました。 コードを見てもらえばわかるのですが、main関数内の2行目に配置したprintfすら実行されません(1行目はint型の変数宣言)。 これはmain関数が実行されていないということでしょうか? 原因解明お願いします。
686 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:16:28 ] >>681 enter と enter2 で xtopx->child1 や xtopx->child2 が使われているけど xtopx 自体が初期化されていない気がする
687 名前:デフォルトの名無しさん [2007/07/23(月) 00:17:31 ] >>680 もう少しヒントをください
688 名前:685 mailto:sage [2007/07/23(月) 00:19:53 ] すいません。捕捉です。 このプログラムは、元は配列を用いて集合を実現してました。これをリスト構造に改編しろ。 という問題です。
689 名前:686 mailto:sage [2007/07/23(月) 00:27:52 ] >>681 あとグローバルでstruct member **result; が宣言されているのに search および search2 で ローカルで struct member **result; が宣言されている ローカル側のresult;に代入しているから result=(struct member **)malloc(sizeof(struct member *)*(MEMBER_MAX+1)); で確保した領域が保存されていない.returnで戻しているけどmain でその戻り値保存していないし というかこのresultのポインタリストはどこで使われているのだろうか?
690 名前:デフォルトの名無しさん [2007/07/23(月) 00:32:12 ] 最近のCって型定義に変数宣言しても通るの?
691 名前:デフォルトの名無しさん [2007/07/23(月) 00:34:02 ] 間違えた ×型定義に ○型定義前に 普通は構造体定義してから変数宣言だよね?
692 名前:686 mailto:sage [2007/07/23(月) 00:35:39 ] >>681 がすでにいない気もするけど >>681 Top1 と Top2 は 0 か NULL で初期化されていないので enter と enter2 の if(!Top1){ } が実行されずに top=Top1; while(top){ } で失敗する可能性がある (HDDから怪しい音が・・・こわい)
693 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:42:08 ] >>685 int inSet(ElementP s,int v){/*変更可*/ while(s->next!=NULL){ if(s->data==v){ return 1; } } return 0; } ここで無限ループしてる
694 名前:デフォルトの名無しさん [2007/07/23(月) 00:46:51 ] >>680 もう少し補足していただくと・・・
695 名前:685 mailto:sage [2007/07/23(月) 00:46:57 ] >693 指摘ありがとうございます。 しかし、修正してみたものの症状変わらず・・・。
696 名前:681 mailto:sage [2007/07/23(月) 00:47:46 ] >>692 すいません、プログラムと睨めっこしてました ちょっといじってみます、また何かあったらご教授いただけると幸いです
697 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:48:48 ] while(p->next!=NULL) { if(p->data < val->data) val=p; p=p->next; } ここでも無限ループしてる
698 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:04:24 ] >>685 流し読みだけど、ElementP emptySet(){ return NULL; }で。 やり方は他にもあるけど、少なくとも次がない=空じゃないです。そうすると mallocは、s==NULLのとき、addElemでして、return sってことになるかと。 void addElem(ElementP s,int v) → ElementP addElem(ElementP s,int v) ですね。あと、freeSetが最初しか開放してないから再帰でnextたどってく感じで。
699 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:17:33 ] >>680 int main()内が分かりません 助けてください><
700 名前:685 mailto:sage [2007/07/23(月) 01:31:09 ] >697 すいません、どこで無限ループなのかわからないです。 >698 その方法もやってみます。 freeSetの件も修正してみます。
701 名前:685 mailto:sage [2007/07/23(月) 02:00:10 ] どうやら環境の差のようです。Windowsで実行したところ正常に動きました。 いろいろとありがとうございました。
702 名前:681 mailto:sage [2007/07/23(月) 02:01:28 ] >>681 ですが、アドバイスをいただいて直してみましたがうまくいきません アップしたソースの不都合な所はばっさり変更しても良いので、 なんとか動くように訂正お願いします
703 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:04:14 ] 環境の差なわけねえwww
704 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:18:42 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): [プログラム説明] 2桁の16進数('41'〜'49'、 '50'〜'59')を入力すると対応する文字を表示する。 ただし、%xは使用しないこと。なお、入力に間違いはないものとする。(ヒン ト:入力は一つの数値か、二つの文字か?) 実行結果 2桁の16進数('41'〜'49'、 '50'〜'59')を入力してください:53 文字コード「53」文字は「S」です。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++ [4] 期限: ([明日の朝まで] または [無期限] のいずれか) [5] その他の制限: printf() scanf()を最近習いました
705 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:27:40 ] >>704 #include <stdio.h> int scan_ascii(){ int c1,c2; printf("2桁の16進数('41'〜'49'、 '50'〜'59')を入力してください:"); scanf("%c%c", &c1, &c2); return (c1<<4 + c2); } int print_ascii(int c){ printf("文字コード「%d」文字は「%c」です。\n", c, c); } int main(){ print_ascii(scan_ascii()); return 0; }
706 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:34:50 ] すいません、returnとasciiは習ってないです・・・ でもありがとうございます!1原型ができました
707 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:40:08 ] >>702 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4715.c
708 名前:707 mailto:sage [2007/07/23(月) 02:42:00 ] アンカー間違えた >>702 じゃなくて >>701 だった
709 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 03:09:46 ] >>420 まだ全然わからないんでお願いします
710 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 03:28:43 ] \n n番目に表れた\(...\)の中の文字列にマッチ (nは1から9の整数) が意味わからね 方針として入力文字列を"トークン"列に変換してから置換処理がクレバーじゃね? struct toknの設計がつぼおおおぉおおおおぉおぉおぉおおおおおおおおおおおあおあさだおssd
711 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 03:44:20 ] \nの前の正規表現を\( \)で囲っておくとあとで呼び出せるってやつです ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE \([asdf]\)\(fty\)\([frty]\)\(t\)\3 で aftytterをチェックした場合 \3はtと同じです system()からsed呼び出して同じ動作するものは作れたんですけど、それだと題意にあわないんで・・・
712 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 10:36:35 ] >>530 返事が遅くなってすいません。>>530 に書いてあるものを使ってpop,pushを使い たいです。+-*/は数字の大きさで表したいです
713 名前:デフォルトの名無しさん [2007/07/23(月) 11:05:05 ] [1]授業単元:プログラミング技術III [2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4718.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ: gcc [3.3] 言語: C [4] 期限:7/24まで [5]その他の制限:特になし よろしくお願いします
714 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:12:26 ] >>712 は、自分が書いた文を自分で理解できるのか?
715 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:51:28 ] \(\(c\)b\)d\) の場合"2"番目は何を意味する? \([ab]\)\1の場合 aa と bb にはマッチするが ab にはマッチしないと理解して良いのか? (否なら単に[ab][ab]と記述すればいいしなクソ) それとこれ本当に宿題か? \nさえなけりゃ理論的な意味の正規表現についての良問だと思うが \nの性で劇的に難しくなってね? お前何科の何年生? あるいは問題間違ってねえ?
716 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:02:40 ] [1] 授業単元:C++実習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4719.txt プログラム問題文に沿って作ったものと、それに2つの要素を追加修正した 2つのプログラムの作成をお願いします。 [3] 環境 [3.1] OS: windows XP [3.2] visual studio 2005 [3.3] 言語: C++ [4] 期限: 2007/07/26 13:00まで [5] その他の制限: 特に無し よろしくお願いします
717 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:18:51 ] \(\)って入れ子にはしないんじゃないか
718 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:25:06 ] [1] 授業単元:C [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4721.txt [3] 環境 [3.1] OS: windows XP [3.2] bcc32 [3.3] 言語: C [4] 期限: 2007/07/23 13:00まで [5] その他の制限: 特に無し
719 名前:デフォルトの名無しさん [2007/07/23(月) 13:06:20 ] >>715 問題文には正規表現の各表現の説明があった後に . * [abc…]、\が使えるようなプログラムを実装せよとかかれてました ちなみに2回のC初心者向けの演習です 期末レポートなんですが、人によって問題が違って明らかにはずれくじをひいたっぽいですorz
720 名前:デフォルトの名無しさん [2007/07/23(月) 13:08:52 ] あと、正規表現では括弧の入れ子は外から順に数えていくはずです
721 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:54:35 ] 二回で正規表現の実装かよ Perlとかでならまだしも・・・
722 名前:デフォルトの名無しさん [2007/07/23(月) 14:02:30 ] ほかの人の課題は1時間とかで終わるのもあるんで、\n入れると難易度極端に変わるなら、実はそれ無しかもしれないです
723 名前:デフォルトの名無しさん [2007/07/23(月) 14:06:51 ] 出題者は、正規表現の複雑な仕様を完全に実装しろと言っている訳ではないよね。 単純なパターンチェックと置換を実装すればいいんじゃないの?
724 名前:デフォルトの名無しさん [2007/07/23(月) 14:09:17 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): クラスcomplexのメンバ関数で、複素数の絶対値を与える関数を新たに作成せよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: CC [3.3] 言語: C++ [4] 期限: [無期限] [5] その他の制限: 特になし よろしくおねがいします。
725 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:15:43 ] >>716 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4722.cpp
726 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:16:34 ] (含コード&リンク): のくせになんにも貼られてないってどうよ
727 名前:デフォルトの名無しさん [2007/07/23(月) 14:26:47 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):正の整数を入力し1からその数までの間に素数がいくつあるのか数えるプログラムを作れ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++ [4] 期限:7月中 [5] その他の制限:特にないです。 よろしくお願いします。
728 名前:デフォルトの名無しさん [2007/07/23(月) 14:30:37 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): nを入力してs=1/1-1/3 + 1/5-1/7 + 1/9....+(-1)^n-1/(2n-1) の和を求めるプログラムを作れ。nが大きくなるにつれてs*4がどうなるか [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++ [4] 期限:7月中 [5] その他の制限:特にないです。 問題が難しくて困っています。 お願いいたします。
729 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:35:16 ] double s; int i,n,j; printf("n: "); scanf("%d", &n); j = 1; for(i = 0; i < n; i++) { s += j/(2n-1); j = -j; } printf("s = %lg\n", s);
730 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:57:03 ] これはひどい
731 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:58:48 ] #include<stdio.h> int main(){ double s=0; int i,n,j=1; printf("n: "); scanf("%d", &n); for(i = 1; i <= n; i++) { s += (double)j/(2*i-1); j = -j; } printf("s = %lg\n", s*4); return 0; }
732 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:33:33 ] 設問的にはcout/cinじゃまいか
733 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:41:51 ] >>727 おまいのレベルに合わせてコーディングした #include<stdio.h> int main(){ while(1){ int i,j,n,c=0; printf("正数 = "); scanf("%d",&n); for(i=2;i<=n;c++,i++) for(j=2;j<=i/2;j++) if(i%j==0){ c--; break; } printf("素数 = %d 個\n",c); } return 0; }
734 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:52:57 ] 正規表現のアルゴリズムとか考えたこともなかったな 一度単純な実装見てみたい
735 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:27:02 ] >>728 #include <iostream> #include <iomanip> #include <cmath> int main() { double s = 0; int i, n; std::cin >> n; for(i = 1; i <= n; i++){ s += pow(-1, i - 1)*1/(2*i - 1); std::cout << std::setw(10) << i << " : " << s*4 << std::endl; } return 0; }
736 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 17:23:18 ] >>714 出来ます。+-*/の順に1234とつけて行き大きい数字から(/から)優先 で計算するようにしたいんです。
737 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 17:53:38 ] >>736 スタックを2つ作り、数字と演算子を別々に積み上げておいて、演算子はどの数字を計算対象にしたら良いか、分かるのか?
738 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:05:53 ] >>736 もうちょいで自分でできるぞ なんかね、道間違えている気がする
739 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:22:04 ] >>734 ttp://www2.starcat.ne.jp/~fussy/algo/index.htm に単純な実装があるよ。
740 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:12:04 ] >>725 Test operator = (const Test& t) とかを Test& operator = (const Test& t) にしないと return *this が Test(const Test& t) を呼んじまうぜよ
741 名前:ゆみ [2007/07/23(月) 19:24:32 ] 超初心者です。制限時間45分で出題されましたが、解答できなかった為持ち帰りになりました(>_<) どうか御教授お願いします。 ・char 型の配列aに"HellowWorld"の文字列を格納すること。 ・配列aからchar 型の配列bにデータをコピーすること。 ※標準関数(memcpy,strcpy等)を使用しないこと。 ・配列bからchar 型の配列cにデータをコピーすること。 ※但し、"w"、"W"は"*"にデータをすりかえてデータをコピーすること。 →配列cには文字列"Hello**orld"を格納すること。 ・printf()で表示する際は、配列cのデータを一文字づつ表示すること。 ※"o"を表示する際は、"o"を表示する代わりに"O"を5つ表示すること。 ・VCのプロジェクト名は"ckadai3"とすること。
742 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:27:52 ] >>741 ESPの俺が応える お前男なのにキモイ
743 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:30:51 ] >>741-742 ESPってなに?
744 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:31:32 ] >>742 知り合いみたいだからよろしく
745 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:31:36 ] ESPなら、カキコを阻止してくれよ
746 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:49:57 ] >>744 マジ?
747 名前:デフォルトの名無しさん [2007/07/23(月) 20:06:13 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4727.txt [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限:2007/07/24 [5] その他の制限:なるべく問題文の指定以外の変更はしないで頂きたいです。どうか宜しくお願いします。
748 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:29:41 ] >>747 >>294 >>494 >>600
749 名前:741 [2007/07/23(月) 20:57:04 ] 741です。どなたかお願いします。For文もif文もままならないレベルなので、自力で解くのは厳しいです。また30分後にきます(´〜`;)
750 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:58:46 ] うざ
751 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:06:14 ] 質問テンプレを利用しましょう。
752 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:08:29 ] 向こうで回答されてなかったっけ
753 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:15:49 ] >>420 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4728.c どう考えても2回の宿題のレベルじゃなくね? 一日かかっちまったわ 完全じゃねえけどな \(\)は無理,ってか>>719 の言い方じゃイラネエじゃんクソ つーかなに?ほんとはライブラリとか使えんじゃねーのか??? >>420 が問題の趣旨を理解していない気が激しくするぞコラ まあ俺は勉強になったがなクソ
754 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:17:13 ] #include <stdio.h> int main(void) { char a[11]="HellowWorld", b[11], c[11]; int i; for(i=0 ; i<11 ; i++){ b[i] = a[i]; if(b[i]=='W' || b[i]=='w') c[i] = '*'; else c[i] = b[i]; if(c[i] == 'o') printf("OOOOO"); else printf("%c", c[i]); } printf("\n"); return(0); }
755 名前:ゆみ mailto:sage [2007/07/23(月) 21:30:16 ] >754 ありがとうございます。 助かりました。
756 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:35:04 ] >>754 ウホッこれはいい再提出
757 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:44:36 ] 別に文字列コピーした後に表示とか書いてないからおkじゃね? 出題者の意図とは違うと思うけど
758 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:46:38 ] printf("\n"); return(0); これはないだろ
759 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:52:07 ] >>757 よく見れば大丈夫そうだな
760 名前:デフォルトの名無しさん [2007/07/23(月) 22:33:47 ] 下記の仕様と条件を満たすプログラムを作成しなさい。 ●仕様 ・"Hello"、"World"、"kadai"を指定された順番で表示すること。 ※初期の順番は、"Hello"、"World"、"kadai"とする。 ※順番はテーブル固定とし、変更毎にビルドを行うこととする。 ●条件 ・char 型index(1Byte)とchar型の配列hako[6](6Byte)をメンバとする構造体STRINDEX_TBLを作成すること。 ・STRINDEX_TBL型の配列tableに、"Hello"、"World"、"kadai"の3つの文字列と表示順番indexを格納すること。 ・文字列を表示の際は、printf()を使用し1文字("%c")づつではなく、文字列指定("%s")で指定すること。 ・VCのプロジェクト名は"ckadai6"とすること。 ●制限時間 ・30分
761 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:40:25 ] これほどまで見下してる出題者は初めてだな
762 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:42:31 ] 今年の4月から、去年質問した初心者が回答者側に回ったのか知らんが gdgd質問者に注文つけたりうるせーよ、答える気がないなら黙ってスルーしろ。 っつかお前みたいな奴はこのスレには必要ないから、とっとと就職して 安月給プログラマーでもやってろ。
763 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:45:32 ] スルーできないお前もだろ まあ俺もだが
764 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:47:22 ] >>761 = >>763 さすがに痛いわ、こいつ。自覚ありか。うぜぇ。失せろ。 お前みたいな奴に回答なんて求めてねーんだよ、他の回答者も。
765 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:47:51 ] #include <stdio.h> typedef struct { char index; char hako[6]; } STRINDEX_TBL; int main(void) { STRINDEX_TBL st[] = {{0, "Hello"}, {1, "World"}, {2, "kadai"}}; int i, j; const int num = sizeof(st)/sizeof(st[0]); for(i=0; i<num; i++) for(j=0; j<num; j++) if(st[j].index == (char)i){printf("%s\n", st[j].hako);break;} return 0; } やっつけ
766 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:53:43 ] >>761-764 何方もどっちだな
767 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:54:36 ] >>737 >>738 スタックを2つ作り、数字と演算子を別々に積み上げておいて、演算子はどの数字を計算対象にしたら良いか、分かるのか? は、 数字が1234で演算子は+-*/です。これを1は激弱、2は弱、3は強、4は激強 にして指定した数が大きいほど優先順位が高い。 /→*→-→+の順で計算する。
768 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:56:35 ] >>767 > これを1は激弱、2は弱、3は強、4は激強 4は激強 4は激強 4は激強 4は激強 4は激強 げきつよ? げききょう
769 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:00:43 ] >>9 >>32 >>39 >>50 >>148 >>259 >>313 >>327 >>407 >>503
770 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:07:29 ] >>769 逆によくそんな前からレス探してくるなと感心。 まぁ質問者も丸投げするのは構わないんだけど 催促レスしまくってくるのと問題に最低限の必要事項が 無いのは止めて欲しいかなぁ。
771 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:11:27 ] >>770 = 去年は質問者だったが、質問の仕方が悪くて散々叩かれた挙句に 答えてもらえなかった腹いせにこのスレで今年の質問者をねちねち詰り弄ることが 今の趣味になってしまった可愛そうな就職浪人。
772 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:11:58 ] >>770 問題に最低限の事と言われても言われたのはこれくらいです。 使うプログラムも乗せてありますし。
773 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:14:04 ] >>771 まぁ落ち着け、そう噛み付くな。 自分は基本的にこのスレに住みついてなくて 暇な時に見て解いてるだけで普段はレスもしてないから。
774 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:15:35 ] >>772 誰もyouにレスしてないyo!
775 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:16:51 ] やべぇ、ネチネチ質問者を弄っている奴らが簡単に釣れちゃったぜ。 これだから釣りは面白くて止められないぜ。
776 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:16:52 ] >>774 勝手に勘違いしてすいません
777 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:18:12 ] ほんとにバカばっかりだな
778 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:19:33 ] ほんとだね
779 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:19:57 ] 釣れたってww勝手に一人でファビョってただけじゃねぇかwww
780 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:21:33 ] 俺「釣り」とか「釣り師」っていうのは、 釣り師 ↓ . /| ←竿 ○ / | . (Vヽ/ | <> | ゙'゙":"''"''':'';;':,':;.:.,.,__|_________ | 餌(疑似餌)→.§ >゚++< 〜 の組み合わせだと思ってたんだけど、 最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか 言ってるの多いよね。 これは、どっちかというと、 ,〜〜〜〜〜〜 、 |\ ( 釣れたよ〜・・・) | \ `〜〜〜v〜〜〜´ し \ ゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ト>゚++< ノ) かと思うんだけど、どうよ?
781 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:21:38 ] やべぇ、今度は自分がファビョってますって公言する必死な奴も釣れちゃったYO! あのなぁ、こっちは質問者を弄っている奴をピンポイントで指して指摘しているんじゃなくて そういう奴がうぜぇと言っているだけで、それに 反応 しちゃっている奴がわざわざ エサに食いついちゃっていることに気づかないから笑えるんだよw
782 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:22:47 ] バカって自分で書いたことと他人が書いたことを見間違えちゃうって本当だったんだ・・・ かわいそう
783 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:23:01 ] こんなスレあったのか 楽しいwwwwwwwww
784 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:24:33 ] >>767 素直に釣られましたが教えてください
785 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:26:52 ] 演算子に割り当てた数字と、計算対象としての数字がゴッチャになっている。 優先順位の高さが、何を指しているのか分かっているのか? 何でも良いから加減乗除を使っている計算式を書いて、 それぞれのスタックとやらに計算対象の数字と演算子に割り当てた数字が どのように積まれていくのか書いてみろ。
786 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:27:01 ] >>762 =>>764 =>>769 =>>771 =>>775 =>>781 はいはいクマクマ…はぁ。
787 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:30:47 ] >>785 わかりません。わからないから来ています
788 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:34:25 ] 即答せず、少しは考えろよ。 式を書いてみろ。 小学生でも理解できる事だ。
789 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:34:41 ] >>753 おまいのソース見て、俺も書きたくなってきた。 でも、正規表現アルゴリズムって何? というレベル。
790 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:34:53 ] 鳥でもコテ半でもいいからつけてくれんとはぁ〜さっぱりさっぱりだわw
791 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:38:15 ] 1+1=2
792 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:41:31 ] >>753 授業2回でこんな問題解けるような生徒がいるなら職業プログラマいらないよなw みんなバイトでいいやってなっちまうわ。 俺もやってみたいけど1時間やそこらじゃ絶対終わらないな・・・ ってか、講師はちゃんとテスト、レビューするのかな?
793 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:41:50 ] >>788 式ですか?
794 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:49:22 ] なんかしつこいからさっさと教えたら?
795 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:55:05 ] >>788 俺も同じ問題がわからない。 教えてくれないか?
796 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:58:10 ] mainの中の p=&c; 間違いだって誰か言ってる?
797 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:59:36 ] >>796 間違えなんですか?
798 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:04:53 ] >>797 だって洗剤はP&Gだろ? 配列なんだから&はいらんよ。 p=cでpにアドレスがコピーされる。
799 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:04:57 ] 間違えという言葉が間違っていると揚げ足取り。
800 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:07:06 ] p=cでもp=&c; でもいいと言われました
801 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:10:29 ] 確かに言ってた
802 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:22:13 ] >>580 じゃダメなん?
803 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:22:26 ] >>747 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4729.c 一応580でも答えたんだけどスルーされてしまったらしい. 完成したソースでないと受理されないのか. いずれにしても出題の仕方がひどい.p=cでもp=&cでもいいとかどこの講師だよ.
804 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:26:09 ] >>803 ありがとうございます
805 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:33:56 ] 何だ、回答が出ているんだ。これだけ聞いていれば答えてくれているよね。 悪いが、作業は中止する。 提示された回答をチェックしてみて下さい。要求通りだと思うよ。 気になったのがあるんだが。 number()で数値と演算子に空白がある時と無い時で動きは違わないか?
806 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:35:47 ] ×数値と演算子に空白 ○数値と演算子の間に空白
807 名前:803 mailto:sage [2007/07/24(火) 00:41:03 ] スタック回りに微妙なバグがありそうだけど,いい加減に書いたから適当な修正方法が見当たらない. とりあえずの応急処置ってことで,expression()内の最後のreturn ans;の直前に op_stack = val_stack = NULL; の一行を追加しといて.
808 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:02:26 ] expressionの初っ端の処理がヤバイっぽい
809 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:05:50 ] >>805 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4730.c しかし作っちまったので俺は投稿する 因みに struct stack *op_stack, *val_stack; が struct stack *op_stack=NULL, *val_stack=NULL; なんだとおもふ
810 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:41:49 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク): 二分探索木の拡張 詳細はうpしました。元になるプログラムも入っています。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4731.zip [3] 環境 [3.1] OS: (Windows/Linux/等々) windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) VC6.0 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/27まで [5] その他の制限: どなたかご教授よろしくお願いします。
811 名前: ◆DpMW3bRjps [2007/07/24(火) 07:34:56 ] 1] 授業単元:プログラミング実習 [2] 問題文(含コード&リンク):任意の文字列を入力し、その文字列の中に任意の文字が何個入っているかを出力する プログラムのソースコードを提出しなさい。 実行例) 文字列を入力してください yamamotoyama さがす文字を入力してください y 入力された文字列の中に指定された文字は2個あります [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2007年07月25日まで [5] その他の制限:>>452 で教えてもらい、その後少し訂正したんですがダメでした。 しつこいですがもう1回お願いします。。
812 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:55:11 ] >>452 で全く問題なくコンパイル通るが
813 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:58:32 ] >>811 #include<stdio.h> int main( void ){ char c, string[100], *pstr; int count; printf( "文字列を入力してください\n" ); scanf( "%s%*c", string ); printf( "さがす文字を入力してください\n" ); scanf( "%c%*c", &c ); pstr = string; count = 0; while ( *pstr != '\0' ) { if ( *pstr == c ) { count++; } pstr++; } printf( "入力された文字列の中に指定された文字は%d個あります\n", count ); return 0; }
814 名前:813 mailto:sage [2007/07/24(火) 08:01:47 ] その他制限に全く目を通していなかったorz 朝っぱらかやろうとするとすぐこれだ・・・
815 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:16:18 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク):括弧が使用可能な四則演算の電卓プログラムを作成せよ。文字入力で、入力時の関数はgetsを使用する事。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: gcc3.4 [3.3] 言語: C [4] 期限: 無期限 [5] その他の制限:自作関数は不可、スキルは初心者用の参考書一冊を一通り読んだくらいです。 よろしくお願いします。
816 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:37:51 ] 自作関数は不可って?
817 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:45:17 ] ごめんなさい、そこは無視して大丈夫ですorz
818 名前: ◆MmITqPYxy6 [2007/07/24(火) 13:42:22 ] [1] 授業単元: IT入門B1 C言語 [2] 問題文(含コード&リンク): 1辺10の立方体内部に含まれる四面体をN個発生し、 体積の分布(区間数は20程度)を表示するプログラムを 以下の要求に従って作成し、実行しなさい。 1,四面体を表す構造体(4つの3次元位置ベクトルをメンバーとする) を Tetra という名前で定義する. typedef struct {. . .} Tetra; 2,構造体 Tetra を返却する,すなわち四面体を生成する以下の名前の関数を作成する. Tetra mk_tetra(void) 3,四面体の体積を返す次の名前の関数を定義する. double vol_tetra(Tetra t) 4,Nの値は実行時にキー入力するように設計しなさい. [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月25日迄 [5] その他の制限: ヒントとして 1、講義で用いた"vector.h" を必ずincludeして使いなさい。 2、四面体の1つの頂点を原点にして、他の3つの位置を表すベクトルを r1,r2,r3とすると、四面体の体積Vは以下のように与えられる V=1/6|(r1×r2)・r3| がありました。 vector.h はこれです www-it.sci.waseda.ac.jp/teachers/w405201/ITB1/Sources/vector.h
819 名前: ◆MmITqPYxy6 [2007/07/24(火) 13:46:23 ] よろしくお願い致します。
820 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:20:45 ] >>811 >[5] その他の制限:>>452 で教えてもらい、その後少し訂正したんですがダメでした。 もしかして、gets()をfgets()に修正したと言うことですか? それ以外にも変更していますか? fgets()だけなら、引数を変更するだけで良いんじゃないでしょうか。
821 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:50:12 ] >452はgets()の使い方が阿呆過ぎる。 それはさておき、>811はなんで自分がどう修正してダメだったかも書かないんだ?
822 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:59:12 ] >>821 gets()の使い方なんか可愛いもんだ。突っ込みどころ満載で目も当てられない。
823 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:09:24 ] 取り敢えず書いてみた。 #include <stdio.h> int main() { puts("文字列を入力してください"); char buf[200]; if (fgets(buf, sizeof(buf), stdin) == NULL) return 1; puts("さがす文字を入力してください"); char key; if (scanf("%c", & key) != 1) return 1; unsigned count = 0; for (unsigned ic = 0; buf[ic] != '\0'; ++ic) if (buf[ic] == key) ++count; printf("入力された文字列の中に指定された文字は%d個あります\n", count); return 0; }
824 名前:デフォルトの名無しさん [2007/07/24(火) 16:33:28 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク):”rand1000.dat”というデータの個数nとその個数分の整数データが保存されているファイルがある (kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4151.txt ) このデータをファイルから読み込み 挿入ソート 基数ソート ヒープソート クイックソート マージソート によってソートできるよう各プログラムを作成せよ データ数が100,000個のときでも対応できるようメモリを確保しておいてください。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 7月28日 [5] その他の制限:出来る限り単純なアルゴリズムで作ってください。合計5つのプログラムを作成してください。 大変な問題で申し訳ありませんがどなたか詳しい方よろしくお願いいたします
825 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 16:43:08 ] >>824 なんで露骨にマルチするわけ? 専用ブラウザ使ってる連中の多くが両方とも見ているから、逆効果にしかならないのだが。 #それともネタか? ネタにマジレスしちゃったか?w
826 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:58:03 ] だから答える気がない奴はいちいちうぜーレスするなよ、邪魔。お前みたいな奴いらねーって 行頭 # 野郎w
827 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:03:33 ] >>826 お前も、なぁ…?
828 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:07:01 ] >>826 こいつ、他のスレにも潜んでるよな IDが出ないのをいいことに好き勝手やってやがる
829 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:08:26 ] >>828 あ〜はいはい、去年質問したけど質問の仕方が悪くて 今年は自分が質問者を弄るようになった基地外えせ回答者さん乙でありますw うぜぇから他の回答者の迷惑になるから、文句を言うだけのレスはするなや、答える気も 答える能力もないくせに、うざすぎ
830 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:10:00 ] [1] 授業単元:プログラミングT [2] 問題文(含コード&リンク): 二つの任意の正の整数の乗算(*)を、シフト演算の組合わせと除算(/)と 加算(+)のみで解くプログラムを作成しなさい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 7月25日まで [5] その他の制限: ビット演算まで習っています。 お願いします。
831 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:11:10 ] >>828 まぁ、アレだからスルーしてあげてくれ。
832 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:11:43 ] 答える気も能力もないクズらが質問者を叩くだけで自己満足か、必死だな
833 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:17:21 ] 何だ、本当に答える気がなくて質問者をスレのルールに則って詰るだけの低レベルか。 相手にするだけ無駄だ、お前ら俺がいる限り、もうこのスレには来なくて良いから。 邪魔だから失せろ。
834 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:19:16 ] >>827 質問者に対して、回答ではなく叩きでレスしているって意味だと思うんだが。 頭大丈夫か?
835 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:20:30 ] ここは馬鹿がアホをたたくスレですか?
836 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:21:31 ] >>834 お前こそ頭大丈夫か?文盲?
837 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:21:38 ] >>833 勝手にすればwww
838 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:22:39 ] >>834 >いちいちうぜーレスするなよ、邪魔。お前みたいな奴いらねーって これに対してオマエモナーだろ。
839 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:24:38 ] >>838 いや、オマエモナーは>>827 =>>838 さんの専売特許ですから
840 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:27:21 ] なんか話が通じてないぞ。
841 名前:にゃ〜 [2007/07/24(火) 18:31:53 ] f(x)=sin(x)をテイラー展開すると ∞ f(x)=(-1)^(k-1)*{x^(2k-1)/(2k-1)!} k=1 となる.これを利用してsin(x)の値を多項式近似する関数double mysin(double x)を定義し,この関数を利用して,読み込んだ実数xのsin(x)を計算して出力するプログラム(sin.c)を書け. また,数学関数sin(x)と自分で作ったsin(x)を比較せよ. という問題なのですがどうしてもわからないんです。 今日中にできる方いらっしゃいますか?? 理解したいので、コメント付きでどうかお願いします。
842 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:36:48 ] ループで適当なとこまで足してきゃいいだけだろ。
843 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:39:32 ] >>841 どの辺が分からない?式の意味は分かるよね?
844 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:58:17 ] >>841 #include <stdio.h> #include <math.h> double mysin(double x) { double sub = 1.0; int last = 1001; /* 奇数 */ while (last > 1) { sub = 1 - (x*x / ((last-1)*last)) * sub; last -= 2; } return x * sub; } int main(int argc, char *argv[]) { while (1) { double x; scanf("%lf", &x); printf("mysin(x) = %lf\t(sin(x) = %lf)\n", mysin(x), sin(x)); } } /* コメント:原点から遠ざかると近似が効かなくなるのはマクローリンの宿命だな */
845 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:27:21 ] マクローリン云々よりも漸化式の形で解くのに疑問を持つ 1001もマジックでエロい人だなぁ
846 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 21:42:25 ] >>841 クソわかりやすいつもり。わからないなら数学やりなおせ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4737.c
847 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 21:55:07 ] >>753 ありがとうございますー 最長一致するようにして使わせてもらいます >\(\)は無理,ってか>>719 の言い方じゃイラネエじゃんクソ 勘違いしてたみたいですね すいません >つーかなに?ほんとはライブラリとか使えんじゃねーのか??? >>>420 が問題の趣旨を理解していない気が激しくするぞコラ 授業ではプリプロセッサにまったく触れてないんでそれはないです
848 名前:デフォルトの名無しさん [2007/07/24(火) 22:22:39 ] さんざん考えたけど難しかったです。 よろしくお願いします。 [1] 授業単元: アルゴリズム [2] 問題文(含コード&リンク): 2つの複素数z=a+bi、w=c+di(ただしiは虚数単位)を読み込み、足し算とかけ算を計算して表示するプログラムを作成せよ。 但し、以下の仕様を満足するように作成すること。 ・複素数の実部と虚部を示す実数型変数をメンバとする構造体COMPLEXを構造体で定義する。 ・足し算の関数:COMP_ADD(z、w)とかけ算の関数:COMP_MULT(z、w)を作成し、main関数ではこれらの関数を呼び出す。 (実行例) 1つ目の複素数(実部):2 1つ目の複素数(虚部):3 2つ目の複素数(実部):4 2つ目の複素数(虚部):-2 足し算:(6)+(1)i かけ算:(14)+(8)i (ヒント) 複素数を扱う構造体(メンバで実数部、虚数部を2つの数値で格納)を宣言し、各変数を格納、演算を行う。 複素数同士の足し算、かけ算は普通に行う。 (a+bi)+(c+di) (a+bi)×(c+di) を展開して虚数の2乗は-1という知識があれば解ける。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: cygwin gcc [3.3] 言語: C言語 [4] 期限:7/26(木)12:00まで
849 名前:にゃ〜 [2007/07/24(火) 22:46:34 ] いろいろやってみたところ自己解決しました 載せてくれた人もいるみたいですが いちおう礼をいっておきます
850 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:00:02 ] >構造体COMPLEXを構造体で定義する。 構造体を構造体以外でどうやって定義するんだよw
851 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:00:30 ] >>848 ほい。名前が適当だから、そこだけ自分で修正して。 #include <stdio.h> typedef struct{ double r; double i; } comp; comp add_comp(comp c1,comp c2){ comp tmp; tmp.r=c1.r+c2.r; tmp.i=c1.i+c2.i; return tmp; } comp mul_comp(comp c1,comp c2){ comp tmp; tmp.r=c1.r*c2.r-c1.i*c2.i; tmp.i=c1.r*c2.i+c1.i*c2.r; return tmp; }
852 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:01:35 ] >>851 の続き int main(){ comp c1={2.0,3.0}; comp c2={4.0,-2.0}; comp result; printf("1つ目の複素数(実部):%lf\n",c1.r); printf("1つ目の複素数(虚部):%lf\n",c1.i); printf("2つ目の複素数(実部):%lf\n",c2.r); printf("2つ目の複素数(虚部):%lf\n",c2.i); result=add_comp(c1,c2); printf("足し算:(%lf)+(%lf)i\n",result.r,result.i); result=mul_comp(c1,c2); printf("かけ算:(%lf)+(%lf)i\n",result.r,result.i); return 0; }
853 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:24:02 ] [1] 授業単元:c言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4739.txt [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:bcc32 [3.3] 言語: C [4] 期限: 7月26日まで [5] その他の制限:ファイルを読込んだり、書込んだりするところを習いました。
854 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:29:39 ] >>853 例をみると、改行も区切りと見なしてるが、それでいいのか?
855 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:32:04 ] >>854 はい
856 名前:にゃ〜 [2007/07/25(水) 00:37:12 ] >>844 わかりやすいっす!! ありがとうございます。勉強しなおします
857 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:39:18 ] >>853 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4740.c
858 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:52:03 ] >>853 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4741.c
859 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:54:40 ] >>853 ちょい修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4742.c
860 名前:853 mailto:sage [2007/07/25(水) 00:57:53 ] すいません。 補足で 入力ファイルを読込モードでオープン 出力ファイルを書出モードでオープン while ( 1 ) { 入力ファイルから書式付で字句を読込 ファイル終端なら脱出 出力ファイルに書式付で番号を付けて書込 } 入力ファイルをクローズ 出力ファイルをクローズ と言う形で作れと書いていました。
861 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:02:14 ] >>860 後だしイクナイ
862 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:03:16 ] >>853 >>860 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4743.c
863 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:04:32 ] >>862 の#include <ctype.h>は不要だから消しておいて
864 名前:853 mailto:sage [2007/07/25(水) 01:15:02 ] ありがとうございました。
865 名前:デフォルトの名無しさん [2007/07/25(水) 10:02:24 ] >>851 >>852 ありがとうございます。 ソースも分かりやすく書いてくれたみたいで、参考になります。
866 名前:デフォルトの名無しさん [2007/07/25(水) 10:02:24 ] パワプロ14でオールAを作るプログラムを作れ
867 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 10:48:35 ] すごい宿題だな
868 名前:デフォルトの名無しさん [2007/07/25(水) 11:20:58 ] >>866 攻略本が必要だ。 でも宿題の内容熱いな。
869 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 11:44:08 ] 探索とその評価の方法をパワプロを通して学ぶわけだな
870 名前: ◆6MtsdamhF6 [2007/07/25(水) 11:45:35 ] すいません、まだ初心者であんまりわかりません。 締切が近いのでどうかお願いします 【質問テンプレ】 [1] 授業単元:プログラミングC言語 [2] 問題文(含コード&リンク): 次の違いに注意しながら、forの変わりにwhileを使うものにそれぞれ 書き換えなさい。ただし書き換えは最低限にすること (1) #include<stdio.h> main(){ int nc, c; for(nc = 0; (c= getchar()) != EOF; nc++) printf("%c", c); printf("\nTatal=%d\n", nc); } A#include<stdio.h> main(){ int nc, c; for(nc = 0; (c= getchar()) != EOF; nc++) putchar(c); printf("\n%d\n", nc); } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:今日の14時までなんです。 どうかおねがいします。
871 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:19:36 ] #include<stdio.h> main(){ int nc=0, c; while((c= getchar()) != EOF) { printf("%c", c); nc++; } printf("\nTatal=%d\n", nc); } #include<stdio.h> main(){ int nc=0, c; while((c= getchar()) != EOF) { putchar(c); n++; } printf("\n%d\n", nc); } 期限切れだが
872 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:22:21 ] Aのn++はnc++の間違い
873 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 15:46:14 ] 今、>>841 をやってみた。最初は簡単かと思ったけど、 そのまま階乗つかうとオーバーフローするから面倒なのね。 >>844 ほど華麗ではないけど、x/n * ...x/3 * x/2 * x/1の和で計算した。
874 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 15:55:45 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 以下のように、2桁以下の正整数が1行に3つずつ書かれたファイルを input.txt とする。 ただし、ファイルの末尾には、終了を表す番兵0がある。 1 45 90 2 7 41 13 67 60 0 入力リダイレクトで input.txt を読み込み、出力リダイレクトで、以下のような形式で output.txt に保存するプログラムを作れ。 番号 数学 英語 合計 01 45 90 135 02 7 41 48 13 67 60 127 [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン:bcc32 [3.3] 言語: C [4] 期限:7/27 反復構文を使うっぽいです。
875 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:42:24 ] [1] 授業単元:情報基礎 [2] 問題文:次の仕様を満たすプログラムを作成せよ (1)入力は2以上の整数n 出力はnのすべての正の約数 (2)入力は2以上の整数n 出力はnの正の約数の個数 (3)入力は2以上の整数n 出力はnが素数ならば"n is prime", 合成数ならば"n is not prime" (nの部分には、入力した整数が表示されるようにすること) 3つのプログラムは1つにまとめてもよい。その場合には、ど れが約数でどれが約数の個数を表しているかが分かるようにす ること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:7月27日(金)提出は20:45までです
876 名前:デフォルトの名無しさん [2007/07/25(水) 16:43:30 ] >>874 #include <stdio.h> void main(){ int buf = 0; int count = 0; int total = 0; printf("番号 数学 英語 合計\n"); while(scanf("%d",&buf)) { if(buf == 0) break; count++; printf("%d ", buf); total += buf; if(!(count%3)){ printf("%d\n", total); total = 0; } } } なんにもエラー処理してないけどこんなんでいいかな・・・
877 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:58:51 ] >>875 #include<stdio.h> int main(){ int n,c=0,i; printf("n="); scanf("%d",&n); for(i=2;i<=n;i++) if(n%i==0) c++,printf("%d ",i); printf("\n%d\nn is ",c); if(c!=1) printf("not "); printf("prime.\n"); return 0; }
878 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:01:34 ] 間違えた・・ #include<stdio.h> int main(){ int n,c=0,i; printf("n="); scanf("%d",&n); for(i=2;i<=n;i++) if(n%i==0) c++,printf("%d ",i); printf("\n%d\n%d is ",c,n); //修正 if(c!=1) printf("not "); printf("prime.\n"); return 0; }
879 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:03:43 ] 学校の先生はこのスレにかかれているままのコードで 宿題をだしている生徒がいたら、減点すればいいわけだなwwww
880 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:17:55 ] 教官、見てるなら指摘された問題の間違い位直せよ。
881 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:31:47 ] そこまで良心的な教師いないよ
882 名前:デフォルトの名無しさん [2007/07/25(水) 17:55:14 ] [1] 授業単元: IT入門B1 C言語 [2] 問題文(含コード&リンク): 1辺10の立方体内部に含まれる四面体をN個発生し、 体積の分布(区間数は20程度)を表示するプログラムを 以下の要求に従って作成し、実行しなさい。 1,四面体を表す構造体(4つの3次元位置ベクトルをメンバーとする) を Tetra という名前で定義する. typedef struct {. . .} Tetra; 2,構造体 Tetra を返却する,すなわち四面体を生成する以下の名前の関数を作成する. Tetra mk_tetra(void) 3,四面体の体積を返す次の名前の関数を定義する. double vol_tetra(Tetra t) 4,Nの値は実行時にキー入力するように設計しなさい. [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月25日20時迄 [5] その他の制限: ヒントとして 1、講義で用いた"vector.h" を必ずincludeして使いなさい。 2、四面体の1つの頂点を原点にして、他の3つの位置を表すベクトルを r1,r2,r3とすると、四面体の体積Vは以下のように与えられる V=1/6|(r1×r2)・r3| vector.h はこれです www-it.sci.waseda.ac.jp/teachers/w405201/ITB1/Sources/vector.h 今日が期限なんですが、全然わからないんです。 よろしくお願い致します
883 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:01:02 ] >>882 結果表示のイメージが分からない。グラフにするのかな?合計数値?
884 名前: ◆TDJK/P.926 [2007/07/25(水) 18:16:42 ] 【質問テンプレ】 [1] 授業単元:プログラミング言語 [2] 問題文(含コード&リンク) 講義中の題材として扱っていた電卓を、以下の点について改良せよ。 (1)変数に文字列を代入できるようにする。たとえば s1="Programing" word="apple" のような代入が可能になる。 (2)文字を扱う関数を取り扱えるようにする。たとえば s1="Programing" s2="Language" s3=concatenate(s1,s2) 上で代入されたs1とs2を連結したものをs3に代入する。 s3 =ProgramingLanguage (5)次のようなif文を使えるようにする。→if(条件式) 実行文 例: if(a+b>10) a=a-1 条件式には、>または<が使用できるものとする。条件式が成立していたときには、実行文(複文も可)を実行する。 (6)その他、この電卓に追加するとよいと思う昨日を考え、実現してみよ。 [3] 環境 [3.1] OS:WindowsXP 上でのUNIX [3.2] コンパイラ名とバージョン: gcc (※yaccとlexのプログラミングです。 [3.3] 言語:C言語 [4] 期限: (2007年07月27日20:00まで] [5] その他の制限:講義中の題材のソースはすぐアップします。
885 名前: ◆TDJK/P.926 [2007/07/25(水) 18:19:36 ] >>884 のソースです。 ※ヘッダファイル:ch3-05.h #define NSYMS 20 /* maximum number of symbols */ struct symtab { char *name; double (*funcptr)(); double value; } symtab[NSYMS]; struct symtab *symlook();
886 名前: ◆TDJK/P.926 [2007/07/25(水) 18:20:42 ] >>885 続き ※lexファイル:ch3-05.l %{ #include "y.tab.h" #include "ch3-05.h" #include <math.h> %} %% ([0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?) { yylval.dval = atof(yytext); return NUMBER; } [ \t] ; /* ignore white space */ [A-Za-z][A-Za-z0-9]* { /* return symbol pointer */ struct symtab *sp = symlook(yytext); yylval.symp = sp; return NAME; } "$" { return 0; /* end of input */ } \n | . return yytext[0]; %% yyerror(char *errmsg) { fprintf(stderr,"ERROR: %s at %s\n", errmsg, yytext); } yywrap(){}
887 名前:デフォルトの名無しさん [2007/07/25(水) 18:20:50 ] 説明不足でした。申し訳ありません N = 10000000 0.0 - 16.7: 0.699031 16.7 - 33.3: 0.206966 33.3 - 50.0: 0.065772 50.0 - 66.7: 0.020377 66.7 - 83.3: 0.005860 83.3 - 100.0: 0.001542 100.0 - 116.7: 0.000351 …中略… 316.7 - 333.3: 0.000000 が実行例としてありました。それぞれ体積の範囲ごとに どれくらい分布しているかを箇条書きみたいに出すみたいです。
888 名前: ◆TDJK/P.926 [2007/07/25(水) 18:23:05 ] >>886 続き ※yaccファイル:ch3-05.y %{ #include "ch3-05.h" #include <string.h> #include <math.h> %} %union { double dval; struct symtab *symp; } %token <symp> NAME %token <dval> NUMBER %left '+' '-' %left '*' '/' %nonassoc UMINUS %type <dval> expression %% statement_list: statement '\n' | statement_list statement '\n' ; statement: NAME '=' expression { $1->value = $3; } | expression { printf("= %g\n", $1); } ;
889 名前: ◆TDJK/P.926 [2007/07/25(水) 18:25:09 ] >>888 yaccの続き。次で最後です。 expression: expression '+' expression { $$ = $1 + $3; } | expression '-' expression { $$ = $1 - $3; } | expression '*' expression { $$ = $1 * $3; } | expression '/' expression { if($3==0.0) yyerror("Divide by Zero"); else $$ = $1 / $3; } | '-' expression %prec UMINUS { $$ = -$2; } | '(' expression ')' { $$ = $2; } | NUMBER { $$ = $1; } | NAME { $$ = $1->value; } | NAME '(' expression ')' { if( $1->funcptr ) $$ = ($1->funcptr)($3); else {printf("%s not a function.\n", $1->name); } } ; %% /* look up a symbol table entry, add if not present */ struct symtab *symlook(char *s) { char *p; struct symtab *sp; for(sp=symtab; sp<&symtab[NSYMS]; sp++) { /* is it already here? */ if( sp->name && !strcmp(sp->name, s) ) return sp; /* is it free */ if( !sp->name ) { sp->name = strdup(s); return sp;} /* otherwise continue to next */ } yyerror("Too many symbols"); exit(1); /* cannot continue */ } /* end of symlook */
890 名前: ◆TDJK/P.926 [2007/07/25(水) 18:35:56 ] >>889 これで最後です。 void addfunc(char *name, double (*func)()) { struct symtab *sp = symlook(name); sp->funcptr = func; } int main() { extern double sqrt(), exp(), log(), sin(), cos(); addfunc("sqrt", sqrt); addfunc("exp", exp); addfunc("log", log); addfunc("sin", sin); addfunc("cos", cos); yyparse(); return 0; }
891 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:44:24 ] >>1 にもある様に長文はロダ使おうぜ その方が回答者にとってはやりやすい って書くといつもの基地外に噛み付かれるのかなぁ?
892 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:47:19 ] ◆TDJK テンプレ嫁
893 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:47:47 ] >>891 ガブ
894 名前: ◆TDJK/P.926 [2007/07/25(水) 18:47:51 ] >>891 うpロダには学校からアクセスしてるので規制されててアクセスできないんですよ(汗)申し訳ないです。
895 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:50:20 ] 2chはおkなのに?おかしな話だ
896 名前: ◆TDJK/P.926 mailto:sage [2007/07/25(水) 18:54:39 ] >>895 2ch自体にはアクセスできますがPink板など18禁系には規制かかります。 うpロダもそれで規制かかったので。
897 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:05:05 ] いくらでもあるのに規制って(´,_ゝ`)プッ 宿題まるなげするやつのいいそうなことだ。(´,_ゝ`)プッ
898 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:10:14 ] >>897 >>762
899 名前:デフォルトの名無しさん [2007/07/25(水) 19:11:16 ] 説明不足でした。申し訳ありません。 N = 10000000 0.0 - 16.7: 0.699031 16.7 - 33.3: 0.206966 33.3 - 50.0: 0.065772 50.0 - 66.7: 0.020377 66.7 - 83.3: 0.005860 83.3 - 100.0: 0.001542 100.0 - 116.7: 0.000351 …中略… 316.7 - 333.3: 0.000000 が実行例としてありました。それぞれ体積の範囲ごとに どれくらい分布しているかを箇条書きみたいに出すようです。 よろしくお願いします。
900 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:12:19 ] >>898 こてはずして必死だなwww
901 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:54:06 ] >>900 >>762
902 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:58:05 ] >>882 間に合うかな? ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4746.c
903 名前:デフォルトの名無しさん [2007/07/25(水) 19:58:54 ] age
904 名前:デフォルトの名無しさん [2007/07/25(水) 20:01:53 ] スマン影響ないけど if(j > 30) j = 30; → if(j > 29) j = 29;
905 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:04:49 ] [1] プログラミング [2] キーボードから入力された1行を読み込み,そのアルファベットを全て大文字に 変換して表示するプログラムを作成しなさい。なお,以下に与えられるメイン関数を必ず使用し, 文字列を大文字の文字列に変換する関数str_capを作成することで完成させなさい。 ヒント:小文字とは「'a'以上 かつ 'z'以下」の文字であるので,条件式が成立した場合に 小文字→大文字変換を行う。それ以外の文字はそのままにする。 Program: pt3-3.c の一部 #include <stdio.h> #define MAXLINE 1024 void str_cap(char src[], char dst[]); int main(void) { char line[MAXLINE], conv[MAXLINE]; printf("Input a line ->"); gets(line); str_cap(line, conv); printf("Original : %s\n", line); printf("Converted: %s\n", conv); return 0; } 実行結果 $ ./pt3-3 Input a line -> hiroshima city Original : hiroshima city Converted: HIROSHIMA CITY $
906 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:05:46 ] [3] 環境 [3.1] Linux [3.2] gcc 3.4 [3.3] C [4] [無期限] [5] 関数部分をifを使って組む、toupperは使ってはいけない お願いします
907 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:26:03 ] どなたか>>810 分かりませんか? offspringを使って左右に潜っていくんだろうけど 最終的にどうなれば求める値なのかさっぱりわからん・・・・
908 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:29:28 ] >>905 mainより上にコピーして void str_cap(char str1[], char str2[]) { int i; for(i = 0; str1[i] != '\0'; i++) { if(('a'<=str1[i]) && (str1[i]<='z')) str2[i]=str1[i]-'a'+'A'; else str2[i]=str1[i]; } str2[i]='\0'; }
909 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:34:48 ] >>908 ごめん、str1 -> src、str2 -> dst、ってことで。
910 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:18 ] >>905 ヒントは無視してるがやってみた #include<stdio.h> int main(void){ char lower[]="abcdefghijklmnopqrstuvwxyz"; char upper[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int i; printf("void str_cap(const char *src, char *dest){\n"); printf("\tdo{\n"); printf("\t\t*dest=*src;\n"); for(i=0;i<26;i++) printf("\t\tif(*src=='%c') *dest='%c';\n", lower[i], upper[i]); printf("\t\tsrc++;\n"); printf("\t\tdest++;\n"); printf("\t}while(*src);\n"); printf("}\n"); return 0; }
911 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:39 ] >>905 それvipでみたな ヒントもらえたのに解決しなかったのか?
912 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:40 ] 4文字の文字列を入力してF,R,E,Eの4文字で構成されていたらOK それ以外なら入力しなおす。 ERFEやEERFもOK。この4文字で構成(F,RとEが2回で
913 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:40:28 ] DEAD BEEF BAD FACE
914 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:42:48 ] >>910 は '\0' 入れ忘れてる orz printf("}\n"); ↓ printf("\t*dest='\0';\n}\n");
915 名前:デフォルトの名無しさん [2007/07/25(水) 20:56:53 ] >>902 ありがとうございます。ギリギリ間に合いました。 お手数かけてすみませんでした。
916 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:04:05 ] >>912 宿題なら >>1 を読んで書きなおし
917 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:10:39 ] >>908 >>910 ありがとうございました。
918 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:22:18 ] >>908 のように打ち込んだのですが、gets以外でfunction mainでエラーが発生し printf("Converted: %s\n", conv);のconvの部分が出力されません newjizou.s6.xrea.com/cgi-bin/source/up0098.c
919 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:27:47 ] >>918 これじゃコンパイルできんだろ?
920 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:29:33 ] >>919 コンパイルはできたのですが、その部分が出力されないのです。
921 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:30:11 ] >>909 の通りに置換されきれてない上に置換された文字が間違ってる 置換すらまともにできないのかYO
922 名前:デフォルトの名無しさん [2007/07/25(水) 21:36:52 ] >>902 度々すみません。コンパイルがうまくできてないようなんですが どこが間違っているのかわからないのですが。 お教え願いないでしょうか?
923 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:43:05 ] int main(int argc, char *argv[]) → int main(void) にするといいかもNE!
924 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:43:11 ] >>921 コンパイルはできたのはこっちでした newjizou.s6.xrea.com/cgi-bin/source/up0099.c
925 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:49:44 ] だからね・・・ 置換された文字が間違ってるからダメなんだ
926 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:53:32 ] >>925 落ち着いて見てみると修正した部分以外にも違っていた すみません、本当に自分が馬鹿でした・・・
927 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:57:13 ] >>924 折角変換処理を通した後で '\0' で上書きするということは memset(dest, '\0', strlen(str)); と等しい。
928 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:04:12 ] >>927 >>908 のstc[i]='\0';の部分を修正したところ、正常に動作しました ありがとうございました、お世話かけました。
929 名前:デフォルトの名無しさん [2007/07/25(水) 22:08:37 ] [1] 授業単元:OS概論 [2] 問題文(含コード&リンク): Linuxでは、mmap()システムコールを使うと、 複数のプロセス間で仮想アドレス空間の一部を共有することができる。 このようなプログラムを作成し、 実際に仮想アドレス空間の一部が共有されていることを確認しなさい。 [3] 環境 [3.1] OS: LINUX [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2007年7月26日まで さっぱり見えてきません。 何卒宜しくお願い致します。
930 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:20:51 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 正の整数nを入力して、1からnまでの積(階乗)を求めるプログラムを 作成さいなさい [3] 環境 [3.1] OS: Windows [3.2] 言語: C言語 [4] 期限: 2時間以内 よろしくお願いします
931 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:34:26 ] #include <stdio.h> int main(void) { unsigned int n, val = 1; scanf("%d", &n); while (n > 0) { val *= n--; } printf("%d\n", val); return 0; } こんなんでいいの? unsigned intを超える値を表示させろというなら面倒だな。
932 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:39:03 ] >>930 #include <stdio.h> int main(void) { int n,i,r; printf("n = "); scanf("%d",&n); for(i=1,r=1; i<=n; i++) printf("%d! = %d\n",i,r*=i); return 0; }
933 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:10:40 ] >>930 ちょっと変わったところで、こんなのはどう? >>931 の言うように、任意のnには無理だけど。 #include <stdio.h> int fact(int n){ return n>1?n*fact(n-1):1; } int main(){ int n; printf("n = "); scanf("%d",&n); printf("%d\n",fact(n)); return 0; }
934 名前:プログラミング初心者 [2007/07/25(水) 23:23:39 ] [1]授業単元:c言語 [2]問題文(含コード&リンク): 2つの符号なし整数a,b(ただし、a>bとする)を キーボードから読み込み @a,bを2進表示し、配列の中にビットを格納しなさい Aa,bの四則演算 c=a+b d=a-b e=a*b f=a/b(商f1と余りf2)を計算しその結果を出力しなさい [3]環境 [3.1] OS: Windows [3.2] 言語: C言語 [4]期限:2007年7月28日まで 全然見えてきません。 よろしくお願いします。
935 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:34:59 ] [1] 授業単元: C言語演習 [2] 問題文: 自分で作成したデータファイルを読み込みんで以下のような出力が出るようにする。 abc efg abc hijkl efg xxxxxxxxx これを abc, 3 efg, 3 hijkl, 5 xxxxxxxxx, 9 のようにする。 同じ文字は二度も表示させない。それぞれの文字数をカウントする。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C++ [4] 期限:7月30日まで よろしくお願いします。
936 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:54:44 ] >>934 こんなんでいいかい? #include <stdio.h> void dtob(unsigned int n, char *s) { unsigned int i = 32; s[i] = '\0'; for (i = 31; i >= 0; i--) { s[i] = (((n >> (31 - i)) & 1) + '0'); } } int main(void) { unsigned int a, b; char buf[33]; /* for 32bit */ scanf("%d %d", &a, &b); dtob(a, buf); printf("%s\n", buf); dtob(b, buf); printf("%s\n", buf); printf("%d + %d = %d\n", a, b, a+b); printf("%d - %d = %d\n", a, b, a-b); printf("%d * %d = %d\n", a, b, a*b); b && printf("%d / %d = %d(%d)\n", a, b, a/b, a%b); return 0; }
937 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:17:33 ] >>929 やっつけなので、かなりアレだかけど、一応、課題は満たせると思う。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4748.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4749.c 使い方 1:4748と4749を同じディレクトリ内でコンパイルする。 さらに、同じディレクトリ内に、hogeという名前のファイルを作る。 2:端末を二つ立ち上げ、片方で4748を、もう片方で4749を実行する。 3:4748で2,3文字入力してエンターしたあと、4749で'x'以外で何か一文字入力してエンター 4:すると、4748で入力した文字列が4749のプログラムに出力される。
938 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:18:31 ] どなたか>>929 を御願いします…
939 名前:938 mailto:sage [2007/07/26(木) 00:20:49 ] リロードし忘れorz >>937 のを試してみます ありがとうございました
940 名前:686 mailto:sage [2007/07/26(木) 00:26:12 ] >>702 sa-wiki.com/upload/src/up0151.txt >期限: ([2007年7月23日9:00まで] ) もうとっくに切れているし、必要ないかもしれませんが、一応作ったので 極力ソースの変更はしないようにしたつもりです コメントは入れてませんし、メモリの開放が失敗しているかもしれません 問題の「その後、木のノードからつながる住所データを表示する。」の意味が分からなかったので手を付けていません 素人(自分)がやったのできれいではありません
941 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:26:38 ] >>935 「同じ文字は二度も表示させない」ってのは何のこと? 「同じ単語は…」のことか?
942 名前:デフォルトの名無しさん [2007/07/26(木) 00:41:47 ] >>810 dataType* f(nodeType *p,int k) { int n=k; if(k<1)return NULL; if(p->left!=sentry)n-=(p->left->offspring+1); if(n==1)return &(p->data); if(n<1)return f(p->left,k); if(p->right!=sentry)return f(p->right,n-1); return NULL; } dataType* RBSTfindKth(int k){ return f(head,k); } 該当箇所にコピー,ヘッダにf()の宣言追加, メニュー文字列に5:find追加でおk
943 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:39:43 ] [1] 授業単元:プログラミング演習I [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4751.txt [3] 環境 [3.1] Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 7/31まで [5] その他の制限:特になし 締め切り間近です。 どうか皆さんの力を貸してください。
944 名前:デフォルトの名無しさん [2007/07/26(木) 01:45:29 ] [1] 授業単元: プログラミング言語論 [2] 問題文: 読み込んだ分数を連分数として出力せよ。全ての分子が1になったときに連分数にする計算はとめればよい。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C++ [4] 期限:明日(正確には今日)まで・・・ お願いします。
945 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:18:38 ] >>944 まず > 読み込んだ分数 っていう前提条件をよこせ
946 名前:944 [2007/07/26(木) 02:21:10 ] 問題があやふやですいません。 float a, b, c; std::cin >> a; std::cin >> b; c = a/b; 上記でいうcが読み込んだ分数です。 よろしくお願いします。
947 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:26:58 ] >>943 なんとなく lexico だけ #define lwstr(x) (isupper(x)?tolower(x):(x)) int lexico(char *a,char *b){ int i=0; while(*a && *b) i=lwstr(*a)-lwstr(*b),a++,b++; return i; }
948 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:33:59 ] >>943 ヒント・参考のとおりに書いたつもり くそーすだが kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4752.c
949 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:35:07 ] >>944 よりによってfloatか.微妙な誤差が出るかも 記法はwikiにならった #include <iostream> using namespace std; int main() { float A, B; cout << "input numerator (A in A/B)" << endl; cin >> A; cout << "input denominator (B in A/B)" << endl; cin >> B; if (A == 0) { cout << 0 << endl; } else if (B == 0) { cout << "error" << endl; } else { cout << "[" << (int)(A/B) << "; "; A = A-(int)(A/B)*B; while (A != 1) { if (B-(int)(B/A)*A == 0) { B /= A; break; } cout << (int)(B/A) << ", "; float w = A; A = B-(int)(B/A)*A; B = w; } cout << (int)B << "]" << endl; } }
950 名前:944 [2007/07/26(木) 02:46:42 ] >>949 ありがとうございます!このアルゴリズムを理解して寝ますwww 本当に助かりました☆
951 名前:948 mailto:sage [2007/07/26(木) 02:53:49 ] lexico関数の中の int k はいらないから消しといて><
952 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 05:58:29 ] クソースってのは俺が最初に使った言葉だ、一回使うたびに¢10徴収するニダ
953 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 06:38:34 ] どう考えてもブルドックソースのほうが先
954 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:04:59 ] んじゃブルドックソースに一部を納めるから、クソースを使うたびに¢50徴収する二ダ
955 名前:デフォルトの名無しさん [2007/07/26(木) 09:10:02 ] だれかクイックソートのフローチャートを図付きで詳しく説明してください 俺の頭じゃわかりません><
956 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:10:39 ] >>955 ¢50払え
957 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:11:48 ] >>955 www.google.co.jp/search?q=%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
958 名前:デフォルトの名無しさん [2007/07/26(木) 09:21:14 ] ググってもわかりやすいフローチャートが出ないんだ(´・ω・`)
959 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:23:06 ] あれで理解できないなら諦めろ。所詮、才能の無い奴、理解力の無い奴は 一応学校の規定で単位はもらえるが、適切に行動が起こせないから困る。 今はなんだかんだ言ってもバカでも金で学歴が買える時代だしな。
960 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:40:50 ] >>955 要は再帰呼び出しが理解できないでハマってるんだろうけど フローチャートで書いてもそこんところは分かりやすくならんのよ
961 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:44:20 ] 寧ろ、フローチャートなんか使うから余計に理解しにくくなると思うんだが。
962 名前:デフォルトの名無しさん [2007/07/26(木) 13:56:20 ] トランプかなんかで、試してみれ
963 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:57:03 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): ttp://s-io.mydns.jp/up/1/_/jump/1185417223.c/attatch PASS:c 四則演算のプログラムとして提出したのですがgets関数を使って書き換えろといわれ返されてしまいました 上のプログラムを元にして文字入力(取得)にgets関数を使った物を作ってください。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:C言語 [4] 期限: 7月27日 [5] その他の制限: gets関数をつかっていればそれ以外には特に指定なし よろしくお願いします。
964 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:02:17 ] 教育目的とはいえ今時gets使えとかどこのアホ教授だ
965 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:36:12 ] >>963 void readch(void) /* 1文字を読む、空白は読み飛ばす */ { #if 0 do { if ((ch = getchar()) == EOF) return; } while (ch == ' ' || ch == '\t'); #else static char buf[1000]; static int index; if (index == 0) gets(buf); do { if ((ch = buf[index++]) == '\0') { ch = '\n'; return; } } while (ch == ' ' || ch == '\t'); #endif }
966 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:41:22 ] >>965 改悪にしかなってないのがwarosu 教官どんだけアホなのかと
967 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:45:15 ] >>965 ありがとうございます。 やっぱり無理に書き換えても無駄が増えるだけですよね・・・ 最初から新しく書き直したほうがいいんでしょうか?
968 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:47:15 ] 板谷だろ
969 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:52:53 ] >>967 どう書き直そうがgets()を使う限り改悪にしかならんから諦めろ (というかこのコードなら、例えfgets()であろうと同じことが言える)
970 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:26:16 ] [1] 授業単元:C++実習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4720.txt プログラム問題文に沿って作ったものと、それに2つの要素を追加修正した 2つのプログラムの作成をお願いします。 [3] 環境 [3.1] OS: windows XP [3.2] visual studio 2005 [3.3] 言語: C++ [4] 期限: 2007/07/26 13:00まで [5] その他の制限: 特に無し よろしくお願いします
971 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:12:59 ] 投稿時すでに期限切れなのか
972 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:15:21 ] ほんとだwこれは新しいww
973 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:27:04 ] ごめんなさい、ごめんなさい。 >>970 の期限は [4] 期限: 2007/07/30 13:00まで です。 先生方、お願いしまつ。
974 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:32:00 ] [1] 授業単元:C言語 [2] 問題文 文字列が回文かどうか判定をするプログラムを作成せよ 実行例 文字列を入力してください。 abcdcba(Return) abcdcbaは回文です。 文字列を入力してください。 unko6yy6oknu(Return) unko6yy6oknuは回文です。 文字列を入力してください。 abcdefg(Return) abcdefgは回文ではありません。 [3] 環境 [3.1] Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 7/30まで [5] その他の制限:特になし ポインタを使わなければいけないみたいですがさっぱり分かりません。 先生方、もしよろしければお助けください。お願いします。
975 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:58:32 ] >>974 pc11.2ch.net/test/read.cgi/tech/1184003625/598
976 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:12:28 ] >>974 釣りはとっとけこのクソッタレ野郎 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4758.c
977 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:15:23 ] ワザとやってんのかな
978 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:17:28 ] // >>974 #include <stdio.h> #include <string.h> #include <stdbool.h> bool isPalindrome(const char * word) { unsigned len = strlen(word); if (len == 0) return false; for (unsigned ic = 0; ic < len / 2; ++ic) { if (word[ic] != word[len - 1 - ic]) return false; } return true; } int main() { char buf[200]; scanf("%199[^\n]", buf); printf("%s is%s palindrome.\n", buf, isPalindrome(buf) ? "" : " not"); return 0; }
979 名前:974 mailto:sage [2007/07/26(木) 19:52:31 ] >>975 >>976 >>978 ありがとうございました
980 名前:943 mailto:sage [2007/07/26(木) 20:05:11 ] >>947 >>948 返事遅れてすいませんでした 明日実行してみます ありがとうございました
981 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:21:04 ] >>970 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4759.zip 問題文に沿って作ったものと、2つの各要素を個別に追加したもの計3ファイル 2つの要素を両方追加したファイルが必要なら自分で作ってくろ。
982 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:28:47 BE:94671252-2BP(12)] 次スレ立てました C/C++の宿題を片付けます 94代目 pc11.2ch.net/test/read.cgi/tech/1185452895/
983 名前:プログラミング初心者 [2007/07/26(木) 22:18:40 ] >>936 ありがとうございます。 一度やってみましたがデバッグ後に何すればいいのかわかりません
984 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 22:27:32 ] とりあえず、分かるところまででいいから解読しようとしようよ。
985 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:11:17 ] >>935 同じディレクトリのwc_test.txtを読み込んで、単語数を数えて出力する。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4760.c
986 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 00:04:02 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 以下の円周率を求めるプログラムに、 ニュートン法を適用し、加減乗算のみに書き換えなさい。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4761.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: 特になし [3.3] 言語: C [4] 期限: 2007年7月27日23:00まで [5] その他の制限: よろしくお願いします。
987 名前:デフォルトの名無しさん [2007/07/27(金) 00:33:50 ] [1] 授業単元: プログラム言語 [2] 問題文: 再帰関数を用いて以下のような三角形を印字せよ。 入力:3 * ** *** *の個数も印字せよ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 2007年7月23日22:00まで [5] その他の制限: forで以下のように作ったのですが、再帰の場合の書き方がわかりません。以下を再帰に書き換えるような形で作っていただけると、大変有り難いです。 よろしくお願い致します。 #include<stdio.h> int kazu(int n); main() { int a,b; scanf("%d",&a); b=kazu(a); } int kazu(int n) { int i,j; for(i=1;i<=n;i=i+1) { for(j=0;j<i;j=j+1) { printf("*"); } printf("\n"); } }
988 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 00:42:55 ] >>815 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4762.c 凝りに凝りまくったぜぇ 誰かに丸投げしたのが一目瞭然なほどにな 本当に丸投げスレは地獄だぜフウハァハー
989 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 00:47:56 ] >>987 #include<stdio.h> int kazu(int n); main() { int a,b; scanf("%d",&a); b=kazu(a); printf("%d\n",b);} int kazu(int n) { int i,j; if(n<1)return 0; j=kazu(n-1); for(i=0;i<n;i=i+1) { printf("*"); } printf("\n"); return j+n;}
990 名前:デフォルトの名無しさん [2007/07/27(金) 00:58:54 ] >989さん どうもありがとうございます。 本当に助かりました。
991 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:07:29 ] おねがいします [1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク): 空白または改行で区切られている単語だけからなる文章があるとする。 これを列は15文字以内(全角を1文字、半角は0.5文字とする) にして、最小の行に納めるようにせよ。 注意:単語の途中で改行をはさむことはできない。 (例) 123456789012345<-15文字分はここまで --------ここから----------------- 日本 中国 アメリカ インド フランス イタリア スペイン メキシコ ドイツ カナダ イギリス スイス サウジアラビア 南アフリカ共和国 ブラジル --------ここまで---------------- (実行結果) 日本 中国 アメリカ インド フランス イタリア スペイン メキシコ ドイツ カナダ イギリス スイス サウジアラビア 南アフリカ共和国 ブラジル [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン: gcc2.95-3 [3.3] 言語: C [4] 期限: 8月1日 [5] その他の制限: 無制限(授業でならっていないものでも、自分で勉強して理解したのなら何をつかってもいい)
992 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:10:50 ] 丸投げってことは何も使っちゃ駄目ってことか・・・
993 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:24:04 ] >>991 面白そうな問題だ。ちょっと時間がないんで解けないが・・・ これってナップサック問題っていうんだっけ? あれみたいな感じで、入力内容によっては全パターン検索 しようとしたら膨大な時間になりそうな風に感じるんだが。 そういうの詳しい人いない?
994 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:33:03 ] ナップサックというより組み合わせ計画問題。 グリーディ法でいけそうな問題だね。めんどくさそうだけど
995 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 03:03:10 ] >>935 #include<iostream> #include<string> #include<vector> using namespace std; int main(void){ vector<string> v; string word; int i; while(1){ cin >> word; if(cin.eof() || cin.fail()) break; for(i=0;i<v.size();i++){ if(v[i]==word) break; } if(i>=v.size()) v.push_back(word); } for(i=0;i<v.size();i++){ cout << v[i] << "," << v[i].size() << " "; } cout << endl; return 0; }
996 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 04:18:53 ] #include <iostream> #include <set> #include <string> int main( int argc, char ** argv ) { typedef std::set< std::string > dict_t; dict_t wc; while ( 1 ) { std::string word; std::cin >> word; if ( std::cin.eof() || std::cin.fail() ) break; wc.insert( word ); } for ( dict_t::iterator it = wc.begin(); it != wc.end(); it++ ) std::cout << *it << ", " << it->length() << " "; std::cout << std::endl; return 0; } set<> なり,map<> なりじゃなきゃ遅くてどうしようもないだろうに
997 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 08:13:33 ] >>988 指定にgets使わないといけないとか言ってクレームした出題者がいるから それもgets使わないといけないと思われ。
998 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 08:51:42 ] >>991 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4773.c 全角半角の判定のために非標準の関数wcwidthを使った。
999 名前:998 mailto:sage [2007/07/27(金) 08:54:04 ] >if(feof(stdin) || ferror(stdin)) > break; これは消し忘れ。
1000 名前: ◆mM9WALL8Ws [2007/07/27(金) 08:54:13 ] 1000GET
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。