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/
892 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 17:01:55 ] yaccとlexですがどなたか>>747 よろしくお願いします。
893 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 18:14:31 ] >>892 fabs,cosはlogを参考にすればいいし。 キャストは簡単だよね。
894 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 18:21:51 ] >>893 すいません、やってもらうことはできませんか?
895 名前:505 [2009/07/10(金) 19:44:39 ] 未解決問題 >>847 LLLアルゴリズムをCでプログラミング 7月17日 >>827 (9720) コマンドの引数xxxxで指定したファイルが更新されたら直ちにメッセージを表示する 7月13日正午 >>824 >>822 何人かの学生の3教科(数学、国語、英語)の得点を2次元配列を用いて処理する 7月9日 19:10 >>820 3入力のクワイン・マクラスキー法のプログラム 7月13日 >>799 指定された点x,yを含む指定された境界色C2で囲まれた平面領域を指定された色C1で塗りつぶす 7月17日 正午 >>791 (9708,9709,DLL_BMP_C) 歌詞を暗号鍵Kとして読み込み、画像 NewYear2003.bmpを暗号化した画像Cを生成する。 7月15日 >>790 入力したtxtファイルをFFT、IFFTせよ 7月8日 24:00 >>772 2問。4次のルンゲ−クッタ法を用いて連立微分方程式を解く 7月28日 >>749 配列を用いた計算機のプログラム 7月12日 >>747 (9696)>>892 yacc,lex 7月14日 >>681 (down11.ddo/1246872574) DirectX マップチップ 7月9日 >>660 (fukushima.jp) パソコン甲子園 2008 予選問題 問7 ふしぎな虫 7月6日 >>607 簡単なデータベース機能を持つプログラム 7月13日 >>451 (9656)>>504 (9661,9662) 最短路問題を解くアルゴリズムとしてベルマンフォード法がある。 7月6日
896 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:36:21 ] [1] 授業単元: プログラミングW [2] 問題文(含コード&リンク): オブジェクト指向を使って何でも良いのでプログラム を書け [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C++ [4] 期限: 7月17日(金) [5] その他の制限: メソッドを5個以上使う 変数はpublicとprivateを使いわける
897 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:02:41 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):この続きからC言語でベルマンフォードをお願いしたいです。 #include <stdio.h> #include <stdlib.h> main(void) { int n, s; /*頂点数、始点*/ int M; /*辺のないところを指定する数*/ int i, j, k; int W[100][100] /*重みを指定した行列*/ FILE *infile; /*入力ファイル*/ infile = fopen("data1.txt", "r"); /*入力ファイル名はdata1.txt*/ fscanf(infile, "%d %d", &n, &s); /*頂点数、始点の読み込み*/ for ( i=1 ; i<=n ; i++ ){ for ( j=1; j<=n; j++){ fscanf(infile,"%d\n",&W[i][j]); /*読み込み部分*/ } } fclose(infile); /*ファイルを閉じる*/ [3] 環境 [3.1] OS:linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: c [4] 期限: 2009年7月31日 [5] その他の制限:一番簡潔な書き方でお願いします@@;
898 名前:デフォルトの名無しさん [2009/07/10(金) 23:17:25 ] コンパイルしてアスタリスクがダイヤ形になるプログラムを教えてください。
899 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:35:21 ] >>897 ・問題文は、出題されたまま全文を書いてください。
900 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:42:12 ] >>886 文字列まで習ったって書いてあったから。。。
901 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:50:52 ] [1] 授業単元: C言語プログラミング演習 [2] 問題文(含コード&リンク): プログラムを実行すると 行列1: 1,2,3 4,5,6 7,8,9 行列2: 3,4,5 6,7,8 9,10,11 と表示する。最後に行列1と行列2の積を計算し、以下のように表示 するプログラム。 [行列1と行列2の積は ?,?,? ?,?,? ?,?,?] 課題2 配列のサイズを大きくして、時間を計測する。配列の内容は、各自指定すること。1から順に値を入れていってもよい [3] 環境 [3.1] OS: Windows/vista [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語: C++ [4] 期限: ([2009年7月15日まで] [5] その他の制限: この流れの通りにやること kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9721.txt お願いします。
902 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:51:59 ] >>827 #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <time.h> #define SLEEP_TIME 1 int main(int argc, char *argv[]) { struct stat file; time_t prev_mtime; if (argc != 2) { printf("Usage: exp7 file1 file2\n"); exit(1); } if (stat(argv[1], &file) != 0) { printf("%s not found\n", argv[1]); exit(1); } prev_mtime = file.st_mtime; while (1) { stat(argv[1], &file); if (file.st_mtime != prev_mtime) { printf("\nModified %s %s", argv[1], asctime(localtime(&file.st_mtime))); prev_mtime = file.st_mtime; } sleep(SLEEP_TIME); } }
903 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:53:35 ] >>897 すみません >>896 問題:与えられた重みつき有向グラフGと指定された頂点sに対してベルマンフォード法を実行するプログラムをC言語を用いて作りなさい。 ・入力は以下の形式で記述されたテキストファイルによるものとする。 Gの頂点数、頂点s(番号) Gの各辺の重みを指定した行列(辺のないところは値を100とする) 例 5 1 100 2 1 100 100 100 100 100 -1 100 100 -1 100 100 1 100 100 3 4 100 100 100 100 100 100 ・頂点数は最大100まで対応できるようにする ・入力ファイルから読み込む形式にする
904 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:12:47 ] >>901 課題1 #include <stdio.h> int main(void) { int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int b[3][3] = {{3, 4, 5}, {6, 7, 8}, {9, 10, 11}}; int ans[3][3]; int i, j, k; puts("行列1:"); for (i = 0; i < 3; ++i) { for (j = 0; j < 2; ++j) printf("%d,", a[i][j]); printf("%d\n", a[i][j]); } puts("行列2:"); for (i = 0; i < 3; ++i) { for (j = 0; j < 2; ++j) printf("%d,", b[i][j]); printf("%d\n", b[i][j]); } for (i = 0; i < 3; ++i) for (j = 0; j < 3; ++j) ans[i][j] = 0; for (i = 0; i < 3; ++i) for (j = 0; j < 3; ++j) for (k = 0; k < 3; ++k) ans[i][j] += a[i][k] * b[k][j]; puts("[行列1と行列2の積は"); for (i = 0; i < 2; ++i) { for (j = 0; j < 2; ++j) printf("%d,", ans[i][j]); printf("%d\n", ans[i][j]); } for (j = 0; j < 2; ++j) printf("%d,", ans[i][j]); printf("%d]\n", ans[i][j]); return 0; }
905 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:34:56 ] >>903 アンカミス?だよね
906 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:47:17 ] >>898 #include <stdio.h> int main(int argc, char **argv) { if (argc > 1) { char *c; for (c = argv[1]; *c; c++) if (*c == '*') printf("◇"); else putchar(*c); } return 0; }
907 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:00:04 ] わざと誤読すんなw
908 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:00:49 ] >>896 オブジェクト指向?それっておいしいの??と思ってる人間が書いたソース。 継承しないで委譲って感じになってると思う。 あと、動作は保障しない。うちの環境はVC9EEだ。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9722.zip
909 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:41:23 ] >>896 >>908 さんとかぶったが一応やってみた 俺はC++本当にど素人なので何も保障できない 参考までに使ってくれ ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/15-16
910 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:37:06 ] 901ですが>>904 ありがとうございます じつは自分でもやっていたのですがkansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9723.txt この文の最初のfor(j=0;j<3;j++)の後ろにfor(l=0;l<3;l++) main文の中のj=0;j<3;j++)の後ろにfor(l=0;l<3;l++)をつけたい 場合(答えはつける前と同じで)各 ans[i][j]=○○をどうやって書いたらいいのでしょうか?
911 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:40:06 ] >>910 >>904 見ればわかるだろ
912 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:52:28 ] と突き放しつつ ans[i][j]=ans[i][j]+a[i][l]*b[l][j];
913 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:56:22 ] >>911 >>912 911のコメントの後、作ったらできました。ありがとうございました!またそのあとのフォローのコメントもうれしかったです!
914 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:51:46 ] >>905 間違えました!すみませぬ。。。 >>903 は>>897 の修正です。よろしくお願いします。
915 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 11:17:40 ] >>898 ダイヤマークは周囲だけ?つまりダイヤマークの中は半角空白? 問題 >>前953(9534) 解答 >>014 (9548)
916 名前:デフォルトの名無しさん [2009/07/11(土) 14:08:29 ] 【質問テンプレ】 [1] 授業単元:情報基礎B [2] 問題文(含コード&リンク):(1) 平均、標準偏差 (2) 得点の高い順の点数のリスト [3] 環境 [3.1] OS:Linux [3.2] 不明です [3.3] 言語: C++ [4] 期限: 7・18まで [5] その他の制限:基本的なやつでお願いします。(2)はバブルソート
917 名前:デフォルトの名無しさん [2009/07/11(土) 14:09:57 ] 連投すいません 問題文に「試験の点数10人分をキーボードから入力」が抜けていました
918 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:10:35 ] >>916 丸投げもできないのか?
919 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:13:29 ] >916 しね
920 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:16:40 ] >>916 おまえはカスだ
921 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:17:33 ] >>916 sageろカス
922 名前:デフォルトの名無しさん [2009/07/11(土) 14:32:29 ] [1] 授業単元:プログラミング入門 [2] 問題文(含コード&リンク): if文を使って、月数に応じてコメントを表示するプログラム(1月ならばwinter、3月ならspringといった具合に)を作る。 月は1月〜12月までなので、13月以上の数値を打ち込んだ場合はerrorと表示させること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc 3.4…? [3.3] 言語:C [4] 期限: 2009年7月25日 [5] その他の制限:全くの初心者です。コメントつけてくれるとさいわいです
923 名前:デフォルトの名無しさん [2009/07/11(土) 14:37:13 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):下に示すように,最初に整数を読み込み,その後,その個数だけ整数を読み込んでいき,そ の合計と平均を表示するプログラムを作成せよ。 整数は何個ですか: 6 No.1 : 65 No.2 : 23 No.3 : 47 No.4 : 9 No.5 : 153 No.6 : 777 合計値: 1074 平均値: 179.00 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語: C [4] 期限: 09年07月30日 [5] その他の制限:どうかよろしくお願いします。
924 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:38:34 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 多数のファイルをクローズせずに何個もオープンするとどうなるか実験せよ. 実験用プログラム fopen.c のソースと実験結果と考察をレポートすること. % ./fopen 入力ファイル:fopen.c オープン 1 回目 オープン 2 回目 オープン 3 回目 ... オープン ??? 回目 これ以上オープンできません! 注意:「○○回までオープンできた」とかでは,現象・結果の説明にすぎず,考察とは言えない. その結果から何が理解できるのか?推理せよ. 換言:実験結果(具体例)から一般規則を導き出せ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:09/07/20 [5] その他の制限: 特になし
925 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:59:22 ] >>916 LinuxならコンパイラはgccだろJK
926 名前:LOG参考まで mailto:sage [2009/07/11(土) 14:59:29 ] >>922 if文を使って、月数に応じてコメントを表示する 問題>>019 解答>>022 (CODE)>>025 (CODE) >>923 最初に整数を読み込み,その後,その個数だけ整数を読み込んでいき,合計と平均を表示する 問題>>050 解答>>052 (CODE) >>924 多数のファイルをクローズせずに何個もオープンするとどうなるか実験せよ 問題>>688-689 (9693) 回答>>696 (9695)>>709 (CODE)>>716 (CODE)
927 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:04:46 ] >>916 トンぺ─乙wwwww
928 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:20:19 ] >>922 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9725.txt >>923 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9726.txt
929 名前:デフォルトの名無しさん [2009/07/11(土) 22:21:40 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 主語、目的語、述部が入ったデータファイルを読み込み、それらをランダムに組み合わせて生成した短文を20個ファイルに出力するプログラムの作成。 短文の構文は必ず、「(主語)は、(目的語)(述部)。」となるようにする。 出力例:俺は、カレーが大好きだ。 データファイルは以下を使用すること。 主語: 俺 私 あなた 彼 彼女 先生 犬のポチ 猫のタマ ライオン その人 政治家 ネズミ の12個 目的語: カレー ご飯 肉 授業 男 女 すごいもの アレ アンパン お金 の10個 述部: が大好きだ が大嫌いだ を作った をなくした が欲しい に全力を尽くす を新しいものに交換した ?なにそれ美味いの? について深く考えた を捨てた に塩をふりかけた の11個 [3] 環境 [3.1] OS: Windows [3.3] 言語: C [4] 期限: 2009年7月20日
930 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:02:34 ] 全角空白' '区切り、1項目目は(主語などの)タイトルでいいのか?
931 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:07:48 ] むしろ>>930 が何を言ってるのか分からない タイトルって何だ
932 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:10:43 ] >>931 なんで分からないのかが分からない
933 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:11:23 ] つまりレコードの第1フィールドと各フィールドの区切り文字の話をしたいんじゃろ。 まったくもって>>930 の考えているとおりでいいんじゃないか? >データファイルは以下を使用すること。 ってなってるんだから、この形のまま記録されてるってことになる。
934 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:12:44 ] 当然 " の12個" とかも含まれるんだろうね
935 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:12:48 ] ちなみに最終フィールドは「の12個」のように 全角でそのレコードの総単語数が記録されているということに・・・
936 名前:デフォルトの名無しさん [2009/07/12(日) 01:28:41 ] 「の12個」などは含みません! 「の12個を使用すること」 という意味です。 分かりやすいようにつけたつもりだったんですが、逆にわかりづらくしてしまいました。 ごめんなさい。
937 名前:931 mailto:sage [2009/07/12(日) 02:07:36 ] ああ、おk >>930 がネタだと気づかなかった
938 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 02:30:17 ] どういう思考をしたらネタになるんだよ 文字ごとの区切りは本当に全角スペースでいいのか 各行の始まりに本当にXX: があるのかは重要なポイントだろ てかサンプルファイルをロダに上げろよ
939 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:10:30 ] >>929 一応作ってみた kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9730.txt 元々用意しておくファイルは、test2.txtとなってるから、そこは自分で名前変えて あと、あまり自信はないから間違ってたらごめん 他にも作ってる人いるっぽいからそっち参考にした方が良いと思う test2.txtはノートパッドに↓を貼り付け、実行ファイルと一緒のフォルダに保存 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9731.txt
940 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 04:59:18 ] >>897 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9732.c (ベルマンフォード法)
941 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:19:08 ] 以下のプログラムを、C++で動作させるにはどうしたらよいでしょうか #include <stdio.h> #include "gauss.h" #define LL 10 int main(void) { double a[LL] [LL+1] ,x[LL],esp10.e-19; int i, j, n; int ipivot; int sw=1; scanf("%d",&n); for (i=0; i<n; i++) for(j=0; j<=n; j++) scanf(" %lf",&a[i] [j]); ipivot=gauss(*a,x,LL,n,esp,sw); if(ipivot== 1) for(i=0;i<n;i++) printf("x %d=%lf\n",i+1,x[i]); else{ printf("ピボット値が小さすぎるので"); printf("計算を中断、終了させました"); } return(0); }
942 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:42:56 ] >>941 1.#include <stdio.h> を #include <cstdio> にかえる 2.C++のコンパイラでコンパイルする 以上
943 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:43:15 ] >>941 gauss.h を見せて
944 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:00:00 ] 【質問テンプレ】 [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): www.dotup.org/uploda/www.dotup.org229227.zip [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: Visual Studio 2005 [3.3] 言語: C [4] 期限:7/16 18:00 〆 [5] その他の制限:2つあります よろしくお願いします
945 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:14:04 ] >>940 助かりました!ありがとうございましたー
946 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:34:11 ] 【質問テンプレ】 [1] 授業単元 C言語 [2] 問題文(含コード&リンク): 二つのバイナリファイルの中身を比較して等しいか、等しくないかを比較して結果を返す関数を作る [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン Visual Studio 2005 [3.3] 言語: C [4] 期限:7月13日 [5] その他の制限 ヒントにはバイトを比べると書いてありました
947 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:22:12 ] >>944 文字列strの中に、文字chが含まれている個数を返す関数 問題>>332 (9629) 解答>>338 (9632)>>341 (1246384344/6) >>944 文字列を左右逆に並び替える関数 問題>>150 解答>>153 (9574)
948 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:56:04 ] >>941 >>1 これでOKならC++じゃなくてCのミス。 イプシロンの後にイコールを1つ入れる。 double a[LL] [LL+1] ,x[LL],esp=10.e-19; D:\>type gauss.h int gauss(double*,double*,int,int,double,double); int gauss(double *a,double *b,int c,int d,double e,double f){ printf("%lf %lf %lf %lf\n",a[0],a[1],a[2],a[3]); } ファイル名を、任意.cで保存する。 D:\>gcc mondai.c D:\>a 2 11 12 13 14 15 16 11.000000 12.000000 13.000000 nan ピボット値が小さすぎるので計算を中断、終了させました
949 名前:デフォルトの名無しさん [2009/07/12(日) 18:15:29 ] 【質問テンプレ】 [1] 授業単元: C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9733.txt [3] 環境 [3.1] OS: windows XP [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5 [3.3] 言語: C [4] 期限: 7月14日 00:00まで [5] その他の制限: テキストに記載してあります。C言語の基本的なことは大方学びました。 よろしくお願い致します。
950 名前:デフォルトの名無しさん [2009/07/12(日) 19:15:07 ] 【質問テンプレ】 [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 下に示すように,要素数が7 でint 型の配列に読み込んだ全要素を逆順に並べ替えるプログ ラムを作成せよ. vx[ 0] : 58 vx[ 1] : 32 vx[ 2] : 17 vx[ 3] : 46 vx[ 4] : 22 vx[ 5] : 73 vx[ 6] : 69 vx[ 0] = 69 vx[ 1] = 73 vx[ 2] = 22 vx[ 3] = 46 vx[ 4] = 17 vx[ 5] = 32 vx[ 6] = 58 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C [4] 期限: 7月14日まで [5] その他の制限:
951 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:31:40 ] >>950 #include <stdio.h> void rev(int* a,int size){ int i,temp; for(i = 0;i < size/2;i++){ temp = a[i]; a[i] = a[size-i-1]; a[size-i-1] = temp; } } int main(){ int i; int vx[] = {58,32,17,46,22,73,69}; printf("before\n"); for(i = 0;i < sizeof(vx)/sizeof(vx[0]);i++){ printf("vx[%d] = %d\n",i,vx[i]); } rev(vx,sizeof(vx)/sizeof(vx[0])); printf("after\n"); for(i = 0;i < sizeof(vx)/sizeof(vx[0]);i++){ printf("vx[%d] = %d\n",i,vx[i]); } return 0; }
952 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:35:58 ] >>950 #include <stdio.h> #define MAX_COUNT 7 int main() { int i, t, vx[MAX_COUNT]; for(i=0; i<MAX_COUNT; i++) { /* 入力 */ printf("vx[%2d] : ", i); if(scanf("%d", &vx[i]) != 1) { scanf("%*s"); i--; } } for(i=0; i<MAX_COUNT/2; i++) { /* 入れ替え */ t = vx[i], vx[i] = vx[MAX_COUNT-1-i], vx[MAX_COUNT-1-i] = t; } for(i=0; i<MAX_COUNT; i++) { /* 表示 */ printf("vx[%2d] = %d\n", i, vx[i]); } return 0; }
953 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:05:19 ] 誰か>>946 をお願いいたします。
954 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:18:51 ] >>946 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { FILE *fp1, *fp2; if(argc != 3) {printf("Usage : %s file1 file2\n", argv[0]); return 1;} if(strcmp(argv[1], argv[2]) == 0) {puts("同じファイルです"); return 0;} fp1 = fopen(argv[1], "rb"); if(fp1 == NULL) {printf("%s file open error!\n", argv[1]); return 1;} fp2 = fopen(argv[2], "rb"); if(fp2 == NULL) {printf("%s file open error!\n", argv[2]); fclose(fp1); return 1;} while(getc(fp1) != getc(fp2)) { puts("異なります"); fclose(fp2); fclose(fp1); return 2; } puts("同じです"); fclose(fp2); fclose(fp1); return 0; }
955 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:56:03 ] >>954 ありがとうございます
956 名前:デフォルトの名無しさん [2009/07/12(日) 22:07:29 ] どなたか>>949 お願い出来ませんか? 一つのプログラムにまとめて頂いても結構ですので、よろしくお願いいたします。
957 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 22:55:27 ] [1] 授業単元: C言語 [2] 問題文(含コード&リンク): 100個の乱数を発生させ最大値、最小値、平均を求める また最大値、最小値それぞれ何番目にあるか答えよ (最初に読み込んだデータを1番目とする) [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 7月20日まで [5]基本的なのでお願いします
958 名前:デフォルトの名無しさん [2009/07/12(日) 23:13:34 ] >>957 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9734.txt
959 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 23:54:24 ] >>958 ありがとうございました!
960 名前:デフォルトの名無しさん [2009/07/13(月) 00:34:48 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 下に示すように,要素数が5 でint 型の配列に、5 人の学生の身長を読み込んで、その平均 身長を求めるプログラムを作成せよ。 身長を入力してください 1 番: 178 2 番: 175 3 番: 165 4 番: 179 5 番: 172 平均身長: 173.8vx[ 0] : 58 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C [4] 期限: 7月15日まで [5] その他の制限: まだ基礎しか習ってません。 よろしくお願いします。
961 名前:960 [2009/07/13(月) 00:36:39 ] 訂正です 誤 平均身長: 173.8vx[ 0] : 58 正 平均身長: 173.8
962 名前:デフォルトの名無しさん [2009/07/13(月) 01:09:27 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): www.dotup.org/uploda/www.dotup.org231968.txt.html [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語:C [4] 期限: 090714 [5]特になし お願いします
963 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:40:40 ] >>949 >>956 はいよ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9735.c
964 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:59:52 ] [1] 授業単元: プログラミング演習2 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9736.zip [3] 環境 [3.1] OS: Linux CentOS5 [3.2] コンパイラ名とバージョン: gcc 3.4.1 [3.3] 言語: C [4] 期限: 2009年07月14日10:00 [5] その他の制限: じpに入っているk1.cを書き換えて完成させろという課題です。 よろしくお願いいたします。
965 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:00:02 ] >>960 #include <stdio.h> int main(void) { double ave = 0; int a[5]; int i; for (i = 0; i < 5; i++) { printf("%d番: ", i + 1); scanf("%d", &a[i]); } for (i = 0; i < 5; i++) ave += a[i]; printf("平均身長: %.1f\n", ave / 5); return 0; }
966 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:12:45 ] >>964 最初から自分で書くなら兎も角、他人の書いた途中なソースに加筆して完成させるというのは それ以上の高度なスキルが必要でこのスレでそれが出来そうなのは麻呂(ry
967 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:21:10 ] 分子=1 分母=1063 1/1063=(0.000940733772342) 0. [ 0009407337723424270931326434619002822201317027281279397930385700846660( 70) 3951081843838193791157102539981185324553151458137347130761994355597365( 140) 9454374412041392285983066792097836312323612417685794920037629350893697( 210) 0837253057384760112888052681091251175917215428033866415804327375352775( 280) 1646284101599247412982126058325493885230479774223894637817497648165569( 350) 1439322671683913452492944496707431796801505174035747883349012229539040( 420) 4515522107243650047036688617121354656632173095014111006585136406396989( 490) 6519285042333019755409219190968955785512699905926622765757290686735653( 560) 8099717779868297271872060206961429915333960489181561618062088428974600( 630) 1881467544684854186265286923800564440263405456255879586077140169332079( 700) 0216368767638758231420507996237064910630291627469426152398871119473189( 770) 0874882408278457196613358419567262464722483537158984007525870178739416( 840) 7450611476952022577610536218250235183443085606773283160865475070555032( 910) 9256820319849482596425211665098777046095954844778927563499529633113828( 980) 7864534336782690498588899341486359360301034807149576669802445907808090( 1050) 310442144873]( 1062)
968 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:30:59 ] 下手の横好きってやつなんだけど、>>954 のプログラムについて聞きたい getc関数は一文字しか返さないから、その文字がたまたま一緒だった場合、 別の内容だったとしても同じだと判断してしまう危険性とかはないんだろうか? バイナリファイル自体がよく解ってない初心者なので、 誰かちょっと解説してもらえると助かる
969 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 03:04:25 ] >>968 その通り、getc,fgetcは使用すべきではないし、 ロジックもあなたの言う通り間違ってる。 コードを加筆修正して正しいコードを書いてみそ とでも>>954 は言いたげな漢字
970 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:13:09 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9737.zip [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン:Visual Studio 2005 [3.3] 言語:C [4] 期限:7/16/ [5] その他の制限: 問題文の通りにやっていただければ結構です。 宜しくお願いします。
971 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:51:03 ] >>970 /* */ len = (int)str_length(st); for(i=0;i<len/2;i++) { temp = *(st+i); *(st+i) = *(st+len-i-1); *(st+len-i-1) = temp; } /* */ rev_str(str);
972 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:03:57 ] >>949 #include <stdio.h> #define LEN 8192 int findrepeat(int r[], int *head, int *tail) { int i, j; for (i = 0; r[i]; ++i) for (j = i + 1; r[j]; ++j) if (r[i] == r[j]) { *head = i; *tail = j; return 1; } return 0; } int main(void) { int q[LEN], r[LEN]; int n, head, tail, i; printf("n? "); scanf("%d", &n); if (n == 1) { printf("1 / 1 = 1"); return 0; } for (i = 0; i < LEN; ++i) q[i] = r[i] = 0; head = tail = -1; q[0] = 1 / n; r[0] = 1 % n; for (i = 1; i < LEN && r[i - 1] != 0; ++i) { q[i] = 10 * r[i - 1] / n; r[i] = 10 * r[i - 1] % n; if (findrepeat(r, &head, &tail)) break; } printf("1 / %d = %d.", n, q[0]); for (i = 1; q[i] || r[i]; ++i) { if (i - 1 == head) printf("("); printf("%d", q[i]); if (i == tail) printf(")"); } return 0; }
973 名前:デフォルトの名無しさん [2009/07/13(月) 06:42:36 ] おはようございます>>678 です。 結局>>686 をCに変換できませんでした… どなたか、Cに書き換えてはいただけないでしょうか。
974 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:47:12 ] 最初からCって書いて置けよ C++もはいってるじゃねーか
975 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:50:32 ] >>973 どうみてもC++じゃなくてCで書かれてるんだが
976 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:53:10 ] >>975 拡張子がtxtのままとかどうせレベルの低い話なんだろうけどなw
977 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:54:32 ] >>976 それプラス ・課題(11_1)はmain_11_1をmainに書き換えてコンパイル ・課題(11_2)はmain_11_2をmainに(ry ってのがわかってないんだと思う
978 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:56:50 ] ああ、あまりにもあほらしくて中みてなかったが課題をまとめてくれてるのかw ほんとにて取り足取りでないとできないのかw
979 名前:デフォルトの名無しさん [2009/07/13(月) 07:36:42 ] これはいいツンデレ
980 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 07:47:26 BE:511223696-DIA(287979)] 次スレ立てました C/C++の宿題片付けます 129代目 pc12.2ch.net/test/read.cgi/tech/1247438792/
981 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:28:03 ] >>968 getcでもファイルの最後まで比較しながら読み込んでいけばいいんだけどね。 あなたの言うとおり、>>954 は最初の1文字でしか判定してないから思いっきり間違ってる。 本人はwhile使ってるあたり、最後まで比較したつもりなんだろうけど。
982 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:50:46 ] >>954 をいじるとこうなるのかな do { char c1, c2; c1 = getc(fp1); c2 = getc(fp2); if (c1 != c2) { puts("異なります"); return 2; } } while (c1 != EOF); puts("同じです"); return 0;
983 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:51:41 ] char じゃなくて int じゃないとまずいか
984 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 09:01:24 ] 初心者のころcharで受けて、ファイルの途中で読み込み終了して困ったことがあったなぁ。
985 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:00:54 ] >>966 そこで麻呂はない
986 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:29:46 ] >>975 >>736
987 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:45:07 ] >>986 「どうみても」といいつつちゃんと見てなかったw こいつは失礼した
988 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 12:48:55 ] [1] 授業単元:アルゴリズム論演習 [2] 問題文(含コード&リンク): (1)3つ以上の整数の階層的プログラミングを行うプログラムを 作成せよ。ただし、整数間の距離は差、クラスタ間の距離はそ れぞれの要素間の距離のうち最小のものとする。出力は、クラ スタか、あるいは整数a,bを足して得られるクラスタをa,bとし、 これを帰納的に適用する表現で表せ。たとえば、1,2,5に対す る出力は((1,2),5)である。 (2)3つ以上の2次元ベクトルの階層的プログラミングを行うプ ログラムを作成せよ。ただし、ベクトル(u1,u2)と(v1,v2)の間 の距離をsqrt(u1*v1 + u2*v2)とし、クラスタ間の距離はそれ ぞれの要素間の距離の平均とする。出力は(1)の表現を用いよ。 [3] 環境 [3.1] OS:Windows [3.2] VisualStudio2008EE [3.3] 言語:C/C++のどちらでも可 (できれば後学のためC++でお願いします。) [4] 期限: [2009年07月23日まで] [5] その他の制限:特に制限はありません。
989 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 12:50:09 ] >988 よろしくお願いいたします><;
990 名前: ◆/91kCCQXBo mailto:sage [2009/07/13(月) 13:00:51 ] >>982 お世話になった。 >>953 の時は作業中だったのに無理してしまった。 >>955 line 12 : while(getc(fp1) != getc(fp2)) { ↓ int c1=0,c2; /* do if((c1 = getc(fp1)) != (c2 = getc(fp2))) { puts("異なります"); fclose(fp2); fclose(fp1); return 2; } while (c1 != EOF); */ while (c1 != EOF) if((c1 = getc(fp1)) != (c2 = getc(fp2))) {
991 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 13:17:08 ] >>678 g++ でコンパイルしてみること。 エラーが出たらエラーメッセージを貼り付けること。
992 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 14:14:37 ] >988 (誤)階層的プログラミング (正)階層的クラスタリング でした^^; よろしくです。