1 名前:デフォルトの名無しさん [2009/06/24(水) 23:28:21 BE:454421568-DIA(282072)] あなたが解けない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++の宿題片付けます 127代目 pc12.2ch.net/test/read.cgi/tech/1244449887/
175 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 02:26:03 ] >>169 gcc と objdump が使えるなら $ gcc a.c -c $ objdump -d a.o > a.s とかすればよかったとおもう
176 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 02:33:49 ] gccならgcc -S foo.cで良くないか わざわざディスアセンブルせんでも
177 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 02:43:03 ] >>170 >>174 さんのプログラムを使って作ってみたけどコアを吐く kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9581.txt 行列式ゼロなのか、それともピボット選択の必要があるのか
178 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 03:02:55 ] >>162 {0,-9
179 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 03:15:45 ] >>178 すみませんコピペミスしてました でも、そこを直してもやっぱりコアダンプです
180 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 03:18:17 ] 行列が潰れている(行列式がゼロ)なんじゃないでしょうか? それともやっぱりピボット選択した方がいいのかなあ? デバッガ掛けてみたらやっぱり tmp がゼロになる時があり Division by Zero という事でした
181 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 03:37:11 ] >>162 #define N 8
182 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 09:09:12 ] >>181 あら本当だありがとう でもこれじゃ未知数8、数式は7しかない これじゃ解けませんぜ旦那 >>170 どうする?元の行列もう一列足りないよ
183 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 09:11:56 ] と思ったら #define N 7 でOKなのねシクシク という事で上げ直し >>170 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9582.txt 学校行ってくる
184 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 12:39:00 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9583.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: c++6.0 [3.3] 言語:C [4] 期限:6/29 [5] その他の制限: よろしくお願いします。
185 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 12:45:43 ] >>184 > B入出力例 こうならなければ修正する これって授業中に「こうならなければ〜になるように修正する」って言われてるとおもうんだけど 「こうならなければ、こうなるようにプログラムを修正する」って話?
186 名前:デフォルトの名無しさん [2009/06/29(月) 12:49:58 ] 1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9584.txt ヒントから表を並び替えて、 1) 総点順に並び換えよ。 2) 各科目別成績順に並びかえよ。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: C++ [3.3] 言語:C 言語 [4] 期限:6/29 [5] その他の制限: 並び替えはdo,for,if,whileで習いました。 お手数ですがよろしくお願いします。
187 名前:デフォルトの名無しさん [2009/06/29(月) 13:01:28 ] for(i=0;i<1800;i++) { fprintf(fpw,"[09x%4d]",i); } のようにやると [09x@@@0] [09x@@@1] [09x@@@2] …のようになってしまいます(@はスペ−ス)。 [09x0000] [09x0001] [09x0003] …にしたいのですがやり方が分かりません。 教えてください
188 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 13:02:48 ] %04d
189 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 13:32:39 ] >>186 (9584.c) >>113 (9568.jpg) 問題 >>131 (CODE) 解答
190 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 14:05:06 ] >>186 名前さんは全部0点のわけだ。CSVファイル経由なんかだとよくあることだけどね。
191 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 14:13:04 ] 確実にデータ管理方法がおかしいことによる弊害ですねわかります
192 名前:デフォルトの名無しさん [2009/06/29(月) 15:42:04 ] [1] 授業単元:情報処理 [2] 問題文(含コード&リンク):http: //kansai2channeler.hp.infoseek.co.jp/cgi- bin/joyful/img/9587.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日 06月30日20:00まで [5] その他の制限: 特にありません。 5問ありますが、5問目は必須ではないのでスルーして下さってもかまいません。
193 名前:192 [2009/06/29(月) 15:46:26 ] リンク先の貼り付け失敗しました… kansai2channeler.hp.infoseek.co.jp/cgi- bin/joyful/img/9587.txt
194 名前:46 [2009/06/29(月) 16:55:11 ] >>48 レスさんくす。 それでやってみたのですが、2とか4とか2のn乗の数の場合うまくいかないのですが。
195 名前:デフォルトの名無しさん [2009/06/29(月) 17:16:57 ] >>192 とりあえず、1問目だけ。 テキストの整形なんかは、適当に直して。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9588.txt 2問目以降は、 クイックソート, シェルソート, 挿入ソート, 選択ソート、マージソート の、ベースになるソースとかない? 自前で書くと、細部の実装が授業の内容と合わなくなりそうだけど。
196 名前:デフォルトの名無しさん [2009/06/29(月) 17:17:23 ] >>189 さん >>131 (CODE) 解答の中のseito,returnなど ならってないものが多くてわかりません。 授業でならったdo,for,if,whileを使っていただけると とてもありがたいのですが。
197 名前:デフォルトの名無しさん [2009/06/29(月) 17:21:55 ] >>194 while(n < x){ n *= 2; k++;} nが2のk剰「より大きい」 while(n <= x){ n *= 2; k++;} nが2のk剰「以上」
198 名前: ◆/91kCCQXBo mailto:sage [2009/06/29(月) 17:53:49 ] >>186 >>196 教室で習ったソート(並び替え)のCソースをくれると、参考にする、かも。 #include <stdio.h> #include <stdlib.h> #define n 9 /* 生徒の数+1 */ #define m 7 /* 科目の数+2 */ int cmp(const int *a, const int *b) { int t = a[1] - b[1]; return (t==0)?0:(t>0?1:-1); } int main() { int k; int index[n][2]; /* ここからは変更無し */ //char namae[n][5] /* ここまでは変更無し */ //printf("%6.0f\n",goukei[i]); } for(k=m-2; k>=0; k--) { /* 科目数のループ */ printf("\n%sの点数で並び替え\n", kamoku[k+1]); if(k == m-2) for(i=1; i<n; i++) index[i][0] = i, index[i][1] = goukei[i]; else for(i=1; i<n; i++) index[i][0] = i, index[i][1] = seiseki[i][k]; qsort(&index[1][0], n-1, sizeof(int)*2, (int (*)(const void*, const void*))cmp ); for(i=1; i<n; i++) { /* 生徒数のループ */ printf("%s", namae[index[i][0]]); for(j=0; j<m-2; j++){ /* 科目数のループ */ printf("%6.0f",seiseki[index[i][0]][j]); } printf("%6.0f\n",goukei[index[i][0]]); } } return 0; }
199 名前:デフォルトの名無しさん [2009/06/29(月) 18:02:17 ] >>186 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9589.txt できる限り、簡単に書いてみた。
200 名前:デフォルトの名無しさん mailto:9590.txt [2009/06/29(月) 18:23:20 ] >>198 さん >>199 さん ありがとうございます。 一応、授業でならった並び換えのCソースをはっときます。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9590.txt
201 名前:デフォルトの名無しさん [2009/06/29(月) 18:38:01 ] [1] 授業単元:計算機言語T [2] 問題文(含コード&リンク) キーボードから自然数nを1個ずつ入力する。入力を終える場合は0以下を入力する。 入力終了後、入力した自然数の内、偶数と奇数がそれぞれ何個であったかを表示するプログラムを作成せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (提出準備のため[2009年06月30日AM2:45まで] ) [5] その他の制限 習った範囲は ・if文(if else文を含む) ・switch文 ・for文(無限ループ含む) 偶数と奇数がそれぞれ何個あったか数える部分のプログラムが???です。 お願いします。
202 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 19:03:51 ] >>201 こんなんでどうでしょ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9591.c
203 名前:デフォルトの名無しさん [2009/06/29(月) 19:10:42 ] [1] 授業単元:画像処理 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9592.txt u9.getuploader.com/himajinn/download/190/DLL_files.zip [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:7月1日まで [5] その他の制限: 2問あります
204 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 19:21:00 ] [1] 授業単元: コンパイラの構成 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9593.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月7日 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) よろしくお願いします。
205 名前:デフォルトの名無しさん [2009/06/29(月) 19:37:21 ] >>195 ありがとうございます。 ソースはないですねぇ… 何と言うか、出来れば何でもいいような感じなので特に気にしなくて良いかと思います。
206 名前:184 mailto:sage [2009/06/29(月) 19:42:50 ] >>185 そういうことです。ヒントのプ口グラムをから作る感じです。よろしくお願いします
207 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 19:46:38 ] シェルと挿入は前スレ807の使えば?
208 名前: ◆YtFiiqjbeo [2009/06/29(月) 19:49:27 ] 【質問テンプレ】 [1] 授業単元:プログラミング言語c [2] 問題文(含コード&リンク): www.dotup.org/uploda/www.dotup.org184216.txt.html [3] 環境 [3.1] OS:Windows [3.2] vc++ [3.3] 言語: C [4] 期限: 06月29日23:59時まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 名前と偏差値(最大10科目まで対応可)が書かれたファイル(最大5000人対応可)を読み込み、 各人の名前、学籍番号、平均偏差値などを出力ファイルに書き込むとともに、 平均偏差値上位5名を抽出してDOS窓表示するプログラムを作りなさい。 1、入力と出力のはおよび科目数はキーボード入力 2、ファイルからの読み込みは一度のみ、名前は二次元文字配列、偏差値は二次元数値配列に読み込むこと 実行例www.dotup.org/uploda/www.dotup.org184298.txt.html お願いします
209 名前:201 [2009/06/29(月) 19:56:02 ] >>202 有難う御座います。 ズバリですね。
210 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:25:23 ] [1] 授業単元:基礎プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9594.txt [3] 環境 [3.1] OS: Windows Vista [3.2] Visual Studio 2008 [3.3] 言語: C++ [4] 期限:7月2日まで [5] その他の制限:できるだけ元のソースを弄らずにお願いします。
211 名前:デフォルトの名無しさん [2009/06/29(月) 22:34:52 ] 次の条件判断文を使うケースをフローチャートにせよ 変数aの値がbより小さい場合には、『aはbより小さいです』と表示させ、大きい場合には"a=a+b"を計算させる 文字変数mの中身が'a'ならば、『aが格納されています』と表示させて、'a'でないならば『'a'でない文字が格納されています』と表示させたあと、変数bとcを使った『b=b+c』を計算する。 変数aが、変数bより小さい場合には、『aはbより小さいです』と表示し、変数bより大きい場合には、『aはbより大きいです』と表示し、変数bと等しい場合には、『aとbは等しいです』と表示する #include<iosteam> using namespace std; int main{ return 0; } は多分いいと思いますが
212 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:35:17 ] >>210 goukei += kata[i]; → goukei += ninzuu[i];
213 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:47:57 ] [1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク) アルゴリズムの異なる2つのプログラムを作成し、処理時間の違いを比較せよ。 できるだけ処理時間の違いが顕著なもの。 例:マージソートとバブルソート [3] 環境 [3.1] OS:Windows [3.2] Visualstudio2008 [3.3] 言語:C++ [4] 期限:2009年7/7 [5] その他の制限:
214 名前: ◆/91kCCQXBo mailto:sage [2009/06/29(月) 23:20:13 ] >>186 >>200 成績一覧(バブルソート) #include <stdio.h> #define n 9 /* 生徒の数+1 */ #define m 7 /* 科目の数+2 */ int main() { int k, S; int index[n][2]; /* ここからは変更無し */ //char namae[n][5] /* ここまでは変更無し */ //printf("%6.0f\n",goukei[i]); } for(k=m-2; k>=0; k--) { /* 科目数のループ */ printf("\n%sの点数で並び替え\n", kamoku[k+1]); if(k == m-2) for(i=1; i<n; i++) index[i][0] = i, index[i][1] = goukei[i]; else for(i=1; i<n; i++) index[i][0] = i, index[i][1] = seiseki[i][k]; /* 作業用の配列を並び替える(バブルソート) */ for(i=1;i<n-1;++i) for(j=2;j<n+1-i;++j) if(index[j-1][1] < index[j][1]){ S = index[j][1], index[j][1] = index[j-1][1], index[j-1][1] = S; S = index[j][0], index[j][0] = index[j-1][0], index[j-1][0] = S; } for(i=1; i<n; i++) { /* 生徒数のループ */ printf("%s", namae[index[i][0]]); for(j=0; j<m-2; j++){ /* 科目数のループ */ printf("%6.0f",seiseki[index[i][0]][j]); } printf("%6.0f\n",goukei[index[i][0]]); } } return 0; }
215 名前:デフォルトの名無しさん [2009/06/29(月) 23:35:04 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9596.txt [3] 環境 [3.1] OS:Linux [3.2] gcc 3.4 [3.3] 言語:C [4] 期限:2009年6月30日正午まで [5] その他の制限: なし
216 名前:デフォルトの名無しさん [2009/06/29(月) 23:40:08 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): www.dotup.org/uploda/www.dotup.org185487.txt.html [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語:C [4] 期限: 6月30日23:59 [5] その他の制限: 特になし よろしくお願いします
217 名前:デフォルトの名無しさん [2009/06/29(月) 23:45:45 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): www.dotup.org/uploda/www.dotup.org185515.txt [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:6/30 [5] その他の制限: なし
218 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:02:18 ] [1] 授業単元:プログラミングT [2] 問題文(含コード&リンク):入力した数字(最大8行)を, 「*」を用いて花文字で表示するプログラムを作成しなさい. なお,花文字の形状は各自自由に考えてください(可読できれば問題ありません). 例:数字を入力してください:56 **** ***** * * **** ***** * * * **** ***** [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 7月3日 [5] その他の制限:柴田望洋 明解C言語入門編4章まで お願いします
219 名前:211 [2009/06/30(火) 00:16:01 ] if(a < b) { __cout("aはbより小さいです\n"); } else { __a = a + b; } if(m == 'a') __cout("aが格納されています\n"); } else { __printf("\'a\'でない文字が格納されています\n"); } if(a < b) { __cout("aはbより小さいです\n"); } else if(a == b) { __cout("aとbは等しいです\n"); } else { __cout("aはbより大きいです\n"); } じゃあこれをフロートチャートにしてくれませんか?誰でもいいので。
220 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:40:35 ] >>219 フローチャートを書くためのツールをください
221 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 00:56:03 ] >>203 ライブラリうp記念にやってみた 問1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9597.txt 問2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9598.txt
222 名前:デフォルトの名無しさん [2009/06/30(火) 00:56:04 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9599.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: ? [3.3] 言語: C言語 [4] 期限: 7月2日9時 [5] その他の制限: ポインタと配列まで習いました
223 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 01:02:23 ] >>218 こんなんでどうでしょ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9600.c
224 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 01:20:28 ] >>222 #include <stdio.h> #include <stdlib.h> int main(void) { int **p, n, i, j; printf("何段表示しますか?: "); scanf("%d", &n); p = calloc(n, sizeof(int*)); for(i=0; i<n; i++) p[i] = calloc(i+1, sizeof(int)); for(i=0; i<n; i++) { for(j=n-1; j>i; j--) printf(" "); p[i][0] = p[i][i] = 1; for(j=1; j<i; j++) p[i][j] = p[i-1][j-1] + p[i-1][j]; for(j=0; j<=i; j++) printf("%3d ", p[i][j]); putchar('\n'); } for(i=0; i<n; i++) free(p[i]); free(p); return 0; }
225 名前:222 [2009/06/30(火) 01:50:15 ] >>224 の通りに打ち込んでもうまく出来ませんでした>< どうしてなんでしょう?
226 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 02:20:14 ] >>225 エラーの内容をコピペしてみて。
227 名前:デフォルトの名無しさん [2009/06/30(火) 02:20:22 ] >>225 >>224 さんではないですがどんなエラーが出たんでしょうか? 私もコンパイルしてみましたがunknown escape sequence:'\216'と言うエラーが出たので、そこだけ修正してちゃんと動作しました >>224 さんの空白文字を修正をしたものを張っておくのでもしよければどうぞja.pastebin.ca/1478546
228 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 02:31:44 ] >>225 codepadで確認したけど、エラーでなかったよ codepad.org/5h347P3K (入力部分だけ変更してあるので注意 ついでに35段目でオーバーフローすることを確認したw
229 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 02:57:33 ] 半角スペース省略回避の&nbsp;が悪さしてんのか?
230 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 06:50:57 ] >>223 ありがとうございます。 まだ習ってない部分もありますが 解読してみようと思います
231 名前:デフォルトの名無しさん [2009/06/30(火) 07:12:58 ] >>208 お願いします。
232 名前:222 [2009/06/30(火) 08:33:36 ] 正しくコンパイルできてエラーは出ませんでしたが 数字を入力したあとになにも表示されませんでした。 今教えてもらったプログラムを解読しているとこです。
233 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 09:47:26 ] >>227 sjisだと漢字の`表'は0x955cになるが、0x5cはASCIIでは`\'だから、 その次の文字`示'(0x8ea6)の0x8e(\216)がエスケープシーケンスにされちゃうんだよ。 $ od -tx1z -Ax foosjis.c | grep -1 '5c 8e' 000050 0a 0d 0a 70 72 69 6e 74 66 28 22 89 bd 92 69 95 >...printf("...i.< 000060 5c 8e a6 82 b5 82 dc 82 b7 82 a9 3f 3a 20 22 29 >\..........?: ")< 000070 3b 0d 0a 73 63 61 6e 66 28 22 25 64 22 2c 20 26 >;..scanf("%d", &< `表'意外にもこうした問題を起こす文字がsjisにはあるから、ほんと困ったもんだ。 さっさと文字コード統一してくれ。
234 名前:デフォルトの名無しさん [2009/06/30(火) 09:51:03 ] [1] 授業単元:確率論 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9602.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: ([2009年7月5日12:00まで] [5] その他の制限: 既存のRAND関数使用不可 1.合同式法による一様乱数を生成する関数 2.ボックスミュラー法による正規乱数を生成する関数 3.平均値を求める関数 4.標準偏差を求める関数 5.ヒストグラムを作成する関数 の5個の関数から構成されるのは分かるのですが、その後どうすれば作れるのか見当もつきません。 宜しくお願い致します。
235 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 09:53:05 ] >>233 --input-charset=cp932 とかでググってはどうだろうか
236 名前:デフォルトの名無しさん [2009/06/30(火) 10:02:10 ] >>215 誰か助けてm(__;)m
237 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:02:27 ] いや、sjisとかcp932とか使わないからどうでもいいんだよ。 ただ変換するコードを書くのが面倒だし毎度変換するだけの無駄なクロックが使われていると思うとね。 さっさと文字コード統一してくれ、といいたくなる。
238 名前:デフォルトの名無しさん [2009/06/30(火) 10:21:12 ] >>199 さん 合計と科目別すべて一緒に表示したいときは どうすればいいですか?
239 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:39:15 ] 文字コードは、英語のAtoZしか使わないから関係ない人へ。 SPACE-> 置換お疲れ。
240 名前:239 ◆/91kCCQXBo mailto:sage [2009/06/30(火) 12:02:47 ] >>186 >>238 成績一覧(選択ソート) 199が選択ソートなので再UP #include <stdio.h> #define n 9 /* 生徒の数+1 */ #define m 7 /* 科目の数+2 */ int main() { int k, p, S; int index[n][2]; /* ここからは変更無し */ //char namae[n][5] /* ここまでは変更無し */ //printf("%6.0f\n",goukei[i]); } for(k=m-2; k>=0; k--) { /* 科目数のループ */ printf("\n%sの点数で並び替え\n", kamoku[k+1]); if(k == m-2) for(i=1; i<n; i++) index[i][0] = i, index[i][1] = goukei[i]; else for(i=1; i<n; i++) index[i][0] = i, index[i][1] = seiseki[i][k]; /* 作業用の配列を並び替える(選択ソート) */ for(i=1; i<n-1; i++){ p = i; for(j=i; j<n; j++) if(index[p][1] < index[j][1]) p = j; S = index[i][1], index[i][1] = index[p][1], index[p][1] = S; S = index[i][0], index[i][0] = index[p][0], index[p][0] = S; } for(i=1; i<n; i++) { /* 生徒数のループ */ printf("%s", namae[index[i][0]]); for(j=0; j<m-2; j++){ /* 科目数のループ */ printf("%6.0f",seiseki[index[i][0]][j]); } printf("%6.0f\n",goukei[index[i][0]]); } } return 0; }
241 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 13:02:41 ] >>239 何かを皮肉っているように読めるけど、何を指してるのかよくわからんや
242 名前:デフォルトの名無しさん [2009/06/30(火) 13:46:46 ] >>238 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9604.txt 一番簡単なのは、もう1つ外側でループしてやることかな・・・と。
243 名前:デフォルトの名無しさん [2009/06/30(火) 14:37:33 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9605.txt [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: g++ [3.3] 言語: C++ [4] 期限: 7月1日12:00 [5] その他の制限:特になし よろしくお願いします
244 名前:デフォルトの名無しさん [2009/06/30(火) 14:51:32 ] 〔1〕授業単元:C言語 〔2〕問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9601.txt 〔4〕期限:7月6日 〔5〕ポインタ配列 お願いします
245 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:14:36 ] >>208 手遅れ感がすごいけど一応。 こんなんでどうでしょ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9606.c スタックに配列取ってるのはそうした方が主旨に沿いそうな気がしたから。
246 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:37:05 ] >222 >>224 の通りに打ち込んでもうまく出来ませんでした>< >どうしてなんでしょう? 何がうまくないんでしょう? Answer1:パスカルの三角形が気に入らない Answer2:パソコンが壊れてる。電源が入らない。パソコンを持ってない。 Answer3:コンパイル環境が無い Answer4:コンパイルエラーが出る! Answer5:実行はするが変な文字が出る Ans 5.ならコンパイラの名前を : ( ) ...テンプレ... [3.2] コンパイラ名とバージョン: (gcc 3.4/VC 6.0等) ...テッパン... gcc --input-charset=cp932 --exec-charset=cp932 file.c
247 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:38:04 ] ググってわからなかったので、質問させてください。 %eを使って表示したいのですが、 表示させたときにeの左側の小数部分の表示桁数を指定するにはどうすればいいですか?
248 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:40:48 ] printf("%XXX.XXXe", f); // Xは0-9の数字
249 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:41:38 ] その辺は書式といいます。 c言語 書式 などでぐぐるといろいろでてくると思います。 少数を扱う場合は %1.5e などと書きます
250 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:46:35 ] ありがとうございます。 書式でググればよかったんですね。
251 名前:デフォルトの名無しさん [2009/06/30(火) 15:48:50 ] >>234 とりあえず、中心極限定理の場合 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9608.txt 正規乱数に変換する部分を書き換えれば、ボックスミュラーの方にも使えるっしょ。 ヒストグラムはカウントだけしておいて、EXCELで処理ってことで。
252 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:51:31 ] >>244 全部まとめて、こんな感じで。動作は保障しない。ソースの整形はご自分で! #include <stdio.h> #include <stdlib.h> void swap(int* a,int* b){int T=*a; *a = *b *b = T;} void InitCard(int* Card,int N){int i=0; for(i=0;i<N;i++) Card[i]=i+1;} void Shuffle(int* Card,int N){int i=0; for(i=0;i<N;i++) swap(&Card[i],&Card[rand()%N]);} int main(){ int Card[52]; int i=0; char* Number="A23456789TJQK"; char* Mark="shdc"; srand(0); InitCard(Card,52); /****************No.1**********************/ Shuffle(Card,52); for(i=0;i<52;i++) printf("%d ",Card[i]); printf("\n\n"); /****************No.2**********************/ InitCard(Card,52); for(i=0;i<52;i++) printf("%d:%c ",i,Number[(Card[i]-1)%13]); printf("\n\n"); /****************No.3**********************/ InitCard(Card,52); for(i=0;i<52;i++) printf("%c%c ",Number[(Card[i]-1)%13],Mark[(Card[i]-1)/13]); printf("\n\n"); return 0; }
253 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:52:01 ] すみません。 もう1つ質問なのですが、 無限ループでとある計算を行い、 xが10の-10乗より小さくなったときに無限ループを脱出するプログラムを作りたいのですが、 if(x < 1.0e-10) break; では、コンパイルエラーが出ました。 ここは、やはり if(x < 0.0000000001) と、書くしか方法はないのでしょうか?
254 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:53:48 ] >>253 無限ループは何で実現してるの?
255 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:56:24 ] >>525 ソース詰めてるときにセミコロン消しちゃった。申し訳ない。 正しくは以下。 void swap(int* a,int* b){int T=*a; *a = *b; *b = T;}
256 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 15:56:51 ] すみません。 While(1) です
257 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:02:36 ] >>252 上が駄目で下がOKならそういうことではないかと ただなぜかといわれると規格とかの話になりそうなので詳しくはわかりませんが。 制御文には指数は使えないのかも
258 名前:デフォルトの名無しさん [2009/06/30(火) 16:10:54 ] >>192 お願いします。
259 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:16:22 ] >>253 これをコピペしてもダメ?(必ずコピペで) コンパイラは何使ってるの? #include<stdio.h> int main(void){ double x=1; while(1){ if(x < 1.0e-10) break; x/=10; } printf("%.15f\n", x); return 0; }
260 名前:デフォルトの名無しさん [2009/06/30(火) 16:45:24 ] #include <stdio.h> int main() { int a; int b = 1, c = 0; scanf("%d",&a); while(b <= a){ b *= 2; c++; } printf("2の%d乗より小\n", c); return 0; } で"5"や"6"なら"2の3乗より小"など正しい答えが出るのですが、 2の乗数である"4"や"8"を入れると"4"で"2の2乗より小"、"8"で"2の3乗より小"と出てしまいます。 どうすればいいでしょうか。
261 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:49:19 ] >>260 printf("2の%d乗より小\n", c); ↓ if(b == a) { printf("2の%d乗と同じ\n", c); } else { printf("2の%d乗より小\n", c); }
262 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:54:44 ] while (b < a) なら a = 4 の時 c = 2 だけど while (b <= a) だと a = 4 の時 c = 3 にならない? printf の文意も 与えた値よりも必ず大きい2の累乗数 を求めてるっぽいし
263 名前: ◆/91kCCQXBo mailto:sage [2009/06/30(火) 17:13:56 ] #include <stdio.h> int main() { int a; int b = 1, c = 0; scanf("%d",&a); // while(b <= a) while(b < a) { b *= 2; c++; } printf("%d は 2の%d乗 か、若しくは 2の%d乗 以下の数値である\n", a, c, c); return 0; }
264 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 17:31:27 ] >>244 ポインタ配列にこだわってみた。 こんなんもどうでしょ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9609.c
265 名前:-- mailto:sage [2009/06/30(火) 17:43:08 ] >>172 >>93 >>前930 >プロンプトを現在の”mysh[9]”といったものから”ユーザ名@mysh[9]” kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9607.txt
266 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 17:59:37 ] 質問させてください。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9610.c 上記のプログラムを組みましたが、N=65000以上になるとセグメンテーション違反を吐き出します。 N=65000以下なら問題なく動きます。 どこが原因かを教えてもらえませんでしょうか・・・。 OS:ubuntu9.04 コンパイラ:gcc 4.3.3 言語:C です。よろしくお願いします。
267 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 18:01:28 ] スタックオーバーフローかと
268 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 18:03:25 ] とりあえずでかい配列をローカルにとらないほうがいい
269 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 18:05:04 ] 1つの変数に30Gバイト割り当てて(それが10個以上)コンパイルを 通すコンパイラも問題ありかと。 現実時間で動作するとはその時点で思えない。
270 名前:267 mailto:sage [2009/06/30(火) 18:07:40 ] int N=65000,M=3,n,j,l,k; double R[N],r[N][M],S[N],s[N][M],x[N],y[N],A[N][M],q[N][M],z[M],sig[M],thi[M],tmp,a,b,c; double は一つで8バイトなんで相当大きな領域をスタックという場所に確保しようとします。 まあそれが大きすぎておかしくなってます。 解決方法としては 1)staticをつけて確保 2)Nが関係してる配列はmallocを使って動的に確保する
271 名前:266 mailto:sage [2009/06/30(火) 18:11:42 ] >>267-270 勉強になります。ありがとうございました。
272 名前: ◆/91kCCQXBo mailto:sage [2009/06/30(火) 18:29:36 ] >>216 データを削除し,新ファイルに保存する kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9611.c
273 名前:デフォルトの名無しさん [2009/06/30(火) 18:44:07 ] [1] 授業単元: 数理計画法 [2] 問題文(含コード&リンク): シンプレックス法のプログラムを作成せよ。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C [4] 期限: 2009年7月1日 [5] その他の制限: プログラムの授業で習うことはすべてやりました。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9612.txt のようなプログラムをつくたんですがこの先が悩んでいます。どなたかお願いします。
274 名前: ◆/91kCCQXBo mailto:sage [2009/06/30(火) 20:17:21 ] >>217 氏名と電話番号を,レコード単位にバイナリデータで読み書きする kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9613.c
275 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:25:58 ] [1] 授業単元:C言語の基礎 [2] 問題文:年(西暦)、月、日を入力し、入力した、日時の曜日及び、経過した日数を表示したプログラムを作成せよ。 [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:不明 [3.3] 言語:C [4] 期限:7月2日まで です。うるう年が100年に一度来ないというので分からなくなってしまいました。 よろしくお願いします。