1 名前:デフォルトの名無しさん [2010/05/26(水) 07:45:28 BE:94671825-S★(522522)] あなたが解けない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++の宿題片付けます 135代目 pc12.2ch.net/test/read.cgi/tech/1269438098/
504 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:01:35 ] >>500 助言d それはその方が無駄にφ(n)(=count)を求めなくて済むからか? だとしたらその通りかもしれないから今後の参考にするわ
505 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:11:30 ] あくまで好みだからそんなの自分の好きにしろとか言われるかもだが プログラム書くときスペースとか改行ってどのタイミングで入れてる? 学校では a = a + 1 って書く奴がいれば a=a+1 って書く奴もいるし for(i=0;i<5;i++)って書く奴がいれば for(i = 0 ; i < 5 ; i++)って書く奴もいるし こうしたほうが効率がいいとか後で見やすいってのがあるなら参考にしたい 今なら癖とかないから変えられるし
506 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:12:55 ] >>504 そう。 できるだけ必要のない無駄な処理はしないってのが大事。
507 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:14:02 ] >>505 どうぞ google-styleguide.googlecode.com/svn/trunk/cppguide.xml
508 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:14:50 ] 何のIDE使ってるか知らないけど vs2008使ってる俺は適当に書いてから「編集→詳細→選択範囲のフォーマット」で整形してる
509 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:20:58 ] www.textdrop.net/google-styleguide-ja/cppguide.xml あえてこっちを載せないことに悪意を感じる
510 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:25:31 ] >>509 知らなかったんだごめんよ
511 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:39:58 ] >>502 が理解できない てか発想が秀逸すぎて手に負えない
512 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:43:14 ] 最大公約数をループで求めてるだけ
513 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:50:13 ] とりあえず褒めとけばいいと思ってない?
514 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:52:00 ] >>501 0<=x,y<=10000を満たす座標の各点についてその点から 最も近い点の色をその点に設定する ってあるけど 各々の座標の色はどう初期化するべきなの? なにかしら初期化しておかないと最も近い点の色もなにもないと思うんだけど。
515 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:09:33 ] 引数で与えられた点の色はこっちで好きに決めていいんだろ
516 名前:430 mailto:sage [2010/06/08(火) 23:12:01 ] >>505 K&R にしておけば後ろ指をさされることはないかと。 ただし私は int main() { ... } とかえている。 emacs(xyzzy) ではこのほうが便利だから。
517 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:54:47 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10656.txt プログラムと問題文が書いてあります [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 2010年6月9日中に提出 [5] その他の制限: 特にありません よろしくお願いします。
518 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:13:20 ] [1] 授業単元:プログラミング演習 [2] 問題文:整数nを入力し、以下のようにサイズnの“N型の図形”を、奇数目入力では”*”、偶数目入力では”+”で表示で表示されるプログラムを作成しなさい。なお、処理の終了はnが0以下の時とする。複合条件やスイッチを用いて作製なさい。 実行例 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10658.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: [3.3] 言語: C [4]期限:6/9日PM10:00 [5]その他制限: printf int while scanf float for のみの使用 なお、||、break、return,は使用禁止 プログラム形式はサンプル風にお願いします kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10660.txt
519 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:19:59 ] 上の実行例の訂正です kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10661.txt
520 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:41:51 ] #include <stdio.h> int main(void) { int i, j, n; while(scanf("%d", &n)==1 && n > 0) { printf("n=%d\n", n); for(i=0; i<n; i++) for(j=0; j<=n; j++) printf("%c", j!=n ? j==0||j==n-1||j==i ? n & 1 ? '*' : '+' : ' ' : '\n'); } return 0; }
521 名前:9 [2010/06/09(水) 10:07:40 ] >>432 すごいです!!…学校で習った感じに少し、 書き直させて頂きました(>_<) こんなに早く出来ると思ってなかったので びっくりしました。 本当に助かりました!有難う御座いました☆
522 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 10:43:14 ] シルエット カーディガン レントゲン サンドイッチ
523 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 11:01:34 ] >>501 ideone.com/EtsT0 作ってみたけどなんか違うから、だれか直してくれ
524 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 16:11:42 ] [1] 授業単元:データ構造 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10662.txt [3] 環境 [3.1] OS:特に指定なし [3.2] gcc 3.2 [3.3] 言語: (C) [4] 期限: ([2010年6月10日15:00まで] ) [5] その他の制限: なし よろしくお願いします。
525 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 16:45:36 ] >>524 おまえ、5つの数字の列の取りうる範囲は0~99999の100,000個だぞ。 だから入れるバケツの大きさは100,000の配列にしてそこへ2000個のデータを 5桁の数字に対応するバケツに次々入れて、終わったら番号の小さいバケツから順番に 数字を取り出すようにしないとダメだぞ。
526 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 16:47:15 ] void sort(char data[][LENGTH+1], int size) { int *p = calloc(100000, sizeof(int)); int i, j, k; for(i=0; i<size; i++) p[atoi(data[i])]++; for(i=j=0; i<100000; i++) for(k=0; k<p[i]; k++) sprintf(data[j++], "%05d", i); free(p); }
527 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 17:46:55 ] void sort(char data[][SLENGTH+1], int size) { int i, j=0, k; char p5[6]; int *p = calloc(100000, sizeof(int)); for(i=0; i<size; i++) p[atoi(data[i])]++; for(i=0; i<100000; i++) { if(p[i]) { sprintf(p5, "%05d", i); for(k=0; k<p[i]; k++) strncpy(data[j++], p5, 5); } } free(p); }
528 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 18:23:29 ] >>522 申し訳ないですが、 ||と条件文の中にさらに条件文は使用禁止なんです。 説明足りなくてスミマセン。 [printf("%c", j!=n ? j==0||j==n-1||j==i ? n & 1 ? '*' : '+' : ' ' : '\n'); ココと] [while(scanf("%d", &n)==1 && n > 0)ココの部分です]
529 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:11:45 ] >>528 これなら大丈夫だろw ideone.com/lGet1
530 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:27:49 ] 5つの数字が全部0って可能性はないのかな? もし0が入る可能性があるのならallocateされた領域の初期値が0じゃまずいかも。
531 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:28:55 ] data[000000]++;
532 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:39:49 ] >>530 お前は何をいってるんだ
533 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:07:46 ] >>529 何度もすみません さっきの説明が分かりにくかったですね; forの中にscanfとかを入れるのがダメなんです。 1行に付きscanf、forなどは1つです。 printf int while scanf float for のみの使用です。 それ以外は使用禁止です。 return || else if は使用禁止です。
534 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:09:59 ] >>528 誰が禁止って言ったの?
535 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:21:51 ] >>531-532 わはははは、javaやりながらここ見てたから勘違いだ。笑えwwwww
536 名前:デフォルトの名無しさん [2010/06/09(水) 20:33:58 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 次の仕様を満たすプログラムを作成せよ 「xy 平面内に任意の電荷量の点電荷を複数個配置する.xy 平面内の原点Oを中心とする4 m 四方(±2 m)の領域内において,位置r(x, y)に形成される電界Erや電位Φrを計 算する.」複数個の点電荷で形成される電界Erや電位Φrを,任意の位置r で計算する際は,重ね合わせの原理を用います 電界ベクトルの計算は, x 成分とy 成分に分けて行います [3] 環境 [3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:6月11日 [5] その他の制限: 特になし
537 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:54:43 ] 学校でやってないところは使うなと 先生に言われました;;
538 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:01:58 ] エスパー無理
539 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:03:14 ] >>537 学校と先生を教えてくれるかな?w
540 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:04:30 ] >>537 誰だお前は
541 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:11:04 ] 学校でやってないこと 使うなと 講師の先生(せんせ)に 言われたよ ――痴楽 綴り方教室
542 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:13:19 ] ≫538 例ですと 前回の課題の 問題文:整数nを入力し、以下のようになサイズnの”Z型の図形”を”*”で表示するプログラムを作成しなさい。 ただし、図形を表示するためのnの値は3以上とし、2以下の値が入力された場合は処理を終了する様にしなさい。 [実行例] 3 <-n入力 n=3 *** * *** 4 <-n入力 n=4 **** * * **** 8 <-n入力 n=8 ******** * * * * * * ******** kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10660.txt はこうなりました。
543 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:21:14 ] エスパーできないって言ってるんだが
544 名前:537 542 mailto:sage [2010/06/09(水) 21:27:23 ] ≫534 すみません!! 番号うつの忘れてました。 ホントすみません;;
545 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:35:42 ] >>536 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10664.txt 詰めは自分でやってくれ
546 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 22:00:30 ] <iostream>とか<studio.h>って何が違うんですか?
547 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 22:03:59 ] >>546 STanDard InputOutput Headerな 定義されてる関数群がちがう。
548 名前:デフォルトの名無しさん [2010/06/10(木) 00:33:37 ] もう本当に挫折しそうです。 関数を二つ pen()とqen()として作って int main()の中に呼びたいんですが この時pen()の実引数をqen()にしたいんですが これがうまくいきません、どうしたらいいですか? レス代行なので長いプログラムは書けません・すいません。 int main(void) a=pen(); qen(a); としてもpen()とqen()が別個に呼び出されるだけで一つの作業と なりません。
549 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 02:48:35 ] >>548 penの引数をqenの引数にしようとしているようには見えないので、いろいろおっちょこちょいな人なのかな。 関数ポインタをキーワードにいろいろ調べてみてください。
550 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 06:07:31 ] pen()の実引数をqen()にするなら pen(qen); だろ。
551 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 06:46:15 ] pen(void (*p)(void)); かなシグネチャは pen()の中で (*p)(); もしくは p(); として呼び出す
552 名前:デフォルトの名無しさん [2010/06/10(木) 07:52:36 ] >>550 double a; qen(a); pen(qen); ですか?普通に無理でしたが・・ pen(qen);だけでもまぁ無理でした。 >>551 pen((*p)(qen(a));ってことですか?これも無理でした。
553 名前:デフォルトの名無しさん [2010/06/10(木) 07:55:25 ] 関数ポインタってのあるんですが、馬鹿でした。で int mainの中で p= pen; qen((*p)pen());とかごちゃごちゃ色々なとこ変えて、 付け足して 90回くらい思考錯誤したけど全部だめした...... ちなみにpen()、qen()自体はそれぞれsin関数とcos関数 です。ポインタ関数理解したいのでこのままの構造でい きたいと思ってます。
554 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 07:59:47 ] 何がしたいのかさっぱり伝わってこない
555 名前:430 mailto:sage [2010/06/10(木) 08:09:29 ] >>553 #include <stdio.h> #include <math.h> double p(double (*f)(double), double a) { return sin((*f)(a)); } double q(double a) { return cos(a); } int main() { double a, b; a = 3.1415926; b = p(q, a); printf("%f\n", b); return 0; } /* end */
556 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:12:37 ] cos()の返り値をsin()の引数にするってw
557 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:21:43 ] 関数を関数の引数にするってことを理解できてないようにみえる
558 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:23:28 ] >>554 関数を2つ呼び出して、一つの関数をもうひとつの関数の 引数にしたいんです。ただそれだけです。
559 名前:デフォルトの名無しさん [2010/06/10(木) 08:23:50 ] >>555 わざわざありがとうございます、doubleじゃなくてfloatでした。 この時も関数ポインタはfですね? あとretrunっているのですか?どういう役割なのかなぁ.... それとa=3.1415926..とは? 色々ややこしいなぁ、簡単なプログラムなのにこんな複雑だとは....
560 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:25:31 ] >>558 もしかして sin(cos(a)); か?この式に何の意味があるのかは不明だが
561 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:27:38 ] >>559 問題を適切に抜き出す能力が足りないだけ 少なくとも俺は>>558 読んでもさっぱりわからん
562 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:28:07 ] >>560 それでオッケーなら>548でもオッケーだろ
563 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:30:26 ] こういう自分の勝手な解釈で嵌ってくアホ見ると、 余計なことしないで教科書のサンプルでも打ち込んでろって思うな
564 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:38:27 ] マゾなんだろ 簡単な事をわざわざ複雑怪奇に書いて苦しみ悶える事に快感を覚えるタイプ
565 名前:デフォルトの名無しさん [2010/06/10(木) 08:39:27 ] >>561 いやめちゃくちゃ単純なんですが・・ 合成関数のプログラムですよ。 sin(cos(a))ですよ。 関数が二つあるんだから、二つの関数呼び出す必要ありますよね。 全然意味不明じゃないですが・・・
566 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:44:22 ] x=cos(a); y=sin(x); 変数と代入から勉強だな。
567 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:47:18 ] >>565 それはcos(a)の返り値をsin()の実引数にするといい、 cos()をsin()の実引数にするとは言わない。 正しく用語を使えてないから、他人に正しく伝わらない。
568 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:47:37 ] >>565 まだわからない。 double sincos(double a) { return sin(cos(a)); } ではどうだめなのか。
569 名前:デフォルトの名無しさん [2010/06/10(木) 08:51:53 ] >>567 すいません。その通りです。返却値をsin()の実引数の実引数にしたいんです。 >>568 あぁ絶対言うかと思いました。 別に合成関数のプログラム作りたいわけじゃなくて、関数の呼び出しという 構造を学びたいだけで。それなら僕も考えてました。複雑なプログラムはそれ じゃ無理です。
570 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:55:31 ] お前に複雑なプログラムの何がわかるってんだよw
571 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:58:56 ] っと、>>569 はなりすましか
572 名前:553 mailto:sage [2010/06/10(木) 09:00:44 ] このスレにいる人は全員低脳ばっかりですね。
573 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:01:44 ] ・質問者はなりすましを防ぐため、トリップを使ってください。 名前欄に、「好きな数字#...」に続けて任意の文字列
574 名前:デフォルトの名無しさん [2010/06/10(木) 09:02:36 ] >>567 以後気をつけますんで、お願いします、どうしたらいいでしょう.... >>570 少し複雑になったら関数が必要だから。別にプログラムの何もわからないが。
575 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:03:29 ] >>574 日本語でおk
576 名前: ◆mDrzcbRHP2 [2010/06/10(木) 09:04:48 ] >>573 すいません。 >>569 >訂正 実引数の実引数にしたい。→実引数にしたい。
577 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:06:22 ] >>576 おまい誰だよ
578 名前:9 [2010/06/10(木) 09:09:20 ] 再び、お願いします(_ ) 【質問テンプレ】 [1] 授業単元:C言語 演習問題4-14 [2] 問題文(含コード&リンク):身長と標準体重を表示するプログラムを作成せよ。 なお、表示する身長の範囲(開始値、終了値、増分)は、整数値として読み込み、 標準体重は小数点以下2桁だけ表示すること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: main.c Visual Studio 2008 [3.3] 言語: C++ [4] 期限: 22年6月18日17:00まで [5] その他の制限: do文やif文、for文までです file:///C:/Users/aika/Desktop/%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E8%A8%80%E8%AA%9E/c.html 一応上記まで作り、実行も出来たのですが 実行時エラーで問題のように上手くいきません。 多分、水色で示したところが間違っているのだと 思うのですが…(p‥`) 手直し(?)という形で宜しくお願いします、
579 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:10:47 ] >>578 >file:///C:/Users/aika/Desktop/%E3%83%9E%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E8%A8%80%E8%AA%9E/c.html ふざけてんの?
580 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:15:44 ] aikaって名前?
581 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:25:42 ] >>580 >file:///C:/Users/aika/Desktop/マークアップ言語/c.html pc12.2ch.net/test/read.cgi/tech/1274827528/424
582 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:29:11 ] スーパーハカーでもなきゃ、あんたのPCの中身はわからんよw
583 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 09:33:03 ] >>581 それはわかってんよ 実行時エラーとか水色で示した部分がこちらは知りたいわけ
584 名前:566 ◆/91kCCQXBo mailto:sage [2010/06/10(木) 10:23:24 ] >>548 >>552 >>559 #include <stdio.h> #include <math.h> /* double sin( double x ); */ /* double sin( double x ); */ float r(double (*p)(double), double (*q)(double), float a) { return (*p)((*q)(a)); } int main() { printf("%f\n", r(sin, cos, 1.0)); return 0; }
585 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 10:29:07 ] >578 は、AKBオタ。
586 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 10:34:42 ] 仲間が見つかってよかったねw
587 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 10:53:59 ] >>616 % Prolog (その一) バケツソート(_整列されたならび) :- abolish('$temp'/2), findall(S,(for(1,_,2000),ランダムな文字列の発生(S)),L), バケツソート(L,_整列されたならび),!. バケツソート(L,_整列されたならび) :- バケツに吐き出す(L), findall(X,(鍵候補値を昇順に発生させる(S),バケツから拾い上げる(S,X)),_整列されたならび). 数値文字候補ならび(['0','1','2','3','4','5','6','7','8','9']). 鍵候補値を昇順に発生させる(S) :- 数値文字候補ならび(L), member(A,L),member(B,L),member(C,L),member(D,L),member(E,L), concat_atom([A,B,C,D,E],S). ランダムな文字列の発生(S) :- 数値文字候補ならび(L), findall(A,(for(1,_,5),M is (random mod 10) + 1,list_nth(M,L,A)),L2), concat_atom(L2,S),!.
588 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 11:02:44 ] >>587 なるほど、よくわかりました
589 名前:9 [2010/06/10(木) 11:13:51 ] すみません…どう書いたらいいのか よく分からなかったもので。 #include <stdio.h> int main(void) { int i; int low, high, step; printf( "何cmから:" ); scanf( "%d", &low ); printf( "何cmまで:" ); scanf( "%d", &high); printf( "何cmごと:" ); scanf( "%d", &step); for(i=low; i<=high; i+=step) { printf( "%dcm %.2fkg\n", low, ((low += step <= high) - 100) * 0.9); printf( "%dcm\n", low += step); } return( 0 ); } 上記のfor{文}のところです。。。 本当にすみませんでした、 また宜しくお願いします。
590 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 11:23:54 ] 589 の for 内 printf 1発目 副作用関連で鼻から悪魔コード じゃない? (関数引数での , は副作用完了点じゃないよな?)
591 名前:587 mailto:sage [2010/06/10(木) 11:33:47 ] ごめんなさい。誤爆です。行方不明だと思ったらこんなところに書き込んでいたか。
592 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 11:42:47 ] >>590 本当やね low2 = ((low += step <= high) - 100) * 0.9; printf( "%dcm %.2fkg\n", low, low2); とすればうまくいくはず
593 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 11:44:26 ] あ、だめだ low2 = ((low + step <= high) - 100) * 0.9; printf( "%dcm %.2fkg\n", low, low2); low += step <= high; か?
594 名前:581 ◆/91kCCQXBo mailto:sage [2010/06/10(木) 11:51:26 ] #include <stdio.h> int main(void) { int i; int low, high, step; printf( "何cmから:" ); scanf( "%d", &low ); printf( "何cmまで:" ); scanf( "%d", &high); printf( "何cmごと:" ); scanf( "%d", &step); for(i=low; i<=high; i+=step) { printf( "%dcm 標準体重=%.2fkg BMI(22)=%.2fkg\n", i, (i - 100) * 0.9, 22.0*i/100*i/100); } return 0; }
595 名前:デフォルトの名無しさん [2010/06/10(木) 18:59:06 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 以下のようにmain関数を定義し、mainの引数を合計するプログラムsumを作成せよ。ただし、引数の数は未定であり、実行時に決定されるものとする。 int main(int argc, char *argv[]) [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2010年6月15日まで [5] その他の制限: 端末上で ./sum 3.2 1.9 2.3 と入力すると 7.4000 と出力されるようにする。
596 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 19:27:07 ] #include <stdio.h> int main(int argc, char *argv[]) { int i; float tmp, sum=0; for(i=1; i<argc; i++){ sscanf(argv[i], "%f", &tmp); sum += tmp; } printf("%g\n", sum); }
597 名前:デフォルトの名無しさん [2010/06/10(木) 19:56:13 ] #include <stdio.h> int main(int argc, char *argv[]) { printf(argv[1]) printf(argv[2]) } のようにするとき,コマンドからargv[]にデータを入れないとエラーがでます。 配列argv[]の初期値はどのように設定すればよいのでしょうか?
598 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 20:08:21 ] if(argc<=1) exit(1);
599 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:00:42 ] 2つの自然数aとbの最大公約数gcd(a, b)を求め、それを出力するプログラムを作成せよ。 なお、m = a % b としたとき、gcd(a, b) は m≠0 の場合 gcd(b, m) に等しく、 m=0 の場合 b に等しい。 2つの自然数aとbを入力させ、a 人から b 人を選ぶ組み合わせ comb(a, b)を求め、それを出力するプログラムを作成せよ。 なお、comb(a, b) = comb( a-1, b) + comb( a-1, b-1) であり、 b==0 もしくは b==a のとき comb(a, b) = 1 である。 今週は2つありますが。。。よろしくお願いしますorz
600 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:16:32 ] >>597 argc == 1 の時はargvを調べないようにする
601 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 22:50:26 ] >>599 なお~~。の部分はプログラムのテストに使うくらいで、実際の問題とはなんの関連もないわな。
602 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:41:09 ] 【質問テンプレ】 [1] 授業単元:画像処理 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10665.txt [3] 環境 [3.1] OS: (特になし) [3.2] gcc [3.3] 言語: (C) [4] 期限: ([2010年6月14日00:00まで]) よろしくお願いします。
603 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:42:17 ] すいません。書き忘れましたが、・・・・の部分がわからないので教えていただけないでしょうか?
604 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:46:28 ] >>501 ,523 ボロノイ図の問題かな? AREA_SIZEを必要に応じて(10000などに)書き換えて下さい。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10666.cpp
605 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 00:22:35 ] >>599 2番目だけ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10667.c
606 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:44:03 ] 統計学で言うモードに相当するプログラムを書いてます まだ途中ですが次のように書いていました ですが書いている途中にエラーがででコンパイルできません Visual C++ でやってます エラーの理由とその解決方法を教えてください #include<stdio.h> int main(void) { int score[101], score, number; printf("input of number is "); scanf("%d", &number); for (int j = 0; j < 101; j++) { score[j] = 0; } for (int i = 0; i < number; i++) { scanf("%d", &score); if (0 <= score && score <= 100) { score[score]++; }else { break; } } return 0; }
607 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:52:35 ] score って変数を二つ宣言してるからじゃ?
608 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:52:39 ] エラーメッセージ書いておいてくれないと回答面倒だよ
609 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:56:24 ] scoreはscore[0]を表すってことを忘れてました すみません
610 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 13:28:28 ] (゚Д゚ )ハァ?
611 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 13:30:46 ] 違うの? 配列名は配列の先頭要素のアドレスを表すってあるけど ポインタを詳しく理解してないからアドレスとはなんぞやって聞かれてもクエスチョンマークだけど
612 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 13:38:11 ] 「配列名は配列の先頭要素のアドレスを表す」を 「配列名は配列の先頭要素を表す」こう解釈したんだろうけど 知らない言葉を無視して前後をくっつけて理解した気になってたら しょっちゅうトラブル起こるよ
613 名前:9 [2010/06/11(金) 13:44:44 ] >>594 そうですね!!ありがとうございます! 理解出来ましたm(_ _)m 本当にありがとうございます!!!
614 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 13:49:40 ] BASIC上がりか
615 名前:デフォルトの名無しさん [2010/06/11(金) 17:02:14 ] [1] 授業単元: scanf [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10668.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 6月12日 午後9:00 まで [5] その他の制限:for文まで習ってます。問1、2両方お願いします。 よろしくお願いします。
616 名前:501 mailto:sage [2010/06/11(金) 17:13:24 ] >>604 ,501,523 どうもありがとうございました。参考にさせて頂きます。 ボロノイ図でググってみましたが関連が深そうです。 課題は「データベース構造設計、更新効率性と正規性のバランス」 がテーマの講座で出たものでした。
617 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 17:38:05 ] >>615 #include <stdio.h> 問一 int main(void) { int i,num[3]={0},t,j,k; for(i=0;i<3;i++) scanf("%d", num+i); j=num[0]/num[2]; k=num[1]/num[2]; for(i=j;i<=k;i++){ t=num[2]*i; if(num[0]<=t && t<=num[1] ) printf("%d*%d=%d\n",num[2],i,num[2]*i); } }
618 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 17:46:46 ] >>615 codepad.org/lFW9VvVR
619 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 17:58:02 ] void q1() { int a, b, c, t, i; scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); t = a % c; if (t != 0) a += c - t; for (i = a; i <= b; i += c) { printf("%d, ", i); } } >>617 初期値をループで求めるのはどうなのと思わなくもない
620 名前:619 mailto:sage [2010/06/11(金) 18:00:00 ] ごめん >>618 に対してだった