1 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 02:13:06 ] あなたが解けない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++の宿題片付けます 122代目(実質123代目) pc11.2ch.net/test/read.cgi/tech/1232029287/
331 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:11:38 ] >>315 ./a <ソース gets使ってしまった。 #include <stdio.h> int main() { char s[] = "string", b[1024]; /* string */ do { if(!fgets(b,1024,stdin)) return 1; printf("%d\n", strncmp(b,s,3) ? 1:0); } while(strcmp(b, "XXXX\n")); return 0; }
332 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:07:12 ] >>329 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8982.txt
333 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:10:26 ] >>329 比較幅って言葉の意味がわかんね。
334 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:17:02 ] >>332 さんありがとうございます。
335 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:54:07 ] [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。 ※qsort関数 書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void)) [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([09年3月17日まで] ) [5] その他の制限:
336 名前:335 mailto:sage [2009/03/17(火) 00:58:08 ] お願いします。この問題とかないと単位がやばいです。
337 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:01:11 ] >>335 入力の形式が分からん。勝手に決めていいのか?
338 名前:335 mailto:sage [2009/03/17(火) 01:05:26 ] いいです。レスください!
339 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:32:54 ] >>335 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8983.txt
340 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:44:02 ] >>339 修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8985.txt
341 名前:335 mailto:sage [2009/03/17(火) 06:18:57 ] >>340 ありがとうございます。
342 名前:335 mailto:sage [2009/03/17(火) 07:09:00 ] すいません!ヘッダとしてが必要という条件が出ているのを忘れてました。どなたか <stdlib.h>を使った>>335 をレスお願いします!
343 名前:335 mailto:sage [2009/03/17(火) 07:10:59 ] すいません訂正ですヘッダとして<stdlib.h>が必要という条件が出ているのを忘れてました。どなたか <stdlib.h>を使った>>335 をレスお願いします!
344 名前:335 mailto:sage [2009/03/17(火) 07:16:32 ] >>340 さんせっかくレスくれたのに申し訳ありません。
345 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:39:30 ] >>1 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
346 名前:335 mailto:sage [2009/03/17(火) 07:45:25 ] そこをなんとか!せっぱつまってるんです。
347 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:48:51 ] 340の void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void*)); の代わりに #include <stdlib.h> にすりゃいいだけだろw
348 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:51:12 ] >>346 qsort()のプロトタイプ宣言を#include<stdlib.h>に置き換える
349 名前:335 mailto:sage [2009/03/17(火) 08:00:10 ] >>347 さん>>348 さんありがとうございます。
350 名前:デフォルトの名無しさん [2009/03/17(火) 12:41:52 ] 論より証拠、言葉よりソースコード、日本語よりプログラム言語 分かったか?最近、口先だけの、新入りは?
351 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:02:20 ] >>350 ソースでくれ
352 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:27:20 ] >>351 ttp://www.bulldog.co.jp/products/home/
353 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:28:06 ] いまどきそれかよw
354 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:34:08 ] >>353 ttp://www.otafuku.co.jp/
355 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:48:04 ] 腹減るじゃんか。
356 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:06:26 ] やっぱり今時はおたふくだよねー
357 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 16:46:44 ] よろしくお願いします。 [1] 授業単元: プログラミング実習 [2] 問題文 キーボードから名前と年齢を入力し、入力した順序につながったリストを作成して、それを利用して表示するプログラムを作成しなさい。 (実行例) >%a.out Please,write down your name >taro How old are you? >27 Continue?yes(1)or no(0)>1 Please,write down your name >hanako How old are you? >27 Continue?yes(1)or no(0)>0 taro /27 hanako /27 >% [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([09年3月17日まで] ) [5] その他の制限: (なし)
358 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:31:22 ] このプログラム./a.outしても%がでてしまうのですがどこを直せばいいですか? ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
359 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:45:20 ] >>357 張り付いてリロードリロード大変でしょ? ネタ投下したらしばらく 本読むなりバイトするなり有意義に時間使いなよ
360 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:50:20 ] 323 :デフォルトの名無しさん :2009/03/16(月) 21:17:48 >>320-322 むしゃくしゃしてやった。反省はしていない。 >>316 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt ./a std <8981.c <-- これでOK
361 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:53:11 ] >>360 いやそれじゃだめなんすよ…
362 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:06:35 ] ttp://tokyo-ct.net/usr/kosaka/for_students/jissen1/akiyojissen1/kougi17.html BM法
363 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:10:50 ] >>362 嫌そうじゃないだろう。 (実行例) % ./a.out <8981.c 入力した文字列は:#include <stdio.h> 検索する文字列を入力してください:std 10 文字目で一致しました。(一致する文字列が見つかりませんでした。) % でOK?
364 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:15:51 ] >>357 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8986.c
365 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:17:52 ] え?./a.out<8981.cって入力するんですか?
366 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:19:49 ] >>364 さん。ありがとうございます。
367 名前:360 mailto:sage [2009/03/17(火) 18:22:37 ] >>361 以下のように入力すると答えが出る。 % ./a.ou std <8981.c 10 %
368 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:34:47 ] >>357 364に先越されたorz... #include<stdlib.h> #include<stdio.h> typedef struct P{struct P*x;char n[64];int a;}P; P h,*c=&h;int q; int main(){  for(;   c->x=malloc(sizeof(*c)),c=c->x,c->x=0,   printf("Please,write down your name >"),scanf("%63s",&c->n),   printf("How old are you? >"),scanf("%d",&c->a),   printf("Continue?yes(1)or no(0)>"),scanf("%d",&q),q;  );  for(c=&h;c=c->x;printf("%s /%d\n",c->n,c->a)); }
369 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:38:53 ] >>368 さんありがとうございます。
370 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:39:00 ] くせぇくせぇ、後だし麻呂の臭いがぷんぷんすんぜ
371 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:40:48 ] こりゃ〜生粋のクソースだ、クソースを消毒だ〜
372 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:31:03 ] >>357 オリジナルは>>368 さんのソース。 #include<stdio.h> typedef struct P { struct P *x; char name[64]; int age; } Q ; int main(){ Q h, *c = &h; int qa; char dmy[2]; do { c->x = malloc(sizeof(*c)); c = c->x; c->x = 0; printf("Please,write down your name >"), fgets(c->name, 64, stdin); c->name[strlen(c->name)-1] = '\0'; printf("How old are you? >"), scanf("%d", &c->age); printf("Continue?yes(1)or no(0)>"), scanf("%d%c", &qa, dmy); } while (qa); for( c = &h; c = c->x; ) printf("\n%s /%d", c->name, c->age); }
373 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:19:37 ] ネタ切れー?
374 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:35:51 ] mallocしたあとfreeしなくていいのか?
375 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:37:47 ] 課題だから書かないとダメってぐらいのレベルじゃね?
376 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:39:26 ] いまどきのハードウェアでfreeしなくちゃならんヤツなんて皆無だろ freeとか気取ってやってるソース見たらデスクトップ破りたくなる
377 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:41:12 ] >>376 好きなだけ破ってろよマヌケ
378 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:04:22 ] >>377
379 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:50:49 ] >>357 >>374 free追加したぞ。>>376 のデスクトップ破れ。 #include<stdlib.h> #include<stdio.h> struct P{struct P*x;char n[64];int a;}h,*c=&h,t; int main(){  for(;   (c=c->x=malloc(sizeof(*c)))->x=0,   printf("Please,write down your name >"),scanf("%63s",&c->n),   printf("How old are you? >"),scanf("%d%*c",&c->a),   printf("Continue?yes(1)or no(0)>"),getchar()-'0';  );  for(c=&h;c=c->x;t=*c,free(c),c=&t)printf("%s /%d\n",c->n,c->a); }
380 名前:今年度最高峰のレス [2009/03/18(水) 03:28:13 ] >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376
381 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:35:35 ] ハードがどうとか言う前に、例えmainの最後だろうと、メモリの動的確保をしたら それに対してfreeはセットで使うのが望ましいのだが
382 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:49:28 ] struct P tいらんかった。  for(;c=h.x;h=*c,free(c))printf("%s /%d\n",c->n,c->a);
383 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:58:14 ] たまに、プログラムが異常終了して、跡が残ることはある。 自分は大学で、ネットワーク関連の管理に携わったことがあるが、 ユーザがログオフしても、まだログインしたまま残ることもあった。 そう、コンピュータやプログラムには完璧なんて無いんだよ。 だから、こうやって今も、昔から色々と改善がされているんだろ? その改善の経緯をもとに、こういったものも作られていくんだよ。 ただ単に、電子計算機に数値を与えて、処理をすれば良いわけじゃない、 システムを運営するのは。
384 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:01:14 ] どこを縦読み?
385 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:06:27 ] ネットゲームでクライアントを終了してもキャラがサーバーに残って 再ログインしようとしても入れませんでしたw
386 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:19:57 ] 大学でUNIXを使っていたが、まぁそれは管理者が今も普通に使っている OSの基本。学生がワークステーションからログインして、終了するときに ログオフの手続きをせずに、接続、作業で使っているプログラムを Windowsのウィンドウの右上にあるクローズボックスで閉じてしまう人もいる。 それ以前に、コンピュータの電源スイッチを押して起動は出来るのだが 終了する際に、OSの終了手続きを取らずに電源を切ってしまった人もいた。 それにおけるトラブルも体験したさ。そういった、管理者側の立場になれば、 エンドユーザの身勝手さや、それを阻止する手立てや仕組みを作るのも、 プログラマーには必要なのさ、ワトソン君。
387 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:51:52 ] また、OSも完璧ではない。プログラムを作った側の措置が不十分だったのか、 あるいはハードウェアに問題があったのか?それに応じてデバッグされることもある。 ただ、それも本当は、プログラマーの思い違いにより、作り直せば解決するものもあるが、 巨大なプロジェクトでいくら個別にモジュールを改良できるとしても、根幹、組み合わせ方に 問題があれば、やり直すしかない。ただ、この世には既にある定石、常套手段を用いてやれば 特に余計なことをしなければ、問題は起きないもんだよ。 しかし、人間の行動までは、正直、予期できない。今もなお、過去から続く争い。 裁判、解決のための判例作り。そして、判例に基づいて、今後は処理される人間同士の トラブル。PCのトラブルなんて、電子計算機をちょちょいと弄れば済むことが多く、 楽なものですね、ポワロ殿。
388 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:02:47 ] >>386 ,387___ / || ̄ ̄|| ∧∧ | ||__|| ( ) | ̄ ̄\三⊂/ ̄ ̄ ̄/ | | ( ./ / ___ ゴキッ / || ̄ ̄|| <⌒ヽ )) | ||__|| < 丿 | ̄ ̄\三⊂/ ̄ ̄ ̄/ | | ( ./ / ___ / || ̄ ̄|| ∧∧ | ||__|| ( ) | ̄ ̄\三⊂/ ̄ ̄ ̄/ | | ( ./ / ___ / || ̄ ̄|| | ||__|| ミ ゴトッ | ̄ ̄\三⊂/ ̄ ̄ ̄/ミ ,'⌒> | | ( ./ / l、_>
389 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:17:40 ] それで、結局、例え初歩的だろうとプログラムを作る以上は、何かしら そういったシステムに関わる部分の知識も必要になるわけだろ? 第一、APIを使っているだけでも、既に出来上がったその仕組みを知ることになるし。 麻ー呂っくの後に、振りーを忘れないで賜う。
390 名前:372 mailto:sage [2009/03/18(水) 15:41:13 ] 実体のコピーを省く。 P *t; for( c=h.x; c!=0; c=t) printf("\n%s /%d", c->n, c->a), free((t=c->x,c));
391 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:49:31 ] 病気が進行してるw
392 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:02:20 ] 聞き方が悪いかもしれませんが hairetsu[0] = 10 hairetsu[1] = 5 hairetsu[2] = 13 ... というようなものにたいして rank[0] = 1 rank[1] = 0 rank[2] = 2 ... というような感じにしてくれる関数はありますか? それとも,自分で作らないとないですか?
393 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:11:30 ] >>392 無いです multimap もしくは map にいれてイテレータで取り出せばおk
394 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:14:41 ] 何がしたいのか訳わからん。エスパー検定? rankと聞くと行列の階数を思い出す。 なんか、肝心な所を省略してません?
395 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:15:50 ] hairetsuのそれぞれの要素の大小関係をrankに0から入れていると? 並び替えの応用でやってみ。
396 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:25:42 ] >>392 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int hairetsu[10], rank[10], i, j, temp; srand(time(NULL)); for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100; for(i=0; i<10; i++) { for(j=9; j>i; j--) { if(hairetsu[rank[j]] < hairetsu[rank[j-1]]) { temp = rank[j]; rank[j] = rank[j-1]; rank[j-1] = temp; } } } for(i=0; i<10; i++) printf("hairetsu[%d] = %2d, rank[%d] = %d\n", i, hairetsu[i], i, rank[i]); return 0; } こんな感じにrankの方をソートしても可
397 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:42:36 ] >>325
398 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:59:18 ] >>397 どした?
399 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:15:15 ] >>398 やらないか?
400 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:19:17 ] >>396 ん?んんんっ?
401 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:04:01 ] struct{int hairetu; int rank;} data[10]; rankには0を初期値として入れておいて、dataをhairetuでソートして、 次にrankに0〜9をセットして、もう一度、dataをrankでソート。 これは、「バブルソート」という名前。 #include <stdlib.h> #include <time.h> int main(void) { int hairetsu[10], rank[10], i, j, temp; srand(time(NULL)); for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100; for(i=0; i<9; i++) { for(j=9; j>i; j--) { if(hairetsu[j] < hairetsu[j-1]) { temp = rank[j], rank[j] = rank[j-1], rank[j-1] = temp; temp = hairetsu[j], hairetsu[j] = hairetsu[j-1], hairetsu[j-1] = temp; } } } for(i=0; i<10; i++) printf("hairetsu[%d] = %2d, rank[%d] = %d\n", rank[i], hairetsu[i], rank[i], i); return 0; }
402 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:18:19 ] stdio.h 同じ値でもrankの中の値が違う
403 名前:392 mailto:sage [2009/03/18(水) 23:24:12 ] 適当な聞き方をしてしまってすみません。 ただ配列の値がでかい順や小さい順で順位をつけられないかなと思ったので。 ありがとうございました。
404 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:37:12 ] [1] 授業単元:プログラミング実習 [2] 問題 ガウス・ジョルダン法+ピボット選択法を用いて以下の連立1次方程式を解くプログラムを作成しなさい。 2x+3y+z=4 4x+y−3z=-2 −x+2y+2z=2 [3] 環境 [3.1] OS: (UNIX) [3.2] : (gcc) [3.3] 言語: (C) [4] 期限: ([09年3月19日12:00まで] ) [5] その他の制限: (なし) よろしくおねがいします。
405 名前:デフォルトの名無しさん [2009/03/18(水) 23:50:24 ] [1] 授業単元: アルゴリズム [2] 問題文:ハッシュ探索(チェイン法)のプログラムを作成しなさい。 1・データファイル「j2」を読み込みなさい。 2・任意の語彙がいくつ使われているか調べなさい。 3.データの追加、削除、表示ができるようにしなさい。 データはyahooのtopページをテキスト化したものとする。 検索文字列:任意の文字(列)、(例として「配信」など)の使用回数を 調べなさい。 画面の表示例は、 1:表示 2:検索(任意の文字検索&任意の文字の個数) 3:追加 4:削除 5:終了 以上のことをふまえたプログラムをサンプルを変更して作りなさい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 3月19日夕方まで [5] その他の制限: ライブラリ関数はサンプル以外使用しない。
406 名前:デフォルトの名無しさん [2009/03/18(水) 23:51:43 ] >>405 サンプルはこれです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8989.txt
407 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:58:15 ] よろしくお願いします。 [1] 授業単元:データ構造アルゴリズム [2] 問題文(含コード&リンク):タグ名をpricetype,メンバ名をteika,waribikiとする構造体kakakuとタグ名goodstype, メンバ名をname[30],kakaku(←構造体)とする要素数10個の構造体配列goodsを作成し、商品名と定価を入力すると商品名、 定価、割り引き価格の一覧が表示されるプログラムを作成しなさい。」ただし、割引価格は、定価が1000円以上の場合は 定価の2割引、それ以外は1割引とする。また、表示するときはポインタを使用すること。 [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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
408 名前:407 mailto:sage [2009/03/19(木) 00:04:18 ] すいません環境等書き忘れていましたosはUNIX、コンパイラはgcc期限無期限その他制限なしでお願いします。
409 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:56:43 ] >>399 何を?
410 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:56:56 ] >>392 >>396 への追加。 #include <stdio.h> #include <time.h> int main(void) { int hairetsu[10], rank[10], index[10], i, j, temp; srand(time(NULL)); for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100; for(i=0; i<9; i++) { for(j=9; j>i; j--) { if(hairetsu[rank[j]] < hairetsu[rank[j-1]]) { temp = rank[j]; rank[j] = rank[j-1]; rank[j-1] = temp; } } } for(i=0; i<10; i++) { printf("hairetsu[%d] = %2d, index[%d] = %d\n", i, hairetsu[i], i, rank[i]); index[i] = i; } for(i=0; i<9; i++) { for(j=9; j>i; j--) { if(rank[index[j]] < rank[index[j-1]]) { temp = index[j]; index[j] = index[j-1]; index[j-1] = temp; } } } for(i=0; i<10; i++) printf("rank[%d] = %d\n", i, index[i]); return 0; }
411 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:17:31 ] >>410 人のコードに無駄なもの付け足すなw for(i=0; i<10; i++) index[rank[i]] = i; で十分だろうが
412 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:01:36 ] ありがとうございます。それで、2回もソートする必要ないですね。 やってみます。
413 名前:407 mailto:sage [2009/03/19(木) 07:59:06 ] すみません言語c言語で期限は今日のお昼までにお願いします!
414 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 08:42:42 ] >>407 #include<stdio.h> #include<string.h> #include<math.h> typedef struct pricetype{int teika, waribiki;}kakaku; typedef struct goodstype{char name[30];kakaku kakaku;}goods; int get_waribiki(int price){ return (price>=1000)?round(price*0.8):round(price*0.9); } void print_goods(goods *p){ printf("name:%s teika:%d waribiki:%d\n", p->name, p->kakaku.teika, p->kakaku.waribiki); } int main(void){ goods goods[10]; int i, price, goods_num; char buf[30], *p; for(i=0;i<10;i++){ printf("Input name : "); if(fgets(buf, sizeof(buf), stdin)==NULL) break; if((p=strchr(buf, '\n'))) *p='\0'; strcpy(goods[i].name, buf); input_price: printf("Input price : "); if(fgets(buf, sizeof(buf), stdin)==NULL) break; if(sscanf(buf, "%d", &price)!=1) goto input_price; goods[i].kakaku.teika=price; goods[i].kakaku.waribiki=get_waribiki(price); } goods_num=i; for(i=0;i<goods_num;i++) print_goods(goods+i); return 0; }
415 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 09:21:23 ] #include <stdio.h> #define N 10 struct goodstype { char name[30]; /* 商品名 */ struct pricetype { int teika; /* 定価 */ int waribiki; /* 割り引き価格 */ } kakaku; } goods[N]; int main(void) { int i, num; struct goodstype *work; for(i=0; i<N; i++) { work = &goods[i]; printf("商品名[%d/%d]?",i+1,N); fgets(work->name, 30, stdin); work->name[strlen(work->name)-1] = '\0'; do { printf("定価[%d/%d]?",i+1,N); num = scanf("%d", &work->kakaku.teika); getchar(); } while(num == 0); if(work->kakaku.teika >= 1000) work->kakaku.waribiki = work->kakaku.teika * (1-0.2); else work->kakaku.waribiki = work->kakaku.teika * (1-0.1); } printf("商品名,定価,割り引き価格\n"); for(i=0; i<N; i++) { work = &goods[i]; printf("\"%s\",%d,%d\n",work->name, work->kakaku.teika, work->kakaku.waribiki); } return 0; } >>407
416 名前:407 mailto:sage [2009/03/19(木) 16:23:45 ] >>415 さんありがとうございます
417 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 01:16:32 ] >>405 こうか? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8991.txt サンプルにファイルを読む関数がないんだが、「読み込みなさい」とか「調べなさい」は手作業? 探索や削除が間違っとる気がして変えたが、間違ってなかったらマクロを両方とも100に戻しといてくれ。
418 名前:417 mailto:sage [2009/03/20(金) 01:48:36 ] ごめん。寝付けん暇つぶしでやっとったら、期限見落としとったorz
419 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:59:26 ] ネタ投下キボン
420 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 19:57:17 ] 問題出す方も大変だ。 [1] 授業単元: [2] 問題文(含コード&リンク): pc11.2ch.net/test/read.cgi/tech/1232627790/211 【 課題 】 課題1. 以下のような賭をすることを考えます. 1. 開始時の所持金をA円とします. 2. 目標とする金額をB円とします. 3. さいころを投げて偶数の場合は1円を獲得,奇数の場合は1円を失います. 4. 所持金が目標額のB円に到達すれば賭は終了,また所持金が0になった場合は破産で終了とします. 数学的な考察をすると,この賭の期待値はA円となります.つまり,何回もこの賭を続けていると,成功したり破産したりしますが,平均すると元の所持金しか得られないということです. また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります. たとえば,開始時の所持金をA=8円,目標額をB=10円とすると,勝つ確率は8割,1ゲームあたり平均すると(10-8)×8=16回,さいころを投げることになります. このことは,賭をしても儲からない,ことを意味していますね. このことを確かめるプログラムを作成しなさい.
421 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:02:31 ] 入力した文字に対応するモールス信号を出力するプログラム、お願いします
422 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:12:20 ] >>1
423 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:14:19 ] >>421 テンプレ嫁
424 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:17:15 ] 読んだけど課題じゃないし書くのめんどくさい 頼んだぜ
425 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:06:55 ] >>424 ・・・−−−・・・
426 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:39:28 ] >このことは,賭をしても儲からない,ことを意味していますね. ダウト。一部の人間が損をし(破産し)、一部の人間が儲かることを意味している。
427 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:46:19 ] 分散と試行回数による
428 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:51:43 ] 問題の問題点を指摘するルートに入ってるw >問題出す方も大変だ。 本人も問題を出すつもりだったのだから,本望かw
429 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:54:33 ] >また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります. マジで?
430 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:21:08 ] [1] 授業単元:C言語 [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm [3] 環境 [3.1]OS:Win [3.2] VC 6.0 [3.3]言語:C [4]期限:3月24日 [5]その他の制限:main関数以外に自作の関数を利用する どなたかよろしくお願いします。
431 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:39:02 ] >>430 最高に間抜けだな
432 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:41:04 ] 前スレにあった気がする
433 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:42:14 ] スレと時刻的に8992だろ?
434 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:57:50 ] >>430 8992で合ってんなら kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8993.txt
435 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:38:25 ] >>420 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i, j, targetMoney, startMoney, currentMoney; int totalGame = 10000, totalDice = 0, totalWin = 0; srand(time(NULL)); printf("所持金を入力してください:"); scanf("%d", &startMoney); printf("目標額を入力してください:"); scanf("%d", &targetMoney); for(i=0; i<totalGame; i++) { for(j=1, currentMoney = startMoney; ; j++) { if((int)(rand() / (RAND_MAX + 1.0) * 6) & 1 ) currentMoney++; else currentMoney--; if(currentMoney == targetMoney) { totalWin++; break; } if(currentMoney == 0) break; } totalDice += j; } printf("勝率%.2f%% 平均回数%.2f\n", 100.0 * totalWin / totalGame, (double)totalDice / totalGame); return 0; }
436 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:08:02 ] >>434 すみません、8992です ありがとうございました
437 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:29:33 ] [1] 授業単元:基礎演習 [2] 問題文:ttp://www.pref.fukushima.jp/pc-concours/2009/03/pdf/2008honsen.pdf 10ページ目の6問目です [3] 環境 [3.1] OS:Win [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C 考えれば考えるほどわからなくなっていましました… 良ければよろしくお願いします。
438 名前:437 mailto:sage [2009/03/22(日) 02:38:00 ] 437です。 [4]期限:4月1日12:00 [5]その他制限:特になし 改めてお願いします。
439 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:56:56 ] >>437 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8994.c
440 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:58:58 ] あ、printfに\n入れるの忘れてた
441 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:05:55 ] >>437 #include <stdio.h> #include <stdlib.h> int main() { int n, *data, key, begin, end, mid, i; while(1){ scanf("%d", &n); if(n <= 0) break; data = (int *)malloc(sizeof(int) * n); for(i = 0; i < n; i++) scanf("%d", &(data[i])); scanf("%d", &key); begin = 0; end = n - 1; for(i = 0; begin <= end; i++){ mid = (begin + end) / 2; if(data[mid] == key){ i++; break; } if(data[mid] < key) begin = mid + 1; else end = mid - 1; } printf("%d\n", i); free(data); } return 0; }
442 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:06:27 ] 速いなorz
443 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:11:59 ] i++を二箇所に書くくらいならi=1からはじめればいいのに。
444 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:23:14 ] begin > endで抜けることを考えてi++2つとしたが、非常に頭悪いことをしてる気がする。
445 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:53:53 ] こんなプログラムメンテしたくない。というか、プログラミングのセンスないね、チミ。
446 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:54:54 ] >>445 先生のセンスをこのスレの奴らに見せ付けてやってください!
447 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 09:22:37 ] >>445 うん、ないよ。でも、趣味でしかないし、1人でのんびりやれればいいから 下手の横好きでもいいかなー。
448 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:03:53 ] >>445 メンテじゃなくて、先輩社員が作ったプログラムを触る仕事しかさせてもらえないんだろ?