1 名前:デフォルトの名無しさん [2008/12/31(水) 08:02:03 BE:378684285-PLT(43140)] あなたが解けない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++の宿題を片付けます 120代目 pc11.2ch.net/test/read.cgi/tech/1229424329/
554 名前:デフォルトの名無しさん [2009/01/10(土) 04:28:14 ] [1] 授業単元: C言語 入門 [2] 問題文(含コード&リンク): 簡易整数電卓プログラム 仕様は ・数式を入力すると計算結果を表示 ・四則演算、括弧、べき乗、階乗、が使える ・扱うのは整数(intの範囲) ・演算子の優先順位を守る(乗法・除法が先。べき乗は後ろから計算) ・+と−の単項演算子が使える(-1+5等) [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: わかりません・・・ [3.3] 言語: C [4] 期限: 2009/01/14 23:59 提出〆 [5] その他の制限: 特にありません。 テスト前なのにこの課題1つに1週間も悩んでます・・・ 検索とかしてみたのですが、どうしても解りませんでした。 長くなってしまうかもしれませんがよろしくお願いします。
555 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 05:25:07 ] >>553 C言語にて ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8586.c
556 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 06:02:01 ] >>554 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8587.txt
557 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 06:20:27 ] >>554 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8588.txt
558 名前:デフォルトの名無しさん [2009/01/10(土) 10:12:08 ] >>483 >>484 どなたかお願いできないでしょうか スタックを使う問題なんですが 期限は今日中です
559 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 10:44:27 ] >>558 #include <stdio.h> typedef struct stack_ { char d[128]; int p; } Stack; void push(Stack *s, char c) { s->d[(s->p)++] = c; } void pop(Stack *s) { s->d[(s->p)--] = '\0'; } int main(void) { Stack s; s.p = 0; push(&s, 'A'); push(&s, 'B'); push(&s, 'D'); push(&s, 'I'); pop(&s); puts(s.d); pop(&s); push(&s, 'E'); push(&s, 'J'); pop(&s); puts(s.d); push(&s, 'K'); push(&s, 'O'); pop(&s); puts(s.d); pop(&s); pop(&s); pop(&s); push(&s, 'C'); push(&s, 'F'); pop(&s); puts(s.d); push(&s, 'G'); push(&s, 'L'); pop(&s); puts(s.d); pop(&s); push(&s, 'H'); push(&s, 'M'); push(&s, 'O'); pop(&s); puts(s.d); pop(&s); push(&s, 'N'); pop(&s); puts(s.d); return 0; }
560 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 11:21:32 ] >>558 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8589.c
561 名前:デフォルトの名無しさん [2009/01/10(土) 13:25:26 ] ナンバーサイン野郎きめぇお( ^ω^)
562 名前:デフォルトの名無しさん [2009/01/10(土) 13:33:32 ] 訳の分からない#をいちいちつける目立ちたがり屋、ナンバーサイン(笑)
563 名前:558 [2009/01/10(土) 13:33:43 ] >>559 >>560 ほんとにありがとうございました! これから自分なりに理解してみようと思います
564 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 13:45:48 ] ナンバーサインってなんぞ?
565 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 13:46:04 ] [1] 画像処理 [2] BMP画像(カラー)をネガポジ反転するプログラムを作成せよ。 ピクセルはRGBで3つ、最大値は255とする。 [3] 環境 [3.1] Linux [3.2] gcc [3.3] C言語 [4] 1月12日 [5] 特にありません。 よろしくお願いします。
566 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 13:50:52 ] 元となる画像を出さないとトラブルの元
567 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:11:46 ] >>565 pc11.2ch.net/test/read.cgi/tech/1231180205/332
568 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:19:33 ] >>566 この種の依頼をするやつは、BMPが何かも知らない。JK
569 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:25:14 ] >>564 いげたのこと
570 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:34:20 ] 井桁の方が分からんやつ多いんじゃないか、若い連中には
571 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:48:48 ] シャープに似てる奴、でいいか
572 名前:デフォルトの名無しさん [2009/01/10(土) 14:56:26 ] [1] コンピュータプラクティス [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8593.txt [3] 環境 [3.1] Linux [3.2] gcc [3.3] C [4] 1月13日 [5]出来るだけ簡単な関数でお願いします 余裕があったらプログラムのフローチャートみたいなのを教えてださい
573 名前:572 [2009/01/10(土) 15:17:48 ] すいません >今n枚のカ−ドに書かれている数字を次のような数列で表すものとする。 これは依頼した問題には出てこない要素なので無視してください。
574 名前:572 [2009/01/10(土) 15:19:53 ] 度々申し訳ございません。 環境はLinuxじゃなくてwindows XPでした……
575 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 15:38:53 ] >>565 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8595.c クソースゆえ、異論は認める。
576 名前:537 mailto:sage [2009/01/10(土) 16:10:37 ] >>551 ありがとうございます。
577 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:20:35 ] wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
578 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:38:39 ] ∩___∩ | ヽ / ● ● ヾ おいしいクマ | ( _●_)。. | 彡、 ) ヽノ.(⌒ヽ`ミ ww/ _wWww\ \ヽw Www wwWwwwwww (__ヽ二二フ ヽ ノ
579 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:41:13 ] その 草 、 腐 ってますよ?
580 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 16:53:41 ] >>523 これできませんか?
581 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 17:55:25 ] >>523 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8596.txt
582 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 18:01:49 ] >>581 ありがとうございます
583 名前:572 [2009/01/10(土) 18:34:28 ] だれか>>572 お願いします。
584 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 18:57:23 ] >>583 まあ、学校の宿題なら、まず、原文をアップしてくれないと
585 名前: ◆i9Dvbn/Lf6 mailto:sage [2009/01/10(土) 19:05:47 ] [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): 二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、 アニメーション表示させるプログラムを表示しなさい。 グラフィックはgnuplotでもEGGXでもどちらでもよい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2009年1月22日まで]
586 名前:nyao [2009/01/10(土) 19:34:08 ] >>373 をお願いします。
587 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 19:40:21 ] >>585 プログラムの実装より物理部分の方が難しいしwww @厳密な数値解の式をよこせ A近似解を求める運動方程式をよこせ B解法の指定は?4次ルンゲ=クッタ? C振り子の軸長さはいくつ?変数は振れ角それとも座標?初期振れ角は2つあるだろ? 解答されても俺は書かないけど、少なくともこれぐらいはないと誰も書いてくれないだろ
588 名前:デフォルトの名無しさん [2009/01/10(土) 20:06:54 ] キーボードから入力したキーが、アルファベットの大文字ならば、小文字に変換して、画面に出力しなさい。 それ以外なら、そのまま画面に出力しなさい。 できる人お願いします。
589 名前:デフォルトの名無しさん [2009/01/10(土) 20:08:10 ] [1] コンピュータプラクティス [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8599.txt [3] 環境 [3.1] windows XP [3.2] gcc [3.3] C [4] 1月13日 [5]出来るだけ簡単な関数でお願いします 問題文の原文をそのまま上げました。 よろしくお願いします
590 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 20:11:49 ] >>589 本当に、原文に「正の自然数」って書かれてるの?
591 名前:デフォルトの名無しさん [2009/01/10(土) 20:17:54 ] >>590 ちゃんとそうかいてありますね。
592 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 20:31:05 ] >>591 ひどいもんだな。 要件も不明だし、このままなんか作っても、なんやかんやで突っ返されるだろ
593 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 20:35:26 ] 突っ返すのが楽しい人が作ったとしか思えん
594 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 20:42:38 ] あそこまでアルゴリズムを説明してくれてて何がわからないんだ?
595 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 20:43:31 ] そうかな?たしかにテスト項目とかないから曖昧だけど、授業のプログラムなんてそんなもんだろ やることはa[2k]の和とa[2k+1]の和を比較するだけだから文句のつけようもなくない? アルゴリズムは「先手の初手は問題文に書いてあるとおり・次手以降は後手の取った隣を取る」で終了だし
596 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 20:53:54 ] >>594 勉強し始めってのもあり知識不足という訳ですが、引き分けのときのプログラムがさっぱりで…… 一応、授業内容は、とにかくこういうゲームをプログラミングしろってやつなんですよ だから、自分はn枚分の整数をユーザが標準入力して、その上で先手が勝つルールを使って先手が勝てばいいのかと思ったのですが…… 突っ返されたらその時、なんとか考えますので、作ってくれませんでしょうか……
597 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 21:09:37 ] >>594 オマエが何を理解してしまったのか心配だよ・・・
598 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 21:30:29 ] >>585 って本当に授業単元:Cプログラミングなのか? もしそうなら、世の中にはレベルの高い大学もあるもんだなあと感心。
599 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 21:33:20 ] そうか? コンパイラ名とバージョンにgccしか書いてないし質問主のレベルは低いと思う
600 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 21:39:28 ] 質問主のレベルが低くて学校のレベルが高いからここに来てるんじゃなかろうか
601 名前:589 [2009/01/10(土) 21:59:58 ] すいません。今から先生にメールしてこの問題の不明な点を聞いてみるので、できれば変な所を教えてくれませんでしょうか
602 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:15:50 ] 別に禁煙宣言しなくていいけど、>>589 は実際にカードを作ってこのゲームを行うことができるの?
603 名前: ◆DMlEnlGjq. [2009/01/10(土) 22:25:01 ] [1] 授業単元:アルゴリズムとデータ構造1 [2] 問題文(含コード&リンク): ○プログラムを改良せよ。また、改良した部分をしるせ。 ・Dコマンドで削除する時、本当に削除してよいか確認できるようにせよ。 ・Iコマンドで学籍番号がちょうど4桁であることをチェックできるようにせよ。 ・Iコマンドで改行だけの氏名や学籍番号になってしまう。改行だけの場合、エラーメッセージをだせ。 ・Iコマンドで既に存在する学籍番号と同じ番号を入力すると二重に登録されてしまう。 二重登録されないように、エラーメッセージをだせ。 ・Iコマンドを投入した後に気が変わってコマンド入力に戻ろうとしても、何か挿入しなければならない。 コマンド入力に戻れるようにせよ。 ・このプログラムの構造はだらだらとわかりにくい。各コマンドに対応する関数を作り、わかりやすい形にせよ。 ・「コマンド?[I(挿入),D(削除),P(表示),X(終了),W(書込み),R(読出し),X(終了)]」と毎回出るのは煩わしい。 「コマンド?」だけにして、H(ヘルプ)コマンドを投入すると、各コマンドの説明が表示されるようにしなさい。 ・eメールアドレスと担当教員名のデータも格納できるようにせよ。 ・P(表示)コマンドで、表示範囲を指定できるようにせよ。例えば、前後の学籍番号を指定すると、その範囲だけが表示されるようにせよ。 [3] 環境 [3.1] OS: Windows XP [3.3] 言語: C [4] 期限: [2009年1月22日00:00まで] [5] その他の制限:特になし よろしくお願いします。
604 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:27:02 ] >>603 また桁外れのマヌケが到着したが、 ここでは珍しくも無い・・・
605 名前:デフォルトの名無しさん [2009/01/10(土) 22:28:22 ] >>602 一応できたつもり…です
606 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:29:51 ] >>603-604 w
607 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:39:15 ] >>605 そ、そうか。 > nが偶数のとき先手も後手もn/2枚を取る。nが奇数のとき先手も後手も(n−1)/2づつ取り最後に1枚が残る。 これはどうすればいいの? その後の例では一枚ずつ取ってるように見えて。
608 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:39:43 ] ああ!ごめんよみまちがえてた>< はあく。
609 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:40:41 ] >>589 "コンピュータプラクティス"でググった結果からみたところ、 東洋大学工学部情報工学科 コンピュータ・プラクティスIIIのカード取りゲームの課題か。(・∀・)ニヤニヤ
610 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:44:30 ] nが奇数の時って先手必勝なのだろうか
611 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:44:42 ] 必勝じゃない
612 名前:デフォルトの名無しさん [2009/01/10(土) 22:46:39 ] >>609 一年の時に仮面浪人して失敗して、プログラムさっぱりw 春休み辺りでまとめて勉強するつもりです
613 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:47:13 ] >>612 なんで冬休みにまとめて勉強しなかったの?
614 名前:# [2009/01/10(土) 22:47:53 ] [1] 授業単元:アルゴリズムとデータ構造1 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8600.txt [3] 環境 [3.1] OS: Windows XP [3.3] 言語: C [4] 期限: [2009年1月20日24:00まで] [5] その他の制限:特になし 宜しくお願いします。
615 名前:585 ◆i9Dvbn/Lf6 mailto:sage [2009/01/10(土) 22:50:17 ] [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): 二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、 アニメーション表示させるプログラムを表示しなさい。 グラフィックはgnuplotでもEGGXでもどちらでもよい。 教材の一部を貼っておきます。 up2.viploader.net/pic3/src/vl2_092922.png up2.viploader.net/pic3/src/vl2_092923.png [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2009年1月22日まで]
616 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 22:50:41 ] >>612 期末テストの勉強で忙しかったです
617 名前:nyao [2009/01/10(土) 23:33:21 ] すいません! >>373 をどなたかお願いします!
618 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:00:11 ] >>617 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8601.cpp 適当だけど。少しは他人に見やすいソースを書くように、自分でもがんばろうね。
619 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:13:54 ] >>589 さっぱりわからねーな #include <stdio.h> int main(){ int odd=0,even=0; while (1){ int dat; if(scanf("%d", &dat)==EOF)break; odd+=dat; scanf("%d", &dat); even+=dat; } //大きい方を選ぶ if(odd<even){ int temp =odd; odd=even; even=temp; } //点数 printf("先手:%d,後手:%d\n",odd,even); //勝敗 if(odd==even){ printf("引き分け\n"); }else{ printf("先手の勝ち\n"); } return 0; }
620 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:36:52 ] >>619 やばすぎw
621 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 00:48:09 ] >>610 右端(or左端)と、それと最後に残る数以外の偶数番目と奇数番目合計の差との大小によってきまる。
622 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:19:26 ] >>621 >>610 後手が例の戦略を取るかぎり、最後に何を残すかは先手が選べる(確かめてないけど多分どれでもOK) ということは後手は負けそうなら例の戦略をとらなくなるので、そうすると配列依存になる つまり、奇数の時は必勝戦略は存在しない こうなるのかな?意外に深いゲームなのかもしれん
623 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:22:07 ] 問題文の必勝戦略は通用しないだろうが先手必勝かどうかは別の話だな
624 名前:デフォルトの名無しさん [2009/01/11(日) 01:23:34 ] メイン関数以外で、コマンドラインの引数をとりたいです。 ARGV[1] ARGV[2]をmain以外でファイル名を受け取りたいということです。 グローバルでchar*を宣言して、mainでそのARGV[1]のアドレスを取っておけばよい? 問題はありますか?
625 名前:デフォルトの名無しさん [2009/01/11(日) 01:24:44 ] >>619 ありがとうございます!ですが、先生にメールで聞いたところ ユーザが全体のカードの枚数n(偶数になるように指定)とそのカードの書かれた数を被らないように繰り返し文使って標準入力させた上で、 奇数のカードの数の合計と偶数のカードの合計をだしてから、両方の合計を比べて、奇数が多いなら先手が奇数を引くように、というか先手という変数に奇数の数の合計を代入させる。 偶数なら先手が偶数のカードをひくようにして、偶数のカードの数の合計を先手という名の変数に代入する 最後に、先手=奇数か偶数の多い方の合計の点数 後手=少ないほうの で、先手の勝ち。と画面出力 とやれと来ました……。引き分けの方はルールに従って列の端と端を比べて、大きい方をとっていけば勝てるので、 端と端を比べて大きい方を先手に代入、小さいを後手に代入して同じように先手(変数)と後手(変数)に計算結果を代入して、 さっきと同じように画面に出力するみたいです で、多分自分なりにまとめると カードの枚数=n(必ず偶数) カードの数: 一枚目の数=ユーザがキーボードから入れた数値 二枚目の数=ユーザ(ry(どのカードの数とも必ず異なる数を入れさせるように指定) … n枚目の数=(ry 先手=奇数or偶数の多いほうの合計点数 後手=少ない方の数 判定 先手or後手の勝ち というように結果を出せばいいようです とりあえず先生のヒントを個人的にまとめてみたんですが……これでなんとかなりますか?
626 名前:デフォルトの名無しさん [2009/01/11(日) 01:30:48 ] あ、ちなみにn=奇数のときは自分で考えろだそうです なので、まず偶数のパターンからなんとかしてやってください。
627 名前:nyao mailto:sage [2009/01/11(日) 01:31:57 ] >>618 ありがとうございました!
628 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 01:35:17 ] >>615 二重振り子の図がどっかにあるだろ あと、わざわざエネルギー保存がどうこう書いてあるってことは、 シンプレックス積分でも使うのか? 速攻で落ちるvipロダを選ぶ理由も全く分からん
629 名前:デフォルトの名無しさん [2009/01/11(日) 02:42:15 ] >>557 ありがとうございました。
630 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 04:20:47 ] >>553 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8602.txt ┌─┬─┐ ├┬┴┬┤ │├─┤│ └┴─┴┘ ┌─┬┬┐ ├┬┤││ ││├┴┤ └┴┴─┘ ┌┬─┬┐ │├─┤│ ├┴┬┴┤ └─┴─┘ ┌┬┬─┐ ││├┬┤ ├┴┤││ └─┴┴┘
631 名前:学生 [2009/01/11(日) 10:03:46 ] 1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): 単語を入力するとその単語にeがいくつ含まれているか数えてくれるプログラム。 また、単語の中に含まれるeを抜かしたものも表示せよ。 実行例 単語を入力せよ:december 単語にeが3こ含まれます。 単語のeを抜かすとd c mb r [3] 環境 [3.1] OS: Windows xp [3.2] VC 6.0 [3.3] include<stdio.h> main() { ではじめてください。 [4] 期限: 急ぎです。できれば今日の20時くらいまで [5] その他の制限:while if for などを習いました。 よろしくお願いします。
632 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:13:14 ] >>625 そもそも、扱う数値が自然数全体とかどうなのよ
633 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:13:39 ] char s[5000]; int n = 0, i = 0; fputs("単語を入力せよ:", stdout); scanf("%4999s", s); for (i = 0; s[i]; ++i) { if (s[i] == 'e') n++; } printf("単語にeが%dこ含まれます。\n", n); printf("単語のeを抜かすと"); for (i = 0; s[i]; ++i) { if (s[i] != 'e') putchar(s[i]); } putchar('\n'); }
634 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:18:23 ] 何か最近、変なのが紛れ込んでいるねw
635 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:21:13 ] >>634 鏡
636 名前:学生 [2009/01/11(日) 10:22:35 ] >>633 さん すばやい返信ありがとうございます。 しかし、fputs stdout putchar を習っていないためそれらを使わないでプログラムを作成することは可能でしょうか??
637 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:25:11 ] >>635 = 変なの と自分で認めたメガネピッツァ
638 名前:デフォルトの名無しさん [2009/01/11(日) 10:25:52 ] scanf("%4999s", s); きんもぉ〜〜 しかも、これ、結局(ry
639 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:34:37 ] scanfでも悪くないが、空白は無視されるんで、あしからず
640 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 10:48:28 ] >>631 お前が習ったものを全部挙げろ > [3.3] include<stdio.h> > main() >{ >ではじめてください。 これだとコンパイルできないけどそれでもいいのか?
641 名前:デフォルトの名無しさん [2009/01/11(日) 10:49:58 ] >>632 あれはどうも自然数全体じゃなくて、要は小数点と分数以外の数える数を使ってって意味みたいですよ。 例えば n=3なら 5,16,3 てな感じで。 だから、分数と小数以外で、かつ変な文字を使わない普通の数値を入れてってことみたいです。 だから変に考えないで、普通の整数だけ使えばいいかと
642 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:00:11 ] >>641 プログラムを書くには、扱う数の範囲は重要だよ
643 名前:デフォルトの名無しさん [2009/01/11(日) 11:38:22 ] #include <stdio.h> int main(void) { int i, amari; for (i = 100; i >= 1; i--){ amari = 100 % i; if( amari == 0) printf("100 は %d で割り切れる\n", i); i--; } return 0; } これだと100は1で割り切れるとでないのですが なぜですか?
644 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 11:40:03 ] >>643 i-- が二箇所にあるから
645 名前:デフォルトの名無しさん [2009/01/11(日) 11:40:58 ] >>644 あっ さんきゅ
646 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 12:10:25 ] >>642 範囲って言うと 異なる正の数とかそういう表現ならなんとかなったってことですか?
647 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 12:12:22 ] >>646 最大値、最小値の問題じゃないかな? 総和が long の範囲内で収まるかどうか
648 名前:デフォルトの名無しさん [2009/01/11(日) 12:36:40 ] [2] 逆ポーランド記法で(正しく)書かれた式が入力として与えられた時、その式を評価した値を出力する、実際に動作するプログラムをC言語で作成せよ。 そのうえで、この問題を解くためのアルゴリズムの説明も書け。 [3] [3.1] Windows [3.3] C [4] 1月13日正午 ※データ構造として必ずスタックを使って実現させてください よろしくお願いします。
649 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 12:40:53 ] >>647 そういわれると、確に1〜∞じゃ普通にきついですよね… 周りは適当に、一年の時に習う配列の問題みたいに好きな数をポンポン入れて出来たーなんて言ってたから、そんな感じに出来ると思ってたけど、こんなに難しかったのか……orz
650 名前:学生 [2009/01/11(日) 12:59:18 ] 1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): 単語を入力するとその単語にeがいくつ含まれているか数えてくれるプログラム。 また、単語の中に含まれるeを抜かしたものも表示せよ。 実行例 単語を入力せよ:december 単語にeが3こ含まれます。 単語のeを抜かすとd c mb r [3] 環境 [3.1] OS: Windows xp [3.2] VC 6.0 [3.3] #include<stdio.h> main() { ではじめてください。 [4] 期限: 急ぎです。できれば今日の20時くらいまで [5] その他の制限:while if for char int double sum * - + / ++ %= sqrt pow != && switch case などを習いました。 よろしくお願いします。
651 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:01:27 ] おいwwww
652 名前:デフォルトの名無しさん [2009/01/11(日) 13:02:46 ] #include <stdio.h> int main(void) { char str1[100], str2[100]; int i = 0; printf("文字列入力 "); scanf("%s", str1); do { str2[i] = str1[i]; } while(str1[i++] != '\0'); printf("str2 = %s", str2); return 0; } このプログラムのwhileの条件式って どうゆう意味の判定ですか?
653 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:04:58 ] >>652 文字列の終わりまでループする
654 名前:デフォルトの名無しさん [2009/01/11(日) 13:08:01 ] 鏡を見るとさ、ちょ〜〜〜イケメソな面が映るわけよ。 これ、誰なんだろうなぁ〜って長年、思っていたけど、よく考えたらそれ、 俺じゃ〜〜ん。道理で、女性からチラチラ見られたわけだ。 よく注目されて、あれ?俺なんか変なことしたかな?って思っていたけど、 なんだ、見とれていたのかw
655 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:23:18 ] >>650 表示の仕方は何も習ってないわけか 無理だな
656 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:24:07 ] 入力もできないじゃないか
657 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:25:38 ] 入力といっても、別にキーボードを打って文字を記入する以外に、 プログラムは何かデータを受け付ける手段はあるわけで。屁理屈すまそw
658 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:26:21 ] sumなんて予約語か関数あったっけ
659 名前:585 ◆i9Dvbn/Lf6 mailto:sage [2009/01/11(日) 13:29:24 ] お願いします。 [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): 二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、 アニメーション表示させるプログラムを表示しなさい。 グラフィックはgnuplotでもEGGXでもどちらでもよい。 教材の一部を貼っておきます。 up2.viploader.net/pic3/src/vl2_093082.png up2.viploader.net/pic3/src/vl2_092922.png up2.viploader.net/pic3/src/vl2_092923.png zipで専用ロダにもあげておきます kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2009年1月22日まで] >>628 >シンプレックス積分でも使うのか? よくわかりません… >速攻で落ちるvipロダを選ぶ理由も全く分からん 他に長持ちするロダを知らないので
660 名前:A mailto:sage [2009/01/11(日) 13:30:23 ] >>650 #include<stdio.h> main() // int main(int argc, char* argv[]) { int loop, count; char ch; char input[256], output[256]; printf("単語を入力せよ :"); scanf("%s", input); // strcpy(output, input); count=0; for(loop=0; ;loop++) { ch = input[loop]; output[loop] = ch; if (ch == NULL) { break; } if (ch == 'e') { output[loop] = ' '; count++; } } printf("単語のeを抜かすと:%s\n", output); printf("単語にeが%d個含まれます。\n", count); return 0; }
661 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:32:43 ] >>657 >>636 によると習ってないものは使っちゃいけないらしい。 さすがに>>650 に挙げられているものだけでデータ入出力は無理じゃね? #include <stdio.h> main() { char s[128]; int i, c = 0; printf("単語を入力せよ:"); scnaf("%s, s); for (i = 0; s[i] != '\0'; i++) if (s[i] == 'e') { s[i] = ' '; c++; } printf("単語にeが%dこ含まれます。\n", c); printf("単語のeを抜かすと%s\n", s); return0; }
662 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:36:50 ] >>661 つ コピペ つ リダイレクト つ 内部でファイルなどを指定する まぁ、それらも習っていなければそれまでだがw
663 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:39:36 ] >>662 コピペとかリダイレクトとか関係なくね?
664 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 13:41:29 ] >>662 それにしても>>650 を見る限りでは使っていい関数はsqrt()とpow()だけっぽいんだが・・・w >>661 がgdgdだったので直した #include <stdio.h> main() { char s[128]; int i, c = 0; printf("単語を入力せよ:"); scanf("%s", s); for (i = 0; s[i] != '\0'; i++) if (s[i] == 'e') { s[i] = ' '; c++; } printf("単語にeが%dこ含まれます。\n", c); printf("単語のeを抜かすと%s\n", s); return 0; }
665 名前:565 mailto:sage [2009/01/11(日) 13:44:47 ] >>575 ありがとうございます いろいろ書き方が悪くて申し訳ないです
666 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:16:01 ] [1] 授業単元:C [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8605.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [5] その他の制限 [5.1]配列を使う どなたかよろしくお願いします
667 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 15:29:57 ] [1] 授業単元: プログラミング言語V [2] 問題文(含コード&リンク): 次のプログラムで本来入れるべき処理は何か。指摘せよ。 char *pstr; pstr = malloc(100); sprintf(pstr,"123"); pstr=malloc(10); sprintf(pstr,"456"); free(pstr); [3] 環境 [3.1] OS: Windows xp [3.3] 言語: C [4] 期限: 1月15日 よろしくお願いいたします。
668 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:00:57 ] >>667 char *pstr; pstr = malloc(100); sprintf(pstr,"123"); free(pstr); /*ここにfree()*/ pstr=malloc(10); sprintf(pstr,"456"); free(pstr);
669 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:10:03 ] >>667 ひでえ問題だ。
670 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:11:08 ] >>667 char *pstr; goto skip_label pstr = malloc(100); sprintf(pstr,"123"); pstr=malloc(10); sprintf(pstr,"456"); free(pstr); skip_label:
671 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:11:41 ] セミコロン忘れたorz
672 名前:667 mailto:sage [2009/01/11(日) 16:14:48 ] どうもありがとうございます。
673 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:16:45 ] >>667 pstrを使う何らかの処理だろJK
674 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:17:36 ] [1] プログラミング言語 c [2] Q1 現在の地域時間から15時間後の日時を表示するプログラムを作成せよ。 表示形式は時間が表示されれば自由とします。 Q2 以下の問いに○×で答えよ。 1.複数のソースファイルによりプログラムを作成するとき、機能や目的ごとに ソースファイルを分割すると、長いソースと短いソースファイルができてしまうので 均等になるように作成したほうがよい。 2.プログラムを機能分割して考えるときコンピュータの話なので、プログラミングに 都合のいいように機能を考え、ユーザの業務内容を無視してもよい。 [3] 環境 [3.1] OS: Windows xp [3.3] 言語: C [4] 期限: 1月17日 よろしくお願いいたします。
675 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:19:26 ] >>674 Q2 1.× 2.○ ベストプラクティスとか言っとけば、ありがたがる。
676 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:24:20 ] >>674 Q1 #include<stdio.h> #include<time.h> int main(void){ time_t t; t=time(NULL)+15*60*60; puts(asctime(localtime(&t))); return 0; }
677 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 16:59:16 ] >>674 #include <stdio.h> #include <time.h> int main(void) { time_t t; t=time(0); t+=15*3600; printf("%s",ctime(&t)); return 0; }
678 名前:学生 [2009/01/11(日) 18:52:26 ] たくさんの方々 色々とすいませんでした。 どうもありがとうございました。
679 名前:デフォルトの名無しさん [2009/01/11(日) 19:16:24 ] #include <stdio.h> int main(void) { double data1 = 100.0, data2; int i = 1; while (i <= 10){ printf("実数値を入力 "); scanf("%f", &data2); if (data2 == 0.0) continue; data1 = data1 / data2; printf("data1 = %f\n", data1); if ( data1 < 1.0) break; else i++; } return 0; } 間違ってるとこ教えてください。
680 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 19:24:15 ] scanf("%f", &data2); ↓ scanf("%lf", &data2);
681 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 19:26:06 ] >>680 あざす。
682 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:30:56 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8606.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC2005EE [3.3] 言語:C++ [4] 期限:09/01/15迄 [5] その他の制限:配列を使ってやる方法もある、と先生が言っていたので、intを使ったときと、配列を使ったときの2通りのものを知りたいです。 よろしくお願いします。
683 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:07:31 ] [1] 授業単元: プログラミング実習2 [2] 問題文(含コード&リンク): ・関数mainから配列のアドレスを受け取ってその中の最大値を返す関数maxを作成せよ. #include <stdio.h> int max(int a[ ]); int main(void) { int x[ ] = {3,1,2,5,4}; printf("最大値は%d\n",max(x)); return 0; } int max( int max(の後をお願いします。 実行例 最大値は5 [3] 環境 Visual C++ [3.1] OS:Windows [3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ [3.3] 言語: C言語 [4] 期限: 2009年1月12日(月)まで [5] その他の制限: 値渡し、参照渡しは習いました。 宜しくお願いします。
684 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:16:11 ] 配列の大きさはどうすんの?
685 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:19:09 ] > int max(int a[ ]); ちょっwwwwwwwwおまっwwwwwwwww
686 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:20:53 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8608.txt 3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: visualc++2005 [3.3] 言語:C [4] 期限:2009年1月12日AM7時 [5] その他の制限:できるだけ簡単な関数でお願いします
687 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:37:01 ] >>686 もとからバグってるとかないだろ。 原文でよこせ
688 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:40:23 ] >>686 do{ printf("入力して下さい\n"); scanf("%d",&n); }while(n<0);
689 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 22:42:46 ] >>688 こんなじゃね? #include<stdio.h> int main(){ int n; int flag=2; do{ printf("入力して下さい\n"); scanf("%d",&n); if(n<0){ flag--; }else{ printf("%d\n",2*n); flag=2; } }while(flag); printf("終了します\n"); return 0; }
690 名前:585 ◆i9Dvbn/Lf6 mailto:sage [2009/01/12(月) 00:23:57 ] お願いします。 [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): 二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、 アニメーション表示させるプログラムを表示しなさい。 グラフィックはgnuplotでもEGGXでもどちらでもよい。 教材の一部を貼っておきます。 up2.viploader.net/pic3/src/vl2_093082.png up2.viploader.net/pic3/src/vl2_092922.png up2.viploader.net/pic3/src/vl2_092923.png zipで専用ロダにもあげておきます kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2009年1月22日まで]
691 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 00:30:43 ] >>690 数式みると拒否反応が出る 現役の時でも怪しかったというのに今となってはどうにもならんw
692 名前:674 mailto:sage [2009/01/12(月) 00:41:03 ] >>675 様>>676 様>>677 様 ありがとうございます。
693 名前:675 mailto:sage [2009/01/12(月) 00:44:18 ] >>692 待て!
694 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 00:51:01 ] >>693 自分でまいた種だw
695 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 00:53:07 ] >>690 ぶっちゃけ式も読めない。 3枚目の1も2も付いてないΦは何の角度?
696 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 00:59:31 ] >>695 二枚目の式に対して三枚目の近似を適用した結果だから… どうなるんだろう 紙に書かないとわからんw
697 名前:sage [2009/01/12(月) 00:59:35 ] [1] 授業単元: c言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8610.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C言語 [4] 期限: 2009年 1月 13日 [5] その他の制限:できるだけ単純なプログラムにてお願いいたします。 後できればアルゴリズムを簡単でよければプログラムの下の方に書いていただけると助かります。 まる投げとはいっても一応自分で理解できなければ意味がないと思うので。 是非よろしくお願いいたします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8610.txt
698 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:01:56 ] >>686 2回連続で負の数が入力されたら終了ってことでいいんだよな? #include <stdio.h> int main(void) { int n; int flag = 0; do { printf("入力してください\n"); scanf("%d", &n); if (n < 0) flag++; else { flag = 0; printf("%d\n", 2 * n); } } while (flag != 2); printf("終了します\n"); return 0; }
699 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:02:02 ] ほんとに3枚目の式合ってるんかな。 もしくは情報不足か
700 名前:585 ◆i9Dvbn/Lf6 mailto:sage [2009/01/12(月) 01:16:14 ] とにかくさっぱりわからないので、少しでもお願いします これで最後なんです
701 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:33:22 ] [1] 授業単元: c言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8611.txt [3] 環境 [3.1] OS: XP [3.2] コンパイラ名とバージョン:visualc++2005 [3.3] 言語: C言語 [4] 期限: 2009年 1月12日 12:00まで [5] その他の制限:特になし よろしくお願いします。
702 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 01:47:26 ] >>697 1問目 枝狩りしてないので n=100 (190569292 通り) くらいが限界。ついでにすぐに計算結果が long を超える #include<stdio.h> #include<stdlib.h> int min(int a, int b){ if(a<b) return a; return b; } long huga(int n, int maximum){ int i; long ret=0; for(i=min(n, maximum);i>0;i--){ if(n-i>0) ret+=huga(n-i, min(i, maximum)); else ret++; } return ret; } long hoge(int n){ return huga(n, n); } int main(int argc, char *argv[]){ int n=4; if(argc==2) n=atoi(argv[1]); printf("払い方は %ld 通り (n=%d)\n", hoge(n), n); return 0; }
703 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 02:02:34 ] >>697 3問目 #include<stdio.h> #include<stdlib.h> #define ADJUST(v) (((v)=='1' || (v)=='0')?(v):'X') int myNOT(int A){ if(A=='1') return '0'; if(A=='0') return '1'; return 'X'; } int myOR(int A, int B){ if(A=='1' || B=='1') return '1'; if(A=='0' && B=='0') return '0'; return 'X'; } int myAND(int A, int B){ if(A=='0' || B=='0') return '0'; if(A=='1' && B=='1') return '1'; return 'X'; } int myRSFF(int S, int R, int Q){ if(S=='0' && R=='0') return ADJUST(Q); if(S=='1' && R=='0') return '1'; if(S=='0' && R=='1') return '0'; return 'X'; } int main(void){ char buf[3][10]; scanf("%9s%9s%9s", buf[0], buf[1], buf[2]); printf("S=%c R=%c Q=%c --> Q'=%c\n", buf[0][0], buf[1][0], buf[2][0], myRSFF(buf[0][0], buf[1][0], buf[2][0])); return 0; }
704 名前:703 mailto:sage [2009/01/12(月) 02:04:19 ] >>703 は無しで^^;
705 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 02:13:30 ] >>695 プログラム無知の数学科出身のおれの意見を書かせてくれ おそらく二重振り子の原理はφ_1の角度にある玉が原点方向に向かって振れる運動と φ_2の角度にある玉が原点方向に振れる運動で初期の角度に大きな違いがある なので一枚目の画像の青い玉の連結が連立微分方程式において重要な役割を得る が、しかしもしΔφ=φ_1-φ_2=φ≒0ならば、青い玉の部分を考えず(二重振り子にならない) φ_1≒φ_2になるので考える振り子の運動方程式は直線OQの単振り子のそれに近似できる φはΔφの限りなく0に近い値のことを指していると思われる
706 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 02:14:28 ] 今後、宿題に答えてもらうには、一問1,000円の課金にしない?
707 名前:703 mailto:sage [2009/01/12(月) 02:17:30 ] >>697 3問目 #include<stdio.h> #include<stdlib.h> #define ADJUST(v) (((v)=='1' || (v)=='0')?(v):'X') int myNOT(int A){ if(A=='1') return '0'; if(A=='0') return '1'; return 'X'; } int myOR(int A, int B){ if(A=='1' || B=='1') return '1'; if(A=='0' && B=='0') return '0'; return 'X'; } int myAND(int A, int B){ if(A=='0' || B=='0') return '0'; if(A=='1' && B=='1') return '1'; return 'X'; } int myNOR(int A, int B){ return myNOT(myOR(A, B)); } int myNAND(int A, int B){ return myNOT(myAND(A, B)); } int myXOR(int A, int B){ return myOR(myAND(myNOT(A), B), myAND(A, myNOT(B))); } int myRSFF(int S, int R, int Q){ return myXOR(myOR(myAND(myNOR(S, R), Q), myAND(myXOR(S, R), S)), myAND(myAND(S, R), 'X')); } int main(void){ char buf[3][10]; scanf("%9s%9s%9s", buf[0], buf[1], buf[2]); printf("S=%c R=%c Q=%c --> Q'=%c\n", buf[0][0], buf[1][0], buf[2][0], myRSFF(buf[0][0], buf[1][0], buf[2][0])); return 0; }
708 名前:703 mailto:sage [2009/01/12(月) 02:31:05 ] >>707 は S=0 R=X Q=0 --> Q'=0 になっちまうけど X 出すべきかな?www
709 名前:不完全なソース mailto:sage [2009/01/12(月) 03:11:21 ] >>682 頭に0がつく数字を考慮しない場合 #include <stdio.h> void main(){ int gakuban; printf("学籍番号??? "); scanf("%d",&gakuban); if(999999<gakuban<10000000) printf("学籍番号は7桁の数字で入力して下さい\n"); else printf("e-mailアドレス: g%d@〜〜〜〜〜〜\n",gakuban); } で動くが、例を見る限り0が頭につく数を考慮しなきゃダメそうだね
710 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 04:01:02 ] >>697 2問目 #include<stdio.h> #include<math.h> #define PI (3.1415926535897932384626433832795) #define DELTA (0.01) double Calc(double t, double digree){ double radian, x, y, vx0, vy0, v0=138000/3600.0, x0=0.0, y0=1.80, g=9.8; radian=digree/180*PI; vx0=v0*cos(radian); vy0=v0*sin(radian); x=x0+vx0*t; y=y0+vy0*t-g*t*t/2; printf("%e,%e\n", x, y); return y; } int main(void){ double t, digree=0.0, *pdigree; pdigree=&digree; scanf("%lf", pdigree); for(t=0.0;Calc(t, digree)>=0.0;t+=DELTA); return 0; }
711 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 04:40:23 ] >>701 以下、2問目の解答。main内のwhileの行と不要な関数を消せば1問目になるよ。 #include<stdio.h> #include<stdlib.h> typedef struct node_ { int v; struct node_ *l, *r; } node, *pnode; pnode root = NULL; void insert_r(pnode *t, pnode n) { if (*t) insert_r(n->v < (*t)->v ? &(*t)->l : &(*t)->r, n); else *t=n; } void insert(int v) { pnode n = malloc(sizeof(node)); n->v=v; n->l=n->r=NULL; insert_r(&root, n); } void erase_r(pnode *t, int v) { if (*t) if ((*t)->v == v) { pnode l = (*t)->l, r = (*t)->r; free(*t); *t = r; if (l) insert_r(t, l); } else erase_r(v < (*t)->v ? &(*t)->l : &(*t)->r, v); } void erase(int v) { erase_r(&root, v); } void print_r(pnode n) { if (n) { print_r(n->l); printf(" %d", n->v); print_r(n->r); } } void print() { printf("data ="); print_r(root); printf("\n"); } int input_value() { int v=0; printf("数値>"); scanf("%d", &v); return v; } int menu() { char s[100]; printf("a=追加、b=削除、c=表示 >"); scanf("%99s", s); switch(s[0]) { case 'a': insert(input_value()); break; case 'b': erase(input_value()); break; case 'c': print(); return 0; } return 1; } int main() { int i; for (i = 0; i < 20; i ++) insert(rand()%101); print(); while (root && menu()); return 0; }
712 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 06:01:16 ] >>711 不要な関数とはどれのことですか?
713 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 06:40:22 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8607.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: visualc++2005 [3.3] 言語:C [4] 期限:2009年1月12日AM10時 [5] その他の制限:できるだけ簡単な関数でお願いします
714 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 08:47:46 ] >>648 お願いします
715 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 09:06:40 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8612.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Stdio 2005 [3.3] 言語: C [4] 期限: 1/12 22:00 [5] その他の制限:ヒントを参考に作成して下さい よろしくお願いします
716 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 09:55:21 ] >>695 クソすぎる そのφはφ_2のTypoだしD'とかいらないし 氏ねばいいのに
717 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 10:26:10 ] >>713 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8613.txt
718 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 10:36:54 ] >>715 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8614.txt
719 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:06:48 ] >>709 おっしゃるとおり、0の場合も考えないといけないんです・・・ どうもintでやると先頭0だと0が消えちゃうのでintは無理なんでしょうか?
720 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:12:03 ] >>715 #include <stdio.h> #define BUFFSIZE 256 #define FGETS(buff) fgets(buff, BUFFSIZE, stdin); *(strchr(buff, '\n')) = '\0' int main(void) { FILE *ifp, *ofp; char buff[BUFFSIZE]; int i = 0; printf("入力ファイル名を入力:"); FGETS(buff); ifp = fopen(buff, "r"); printf("%sを入力しました。\n", buff); printf("出力ファイル名を出力:"); FGETS(buff); ofp = fopen(buff, "w"); printf("%sを出力しました。\n", buff); while (fgets(buff, BUFFSIZE, ifp) != NULL) fprintf(ofp, "%4d: %s", ++i, buff); fclose(ifp); fclose(ofp); return 0; }
721 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:24:14 ] 早急のお返事ありがとうございます。 >>702 long huga(int n, int maximum){ int i; long ret=0; for(i=min(n, maximum);i>0;i--){ if(n-i>0) ret+=huga(n-i, min(i, maximum)); else ret++; } return ret; } の処理は何を表しているのでしょうか? 後アルゴリズムがいまいちプログラムから読み取ることができないので簡単に説明していただけると助かるのですが・・・ 自分で考えても思いつかなくて。
722 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:27:42 ] >>719 入力が7桁以下の場合でもOKなら #include <stdio.h> int main() { int gakuban; printf("学籍番号??? "); scanf("%d",&gakuban); if(0 < gakuban && gakuban < 10000000) { printf("e-mailアドレス: g%07d@〜〜〜〜〜〜\n",gakuban); } else { printf("学籍番号は7桁の数字で入力して下さい\n"); } return 0; }
723 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:32:28 ] >>682 #include <stdio.h> #include <ctype.h> #define BUFFSIZE 16 #define N 7 int main(void) { char buff[BUFFSIZE]; int i; printf("学籍番号??? "); fgets(buff, BUFFSIZE, stdin); for (i = 0; buff[i] != '\0'; ++i) if (!isdigit(buff[i])) break; if (i != N) { printf("学籍番号は7桁の数字で入力してください\n"); return 1; } buff[N] = '\0'; printf("e-mailアドレス: g%s@〜〜〜〜〜〜〜〜\n", buff); return 0; }
724 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:34:16 ] どなたか>>666 をお願いできませんでしょうか
725 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 11:54:35 ] >>721 二つ目以降の数字についてはすでに使用した数字以下の数字を使うことで 順列を並べ替えたものを除外しています。そのために引数 maximum を使ってます 例) n=4 のとき 4 採用 3 1 採用 1 3 除外 2 2 採用 2 1 1 採用 1 2 1 除外 1 1 2 除外 1 1 1 1 採用 今、huga という関数が自然数 n および maximum を満たす すべての組み合わせの数を数え上げることができると*仮定*します ある数 i (1≦i≦n かつ i≦maximum) を使用すると決定したときの 組み合わせ数は huga(n-i, min(i, maximum)) で求まります(仮定より) n=4 の時 4 0 → 1通り (これが else ret++;) 3 1 → huga(1, 1) 通り 2 2 → huga(2, 2) 通り 1 3 → huga(3, 1) 通り ということで n=4 の時の総組み合わせ数は 1 + huga(1, 1) + huga(2, 2) + huga(3, 1) になります 仮定を証明するのは自分でどうぞ
726 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 14:05:36 ] >>666 問1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8615.txt
727 名前:585 ◆i9Dvbn/Lf6 mailto:sage [2009/01/12(月) 14:25:48 ] お願いします。 [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): 二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、 アニメーション表示させるプログラムを表示しなさい。 グラフィックはgnuplotでもEGGXでもどちらでもよい。 教材の一部を貼っておきます。 up2.viploader.net/pic3/src/vl2_093082.png up2.viploader.net/pic3/src/vl2_092922.png up2.viploader.net/pic3/src/vl2_092923.png zipで専用ロダにもあげておきます kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([2009年1月22日まで] さっぱりわからないので少しだけでもお願いします
728 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 14:27:11 ] >>666 問1 出遅れたけど、せっかく作ったから kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8616.txt 問2は実行結果の何がどう間違っているかを教えてくれると解が早いんだけど。
729 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 14:40:41 ] >>726 >>728 助かりました本当にありがとうございます。 >>728 失礼しました 実行結果が 総文字数:296 単語数:83 行数:16 となるのが正しいのですが、 自分が作ったものでは 総文字数 :315 単語数 :87 行数 :20 と、異なった結果が出てしまいます。
730 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 14:56:03 ] >>729 >>666 を見る限り、「文章の終端」 == 「空行が2つ連続」としているから、 char word[][50] の最後にもう一つ空行を入れてやればそのコードで正しく動く。
731 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:13:49 ] >>730 分かりました、ありがとうございます。 助かりました
732 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:25:47 ] 初めまして、今Cを勉強してて。 問題文というか、ポインタと構造体が理解できなくて苦しんでいます。 codepad.org/H4wmHhPj このようなプログラムを組んだのですが。 mainでのAA[0]、AA[1]の値が、関数に行くとmainのAA[0]がAA[1]に入ってしまいます。 全く原因が分からず苦戦してます。 もしよろしければご教授願います。 やりたいこととしては32bit×32bit=64bitの桁あふれを解消するということです。
733 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:27:06 ] >>732 スレ違い 帰れ
734 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:32:17 ] >>733 さん 一応課題なのでこのスレに来たのですが・・・ 期限は明日です・・・
735 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:36:20 ] >>732 ああもうマルチうざい これやるから帰れ codepad.org/GIUMvCMC
736 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:39:18 ] >>734 死ね。
737 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:39:59 ] >>735 さん 有難うございます。 すぐに出来るってすごいですね・・・ 多倍長やるのに構造体って必要ないんですか?
738 名前:デフォルトの名無しさん [2009/01/12(月) 15:43:24 ] >>736 やっ、やめて下さい、殺さないで下さい、通報しますよ?
739 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 15:54:39 ] >>722 ありがとうございます やはり配列使うしかないのでしょうか・・・ >>723 できるのですが、残念ながらbuffや、stdin,breakは習ってないのです。ごめんなさい。
740 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 16:19:09 ] >>1 >・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
741 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 16:22:30 ] >>739 >>722 でダメなのか?