1 名前:デフォルトの名無しさん [2008/10/30(木) 07:49:39 BE:113605834-PLT(24065)] あなたが解けない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++の宿題を片付けます 116代目 pc11.2ch.net/test/read.cgi/tech/1222813731/
797 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:34:53 ] >>790 1行256要素のcsvなの? じゃあプログラムも変わってくるね。 これが仕事の発注なら追加費用だね。
798 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:42:56 ] >>791 #include <stdio.h> int main() { int n, m, sum; while(scanf("%d", &n) == 1) { sum = 0; for(m = n / 2; m > 0; m--) if (n % m == 0) sum += m; if (sum == n) printf("%d は完全数です。\n", n); else printf("%d は完全数でではありません。\n", n); } }
799 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:46:51 ] >>797 テンプレ無視の質問だししょうがない
800 名前:794 [2008/11/14(金) 19:50:34 ] 単語の区切りは空白が来たときでいいそうです
801 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:52:35 ] [1] 授業単元:プログラミング言語 [2] 実行画面で fprintf(plot,"set xlabel\"time[sec]\"\n") と表示される様に以下のプログラムを書き換える。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: 不明…一応MicrosoftからダウンロードしたVisual C++ [3.3] 言語: C++ [4] 期限 無し [5] その他の制限: @関数を使って。AFILE *plotと宣言せずに。7行目の「r =」の右側の文字を全て"文字列"としてaに渡せるように)。 #include<stdio.h> #include<iostream> #include<string> using namespace std; int f(){ char r; r = fprintf(plot,"set xlabel\"time[sec]\"\n"); return r; } int main(){ char a; a = f(); cout<<a<<endl; }
802 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:53:31 ] >>800 ふつうは単語の直後のカンマとかピリオドとか落とすだろ?
803 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 19:59:21 ] >>801 #include <stdio.h> #include <iostream> #include <string> using namespace std; char * f(){ char *r; r = "fprintf(plot, \"set xlabel\\\"time[sec]\\\"\\n\")"; return r; } int main(){ char *a; a = f(); cout << a << endl; }
804 名前:794 [2008/11/14(金) 20:00:25 ] そう言われるとそうなのですが、始めたばかりなもので・・・・・
805 名前:801 mailto:sage [2008/11/14(金) 20:02:57 ] >>803 早っ! ありがとうございますw
806 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:06:24 ] >>783 Enterキーを入力≒改行を入力 だから、>>668 との両立は基本的に無理。 ただ、termios や ncurses のようなものを使えば可能かもしれない。 ってかいい加減にスレチ。
807 名前:teru [2008/11/14(金) 20:26:13 ] プログラムにゲーム的要素を取り入れてみましょう。 例えば、迷路を抜けるプログラムを作り、 途中にある宝物を見つけなければクリアーできないとか、(これはフラグを使うことになる) または、途中に各種イベントを配置しておき、 そこでの評価を点数化することで最後に総得点を競うといった応用が考えられます。 自由に考えることで、面白いプログラムを作成してみることができるはずだ。 1、プログラミング上の工夫(アルゴリズムが見えやすい、拡張性が高い、など) 2、コンテンツそのものの面白さ 簡単なゲームでいいです。 よろしくお願いします。
808 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:30:46 ] >>807 >>1 の書式を満たしてくれ あとその文面は改造する元のプログラムがあるみたいだが?
809 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 20:58:57 ] 元なんてなくて、ゲームごと作る課題かと。
810 名前:703 mailto:sage [2008/11/14(金) 21:22:28 ] 無事完成しました。ありがとうございます。 #include<stdio.h> int fact(int n); int fact1(int r); int main(void) { int n,r,m,nCr; printf("n r ->"); scanf("%d %d",&n,&r); m=n-r; if (n < m || n < 0 || m < 0) return printf("nCr=0\n"); nCr=fact(n)/(fact1(r)*fact(m)); printf("nCr=%d\n",nCr); return 0; } int fact(int n) { if(n==0) return 1; else return n*fact(n-1); } int fact1(int r) { if(r==0) return 1; else return r*fact1(r-1); }
811 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 21:25:44 ] >>810 >>744
812 名前:デフォルトの名無しさん [2008/11/15(土) 00:12:42 ] [1] 授業単元:プログラム [2] 問題文(含コード&リンク):GPで画像を合成して再構成するときに45度ずつ回転して出力しなさい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2008年11月18日 [5] その他の制限:よろしくお願いします。
813 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 00:35:27 ] >>810 階乗、漸化式、再帰、を使ったやり方かい・・・ 余談だが、int型だと符号なしでも、12の階乗が限度。 対策として、分母の階乗を考慮して、乗数を減らすことも出来るが・・・ まぁ、階乗を使う必要がある問題ならそれで良いけど、パスカルの三角形は より値が大きくなっても求められるが、それも限度はあるけど。
814 名前:デフォルトの名無しさん [2008/11/15(土) 01:33:40 ] どなたか>>472 をCで作成お願いします!
815 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 01:55:16 ] >>814 死ね
816 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:33:31 ] >>814 調べりゃソースはある
817 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:35:56 ] >>815 おっと、死ねとはどうかと。あまりにも下衆過ぎやせんか?言葉を慎めよ
818 名前:デフォルトの名無しさん [2008/11/15(土) 02:39:42 ] [1] 授業単元:応用プログラミング [2] 問題文(含コード&リンク): 並列再帰を使ってハノイの塔問題を処理するプログラムを組め. コード上で円盤の数も選択できるようにせよ. [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限: 2008年11月17日 午後5時 [5] その他の制限: Cは一通り習っていますが,ライブラリはなるべく使わずにお願いします. どなたかよろしくお願いします.
819 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:41:50 ] >>815 書き込む内容によってはえらいことになるよ? 気をつけたほうがいいと思う。
820 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:44:14 ] [1] 授業単元: プログラミング [2] 問題文: 入力したISBNコードが正しいか判断するプログラムを 作成せよ。(配列とfor文を使うこと) [3] 環境 [3.1] OS: Windows [3.2] gcc [3.3] 言語:C言語 [4] 期限: 11月15日12時まで [5] その他の制限: 特になし
821 名前:820 mailto:sage [2008/11/15(土) 02:51:40 ] 回答まだですか?
822 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:52:23 ] >>820 旧式と新式どっちだよ
823 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:54:37 ] ttp://ja.wikipedia.org/wiki/ISBN ハイフンやその間の数字の数、チェックデジットも?
824 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:56:26 ] >>821 いや俺が280だから。 >>822 新式です。
825 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:58:17 ] >>823 ハイフンを打ち込まず 4-793-2792-8 なら 479327928とそのまま打ち込む感じでお願いします。
826 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:28:25 ] >>820 ですが 自己解決しました。
827 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:30:00 ] してません 勝手に人の振りしないでください
828 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:46:50 ] すみません。ISDNの間違いでした。
829 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:47:03 ] なにをもって「正しい」と判断するんだ? 単にチェックデジットがあってればいいだけ?
830 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:57:00 ] >>826 >>821 通報して良い?本人じゃなくても、第三者にも偽者ってバレてるんだけど?
831 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 04:59:11 ] 正しいというのは、チェックデジットのこともあるが、それは末尾だし 末尾を算出するのは、その手前の数によるし・・・ 問題は、ハイフンごとに分けられているそれぞれの数値も 範囲が決められているとか、この世に存在するものかどうか 何かデータベースを参照して正しいかを調べるのか?それが問題だ。 考えすぎかもしれんが。
832 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 05:17:25 ] 最初の3行は978,979の数字3文字,次の1文字は国番号で決まっているから,残りは 4文字(出版者記号),4文字(書名記号),チェックディジットになるんだよな? ちょっとやってみるわ.
833 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 07:20:34 ] テンプレに書いてあるのにトリップ使わないのが悪い
834 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:37:10 ] >>833 やりかたがよくわかりませんし、 今事情があって他人のPCを使っています。 情報漏洩したら面倒なのでやりたくないです。
835 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 10:47:32 ] 頭悪すぎる
836 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:24:01 ] これがゆとりか。
837 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:25:28 ] それマジでいってんのか?
838 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:54:12 ] >>820 先頭3桁のチェックと末尾のチェックデジットのチェックのみ。 書式は >>825 のような13桁の数字のみを受け付ける。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8034.txt
839 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 11:55:06 ] >>780 大変助かりました。 本当に有難う御座いました。
840 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 12:13:15 ] [1] 授業単元: プログラミング実習2 [2] 問題文(含コード&リンク): ・配列を利用し,2008年の指定された月の1日が何曜日か表示するプログラムを作成せよ -日=0,月=1,火=2,...,土=6と数値化して計算 ・その数値によって何曜日かを表示する -2008年1月1日が火曜日(=2)であることを利用する -求める月の前の月前までの日数を加算し7で割った余りを考える -各月の日数を以下のような形で配列に入れておく days[ ]={0,31,29,...,31} [3] 環境 Visual C++ [3.1] OS:Windows [3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ [3.3] 言語: C言語 [4] 期限: 2008年11月17日(月)までお願いします。 [5] その他の制限: main関数,文末記号,エスケープシーケンス,printf関数 逐次処理(順次処理)、条件分岐(選択処理)if,if-else,switch、 繰り返し(反復処理)while,do-while,for、演算子の複合演算子(+=,-=,*=,/=,%=) インクリメント(++)デクリメント(--)、scanf関数、アドレス演算子(&)、キャスト演算子 配列の初期化は習いました。 お願いします。
841 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 12:24:18 ] >>840 #include <stdio.h> int main() { int y, m, q, h; char *s[] = {"土", "日", "月", "火", "水", "木", "金"}; puts("西暦の年、月、日をスペース区切りで入れてください"); scanf("%d %d %d", &y, &m, &q); h = (((q + ((m + 1)*26/10) + (y % 100) + ((y % 100)/4) + ((y / 100)/4) - 2*(y / 100)) % 7) + 7 ) % 7; printf("%d年%d月%d日は%s曜日です\n", y, m, q, s[h]); return 0; }
842 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 12:28:16 ] ごめん全然問題文よんでなかった
843 名前:デフォルトの名無しさん [2008/11/15(土) 13:12:50 ] [1] 授業単元: アルゴリズムデータ構造U [2] 問題文(含コード&リンク): 複素数a,bを標準入力から入力し、それぞれの絶対値を求め、2つの複素数の和、差、積、商を求め 標準出力に出力するプログラムを作りたい。これらを求める関数として、複素数の絶対値を求める関数 および和、差、積、商を求める関数が double cabs(struct mycomplex) struct mycomplex wa(struct mycomplex,struct mycomplex) struct mycomplex sa(struct mycomplex,struct mycomplex) struct mycomplex seki(struct mycomplex,struct mycomplex) struct mycomplex shou(struct mycomplex,struct mycomplex) として作ることにした。これらの絶対値、和、差、積と商を求める関数を解答せよ なおこの構造体は予めCの処理系には用意されているが、それを利用せず独立に考えよ。 [3] 環境 [3.1] OS: Windows [3.2] [3.3] 言語: C [4] 期限: 11月16日まで [5] その他の制限:構造体の問題です 問題文に沿ってお願いします。
844 名前:デフォルトの名無しさん [2008/11/15(土) 13:18:37 ] 843の問題です #include<stdio.h> #include<math.h> struct mycomplex { double re; double im; }; int main() { struct mycomplex a,b; struct mycomplex wa(struct mycomplex,struct mycomplex); struct mycomplex sa(struct mycomplex,struct mycomplex); struct mycomplex seki(struct mycomplex,struct mycomplex); struct mycomplex shou(struct mycomplex,struct mycomplex); double cabs(struct mycomplex); struct mycomplex cinput(void); void cprint(struct mycomplex); a=cinput(); b=cinput(); cprint(wa(a,b)); cprint(sa(a,b)); cprint(seki(a,b)); cprint(shou(a,b)); printf("絶対値 cabs(a)=%f\n",carbs(a)); printf("絶対値 cabs(b)=%f\n",cabs(b));}
845 名前:デフォルトの名無しさん [2008/11/15(土) 13:20:11 ] 844の問題の続きです struct mycomplex cinput(void) { struct mycomplex z; scanf("%f %f",&z.re,&z.im); return z; } void cprint(struct mycomplex z) { printf("複素数 = %f + i*%f\n",z.re,z.im); } 誰かお願いします
846 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 14:11:56 ] >>843 struct mycomplex wa(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { a.re+b.re, a.im+b.im }; return z; } struct mycomplex sa(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { a.re-b.re, a.im-b.im }; return z; } struct mycomplex seki(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { a.re*b.re - a.im*b.im, a.re*b.im + a.im*b.re }; return z; } struct mycomplex shou(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { (a.re*b.re + a.im*b.im) / (b.re*b.re + b.im*b.im), (a.im*b.re - a.re*b.im) / (b.re*b.re + b.im*b.im) }; return z; } double cabs(struct mycomplex a) { return hypot(a.re, a.im); }
847 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 17:18:06 ] 全然わかりません。よろしくお願いします。 [1] 授業単元:応用プログラミング論 [2] 問題文(含コード&リンク): ある任意の点X(a,b)、Y(c,d)を乱数で求め、 X,Yからなる線分に1辺が平行であり、四角形の中心とその線分との距離が30pixelになるような四角形を描写せよ。 四角形は20×40のものを使用。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual C++ 2008 [3.3] 言語:C++ [4] 期限: 2008年11月18日13時まで [5] その他の制限:とくになし。
848 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 17:43:41 ] 四角形が20*40なのに中心から線分までの距離が30かあ。
849 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 17:49:46 ] いいんじゃないか?仮に20の方が平行な辺だとしてもね。
850 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:03:00 ] あ。読み間違えてた。 線分XYを一辺とするのかと思いこんでた。 X ┌─┐│ └─┘│ Y こういうことね。
851 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 18:06:09 ] ┌─┤ └─┤ じゃないんだねww?
852 名前:デフォルトの名無しさん [2008/11/15(土) 18:45:07 ] 846のかた ありがとうございます
853 名前: ◆hXvyVozAPo mailto:sage [2008/11/15(土) 19:11:10 ] [1] 授業単元:プログラミングC [2] 問題文(含コード&リンク): 以下のようなプログラムを作成しなさい. int型変数xを宣言し標準入力で適当な数値を代入する。 その変数xのアドレスを引数として、アドレスと値を表示する関数を作成せよ。 実行例 ./a ? 5 変数xのアドレスは 0x00 です 変数xの値は 5 です [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名 Cygwin [3.3] 言語:C [4] 期限: 11月16日 17時まで [5] その他の制限: 授業はまだまだ初歩レベルみたいです。
854 名前:デフォルトの名無しさん [2008/11/15(土) 19:24:18 ] #include<stdio.h> #include<math.h> struct mycomplex { double re; double im; }; int main() { struct mycomplex a,b; struct mycomplex wa(struct mycomplex,struct mycomplex); struct mycomplex sa(struct mycomplex,struct mycomplex); struct mycomplex seki(struct mycomplex,struct mycomplex); struct mycomplex shou(struct mycomplex,struct mycomplex); double cabs(struct mycomplex); struct mycomplex cinput(void); void cprint(struct mycomplex); a=cinput(); b=cinput(); cprint(wa(a,b)); cprint(sa(a,b)); cprint(seki(a,b)); cprint(shou(a,b)); printf("絶対値 cabs(a)=%f\n",carbs(a)); printf("絶対値 cabs(b)=%f\n",cabs(b)); } struct mycomplex cinput(void) { struct mycomplex z; scanf("%f %f",&z.re,&z.im); return z;
855 名前:デフォルトの名無しさん [2008/11/15(土) 19:29:32 ] } struct mycomplex cinput(void) { struct mycomplex z; scanf("%f %f",&z.re,&z.im); return z; } void cprint(struct mycomplex z) { printf("複素数 = %f + i*%f\n",z.re,z.im); } struct mycomplex wa(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { a.re+b.re, a.im+b.im }; return z; } struct mycomplex sa(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { a.re-b.re, a.im-b.im }; return z; } struct mycomplex seki(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { a.re*b.re - a.im*b.im, a.re*b.im + a.im*b.re }; return z; } struct mycomplex shou(struct mycomplex a, struct mycomplex b) { struct mycomplex z = { (a.re*b.re + a.im*b.im) / (b.re*b.re + b.im*b.im), (a.im*b.re - a.re*b.im) / (b.re*b.re + b.im*b.im) }; return z; } double cabs(struct mycomplex a) { return hypot(a.re, a.im); } すいません、動かないんで何処が違うか教えてください 854の続きです
856 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:32:14 ] >>853 #include<stdio.h> void pp(int *x) { printf("変数xのアドレスは 0x%p です\n", x); printf("変数xの値は %d です\n", *x); } int main(void) { int x; fputs("? ", stdout); scanf("%d", &x); pp(&x); return 0; }
857 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:35:21 ] >>855 見づらいし インデントしなおすのもめんどくさいから 素直にろだにあげろカス
858 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:37:24 ] >>855 carbs → acabs
859 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 19:49:51 ] >>854 関数宣言を main の外へ出せ
860 名前:デフォルトの名無しさん [2008/11/15(土) 20:07:38 ] 859の方 わからないので、8036でアップいましたので修正お願いします ほかの方も教えてくれるとありがたいです
861 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 20:13:17 ] C++です。 二つの整数値を読み込んで、小さい方の数以上で大きい方の数以下の整数を全て加えた値を表示するプログラムを作りたいんです 整数1は37 整数2は28 28〜37までの全整数の和は325 for文は使わずにお願いします。 よろしくお願いしますm(_ _)m
862 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 20:19:13 ] >>860 関数宣言を main 関数の外へ scanf のフォーマットが違った。 %f -> %lf main 関数の最後に return 0; を追加 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8037.txt
863 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 20:26:58 ] >>859 別に関数宣言は問題ではないと思うが 標準ライブラリのcabs()と被るのでacabs()に名前変更 main()には、return 0;でもつけてね cinput()内のscanf()は、%fではなくて%lfにする shou()内の(b.re * b.re + b.im * b.im) != 0 を保証すべき acabs()でhypot()呼んでいるので、必要に応じてリンクする