- 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/
- 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
メンテじゃなくて、先輩社員が作ったプログラムを触る仕事しかさせてもらえないんだろ?
|

|