C/C++の宿題片付けます 124代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/03/02(月) 02:13:06【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 122代目(実質123代目)
http://pc11.2ch.net/test/read.cgi/tech/1232029287/
0002デフォルトの名無しさん
2009/03/02(月) 02:24:21C/C++の宿題を片付けます 122代目
http://pc11.2ch.net/test/read.cgi/tech/1232001038/
0003デフォルトの名無しさん
2009/03/02(月) 04:31:50前すれ998君、ちょっと職員室に来なさいw
0004デフォルトの名無しさん
2009/03/02(月) 23:53:25[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8949.txt
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限: 3日朝まで
[5] その他の制限:よろしくお願いします。
0005デフォルトの名無しさん
2009/03/03(火) 00:03:081. (1)i*width+j (2)i*width+width-j-1
2. i <= 20 → i < 10 と j <= 20 → j < 20
3. 45
0006デフォルトの名無しさん
2009/03/03(火) 00:05:121. 構造体がどこから出てきたのか分からない
2. エラーが何を指しているのか分からない
3. 実行してみればいいだろ
0007デフォルトの名無しさん
2009/03/03(火) 17:27:250008デフォルトの名無しさん
2009/03/03(火) 17:33:05こう言う問題に対してこう言う解答でしたが、理解できません教えてくださいって、
初心者スレにでも書き込め。
0009デフォルトの名無しさん
2009/03/03(火) 17:36:27ありがとうございました
0010デフォルトの名無しさん
2009/03/03(火) 22:43:54[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8950.txt
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限: 4日朝まで
[5] その他の制限:現在のプログラムでは始めの入力するところがscanfとなっていますが、gets()かgetchar()で文字列として入力して数字以外を受け付けないように変更してもらいたいです。よろしくお願いします。
0011デフォルトの名無しさん
2009/03/03(火) 23:05:41問題文みてないけど
0012デフォルトの名無しさん
2009/03/03(火) 23:23:030013デフォルトの名無しさん
2009/03/03(火) 23:32:58char str[100];
int i;
gets(str);
i = atoi(str);
でいいんじゃね?
0014デフォルトの名無しさん
2009/03/03(火) 23:37:06http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8951.txt
もうみたくない
0015デフォルトの名無しさん
2009/03/04(水) 20:10:47[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8952.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cygwin gcc 3.4.4
[3.3] 言語: C言語
[4] 期限: 平成21年3月6日金曜日正午まで
[5] その他の制限:
ライブラリ関数はstdio.hとstdlib.hに書かれているもの以外を使用しないこと。
無効な数値が入力されたら、「Invalid value input.」と表示して入力をやり直すようにすること。
goto文とscanf関数は使用しないこと。
友達がいなくて誰にも聞けません。誰か助けてください。
そもそも何をするプログラムなんでしょうか……
0016デフォルトの名無しさん
2009/03/04(水) 20:33:46いい年してボーリングもしたことないのか
0017デフォルトの名無しさん
2009/03/04(水) 20:43:05gets(char*) 使用禁止てことで
char str[10];
fgets(str,10,stdin), year[1] = atoi(str); // scanf("%d",&year[1]);
fgets(str,10,stdin), month[1] = atoi(str); // scanf("%d",&month[1]);
fgets(str,10,stdin), reset = atoi(str); // scanf("%d",&reset);
0018デフォルトの名無しさん
2009/03/04(水) 20:48:36ボ"ウ"リングだろ。
3と5がちょっと微妙だな
ダブルの時に次の1投が4倍になるようにも読める
ま、書いてあるとおりに組むしかないんだろうな
出来るのはクソプログラムだが
0019デフォルトの名無しさん
2009/03/04(水) 20:55:54そのままプログラムを作ったらおかしな事になりそうだなw
0020デフォルトの名無しさん
2009/03/04(水) 21:18:40球を投げるからballingと思った
[2] 問題文(含コード&リンク):入力仕様を、入力座標は最大2桁までの整数を
最大10件までとし、入力範囲のチェックと、最大件数のチェックを行うプログラムの
作成。
[3] 環境
[3.1] OS: xp
[3.2] コンパイラ名とバージョン: MSC Ver.5.1
[3.3] 言語: C
[4] 期限: 今週中
[5] その他の制限: 出来れば、各所にコメントを入れて下さい。
どういうプログラムなのか自分でも把握したいのと、コードの勉強も兼ねて。
よろしくお願いします。
0022デフォルトの名無しさん
2009/03/05(木) 10:05:390023デフォルトの名無しさん
2009/03/05(木) 10:07:50うっそー、やだー、お前、日本語も理解できないで日本人をやってるの?
早く海外に逃亡する準備しとけ?な?w
0024デフォルトの名無しさん
2009/03/05(木) 10:13:450025デフォルトの名無しさん
2009/03/05(木) 10:23:370026デフォルトの名無しさん
2009/03/05(木) 10:24:45書けないなら引っ込んでろ、クズが
0027本日のMVP
2009/03/05(木) 10:25:13日本語でおk
0028デフォルトの名無しさん
2009/03/05(木) 10:33:23最近、日本語でおkとか言う奴に限って、理解力がないだけだったりするから困るね。
こりゃNHKのことばおじさんも大変だ。ネタがあって良いだろうけどw
0029デフォルトの名無しさん
2009/03/05(木) 10:34:35問題文が意味不明
>>27
自分の言葉で語れよ
0030デフォルトの名無しさん
2009/03/05(木) 10:36:18この時期にこんな宿題ありえねーしw
0031デフォルトの名無しさん
2009/03/05(木) 10:37:580032デフォルトの名無しさん
2009/03/05(木) 10:41:560033デフォルトの名無しさん
2009/03/05(木) 11:48:39日本語が理解できないなんて、日本人として恥ずかしくないのかね?
麻呂コンプレックスめw
0034デフォルトの名無しさん
2009/03/05(木) 11:50:16そもそも、本当のプロなら、こんな場所で油を売っている暇がない。
金を稼ぐためのソフトを、次々と開発するし、金にもならん
初歩的な問題なんて、相手にしないだろ。
0035モデム接続
2009/03/05(木) 11:51:21#include <stdio.h>
int main(void)
{
int i=0, ii, data[10], sts;
puts("整数を入力してください(EOFは^Dです)");
while(i<10){
sts = scanf("%d", &data[i]);
// printf("<%d>", sts);
if(sts==EOF || sts==0)
break;
if(data[i]>=100 || data[i]<=-100)
puts("2桁までの整数ではありません");
else
i++;
}
puts("入力結果");
for(ii=0; ii<i; ii++)
printf("%d:%d ", ii+1, data[ii]);
return 0;
}
0036デフォルトの名無しさん
2009/03/05(木) 12:51:280037デフォルトの名無しさん
2009/03/05(木) 14:56:580038デフォルトの名無しさん
2009/03/05(木) 14:58:30参政権、ある?
0039デフォルトの名無しさん
2009/03/05(木) 15:02:20あるアルヨ
0040デフォルトの名無しさん
2009/03/05(木) 15:14:190041デフォルトの名無しさん
2009/03/05(木) 15:14:220042デフォルトの名無しさん
2009/03/05(木) 15:42:32ほとんどの人が、この世の中の事実を知らないまま、この世を去っていくわけだが?
あれもこれも、適切に発言できる人がいないことくらい、周知のこと。
お前、警察でもないのに、警察の専門用語とか話せる?
あれだって、他人からしてみれば、日本語か?と思えるものもあるぞw
0043デフォルトの名無しさん
2009/03/05(木) 15:48:080044デフォルトの名無しさん
2009/03/05(木) 15:49:49害基地は華麗にスルーじゃなかったのか?
0045デフォルトの名無しさん
2009/03/05(木) 15:57:31問題文冒頭の「入力仕様を、」がまず分からない
「入力座標」が何か分からない
「最大10件」とあるが1件の単位は何?
日本語が不自由なのは問題文の不備に気づかないほうじゃないか?
0046デフォルトの名無しさん
2009/03/05(木) 16:07:51要は、受け手が知らなければそれまでだし、自分も知らないなら
知らないことは曖昧な発言で場を濁すなってことだ。
文法だって話に出るが、句読点の使い方なども、曖昧。
身内に国語の教員がいるが、指導してみて分かることもあるぞ。
0047デフォルトの名無しさん
2009/03/05(木) 16:12:43'(' <num> { ',' <num> }n ')'
<num> := { '-' } <digit> { <digit> }
<digit> := '0' - '9'
こういうフォーマット入力で
<num> の取りえる範囲が -99〜99 で
上記2次元座標値を 10件登録できるように
なんだかんだで高度だな
0048デフォルトの名無しさん
2009/03/05(木) 16:24:23プログラミングでは、動的確保なども話しに入ってくるだろう。
しかし、自作ではメモリ増設にも話が及ぶ。いかに認識の違いが
業界、業種で違ってくることやら。分かったか?知らない奴、
知識の乏しい奴には偉そうに出来る、知ったかぶりの青二才めが。
もう一度、小学生からやり直せ、引きこもりニート
0049デフォルトの名無しさん
2009/03/05(木) 16:40:07そのままコード書いてみろよ
>>48はいいすぎです
「小学生からやり直せ引きこもりニート」はないんじゃない?
0050デフォルトの名無しさん
2009/03/05(木) 17:24:54ニートだから仕方ない
0051デフォルトの名無しさん
2009/03/05(木) 17:42:22[2] 問題文(含コード&リンク):パスワード認証プログラムをつくりたい。
プログラムの概要は、パスワードを入力し、正常なら"パスワードは正常です。"
と表示し、間違っていれば"パスワードが違います。"という表示してプログラムを
終了する。
入力の仕様は、パスワードは4文字とし、1文字入力される毎に'*'を1個表示する。
4文字入力後パスワードをチェックする。
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: MSC Ver.5.1
[3.3] 言語: C
[4] 期限: 今週中
学校の課題ではないんだけど、ちょうど春休みになるんで
ここいらで一人前になりたいと思いまして。
参考にしたいんで名人の力をお貸しください
0052デフォルトの名無しさん
2009/03/05(木) 17:45:57余計なことを書く奴だなw
一人前になりたきゃ自分なりにやってみて
初心者スレで晒せ
標準関数だけだと無理だから
getch() でググれよ
0053デフォルトの名無しさん
2009/03/05(木) 18:38:13初心者スレに変なキチガイ流れ込ませようとすんじゃねえよクズ
0054デフォルトの名無しさん
2009/03/05(木) 20:06:47分からない奴には、辞書を用いて参照してやっているのに、参照したお前が
日本語を知らなかったんだろ、って魂胆だろ?見え見えなんだよ、相手の揚げ足を
取ろうと必死な姿が。まぁ、所詮、こんなところで去勢を張るだけの、詰らないクズな
人生しか歩めないんだろ、お前らクズはw
悔しかったら、プログラミングで金を稼いでみろ。それも、ひと財産を稼ぐだけでなく
権力を勝ち取るくらいの巨大な額をな。
0055デフォルトの名無しさん
2009/03/05(木) 20:29:190056デフォルトの名無しさん
2009/03/05(木) 21:38:48大声上げてどうしたの?
0057デフォルトの名無しさん
2009/03/05(木) 21:41:26それら全てに対して、適切な説明が出来るのかね?
この世の中は、ごく普通に言語弾圧というものがある。
決まっていないことに対しては、そいつが勝手にそう思ったんだろ?
と、よく理解できない、知らない人間に、あたかも多数派が正しいという
洗脳を行う習慣がある。もっと、世の中を世界レベルで見るんだな。
ある国では、タブーとされていることを、別の国では当たり前のように行われている
なんてことも、普通にある。しかし、それを理解しない人は、いくら 言葉 で説明しても
理解できないどころか、そいつの言葉がおかしい、と受け止めるだろう。
0058デフォルトの名無しさん
2009/03/05(木) 21:43:06未成年、あるいは精神が未発達な大人にも見られる、無責任さ。
ここは見ず知らずの人が閲覧し、書き込みをする無責任な場所でもある。
例え、事実無根、相手が嫌がる発言をしても、余程のことでなければ
まず責任が問われることは無い。が、犯罪予告は、書き込みをした人を
警察を介して特定することがある。
今後、日本ではどこまで言論の自由に対して、制限がされるかは分からないが、
インターネットが普及して、ブログ炎上のようなことが頻繁に起これば、
ある特定の語彙を書き込めない、いわば規制をするかもしれないが、
所詮それらも デジタルデータ に過ぎないのが現状。
姑息な手を使って、規制をすり抜ける輩も出てくるだろう。
イタチゴッコになるだろうけど。
そして、ここで解いている問題も、所詮はデジタルデータの演算などを
人間が理解できるプログラム言語にて記述し、コンピュータはそれを
コンパイルして、コンピュータ言語で解釈するのだ。
0059デフォルトの名無しさん
2009/03/05(木) 21:44:360060デフォルトの名無しさん
2009/03/05(木) 21:50:17相手がまともに言葉を知らない、表現力、語彙が乏しい可能性はあるが、
自分の理解力が乏しいくせに、理解できましぇ〜ん、なんてことを
いちいち表現する必要があるのかね?まぁ、世の中、自分が理解できる事、
人間なんてごく一部だが。自分が気に入らなければ、気に入らないことを
している人間に対して、何かしら嫌がらせ、圧力を掛けてくる不届き者はいる。
第一、自分が関与する人間は、この世の何パーセントだと思っているんだ?
一年生になったら、友達100人できるかな?100人?名前を知っているくらいで
相手のことをよく知らないくせに、友達になった気になる?
仮に、100人の人と話をするとしよう。1人1分だけでも、1時間40分掛かるし、
1分で出来る話ってどんなもん?しかも、会うための時間も割かなければならない。
そう、例え同じクラスになった人でも、ごく一部しか友達になっていないんだよ。
また、卒業したら、何人とその後、連絡を取っているか?
人それぞれ職場が違う、職場以外の人間とも会うだろうけど、
プライベートで会う人は、何人?芸能人が芸能人全員と
交流があると思っている?同じ業界にいても、関わる人はごく一部。
そう、この世は自分が理解できないことだらけ。だから、理解できる
似た思想のもの同士が集まる習性がある。ただ、その集団が
変に大きくなると、国家権力にまで影響力が及ぶ危険性もある。
人間社会を統率するのは、本当に苦労する役割だと思いますよ。
最後に、日本語でおk、と指摘するくらいなら、何が問題か?
指摘くらいしろよ。でなければ、結局、自分がその意見を
気に入らなかった、としか、相手には受け止めてもらえないよ。
0061デフォルトの名無しさん
2009/03/05(木) 21:58:47>最後に、日本語でおk、と指摘するくらいなら、何が問題か?
>指摘くらいしろよ。
>>45を読もうね。
0062デフォルトの名無しさん
2009/03/05(木) 21:58:51いつものキチガイだからスルー推奨
0063デフォルトの名無しさん
2009/03/05(木) 22:12:30論より証拠。そう、言うくらいなら、四の五の言ってないで
自分が書いた問題を解くソースコードを提示すれば良いだろ?
よく理解していなくても、もう決まりきった処理をするコードは
定石というものがこの世にはあり、それを引用するだけで良いが。
クイックソートを記述する問題が出ても、世の中に普通に出回って
使われているコードを丸写しで提出すれば、それで評価はされるからねぇ。
ただ、それはその場だけでの評価。社会では、今後、予期せぬ
自分が着手したことのない問題が、嫌と言うほど立ちはだかるだろうけど、
死ぬまでが勉強、人生。がんばれよ、青二才。
君はあと、何年この世でプログラミング、C言語のソースコードを
書き続けるつもりかね?死後も、この世に自分が記述したコード、
あるいは編み出した手法が使われていると良いでちゅね。
そう、学校で習った教科書に記述されていることは、過去の人間が
発見、開発、発案した分かりきった内容に過ぎないのだよw
しかし、当初の目的とは違った形で使われているのも事実。
さて、ノーベル賞で有名な、アルフレッド・ノーベルは、ダイナマイトの発明者として有名だが
その後、ノーベルが目的とした以外に、どのように人類の歴史上ではダイナマイトが使用されたかね?
それを見て、あんたは ダイナマイトでおk と言うのかね?w
0064デフォルトの名無しさん
2009/03/05(木) 22:30:570065デフォルトの名無しさん
2009/03/05(木) 23:16:38意味が分からんけど、あんたは全ての質問に答えているの?
あと、いつ逃げ出したか、証拠でもあるの?むしろ、あんたが出来ずに
他人を頼ったんだろ?w
0066デフォルトの名無しさん
2009/03/05(木) 23:19:370067デフォルトの名無しさん
2009/03/05(木) 23:21:39あれは中学校レベルだがw
余程、数学が出来ることが優越感に感じる唯一の生き甲斐なんですねw
実に寂しい人生だ。こっちは、初歩的なプログラミングで楽しんで生きているというのにw
0068デフォルトの名無しさん
2009/03/05(木) 23:39:29明らかに麻呂の方が後だったけどw
0069デフォルトの名無しさん
2009/03/05(木) 23:41:26長文連投されて迷惑だ。
0070デフォルトの名無しさん
2009/03/05(木) 23:48:27↓飛行機でおkと言うのかね?その言葉や物が、どういった使われ方をするか?
↓そんなのは、時代によって変わってしまうものだよ。
↓ほら、山茶花って言葉、元は漢字を並べた読みの「さんざか」だったんだよ?
↓新しいは「あらたし」が転じたとか。役不足の意味、分かってる?
↓能力が不足してるのではなく、手に余るという意味だよ?日本語はおk?
0071デフォルトの名無しさん
2009/03/05(木) 23:50:53怨念怨嗟の
長文連投
0072デフォルトの名無しさん
2009/03/05(木) 23:51:36日本語でおk
0073デフォルトの名無しさん
2009/03/06(金) 05:35:22麻呂は高校レベルの数学の問題は解けないとか言うしw
逆に、数学の知識は特に必要としない、言語の使用に関しては
ド素人なんだろ、その噛み付いてくる粘着常駐は。だから、ここを
自分のテリトリーと思い込んでいるようだが、ここは2ちゃんねるの管理者が
所有している掲示板。書き込んだ本人が何を思っても、書き込み内容は
サーバーの中にログとして残り、誰かが保存している限り、未来永劫、
半永久的にデジタルデータとして残るわけだが。
そのログを、100年以上も未来の子孫達が閲覧して、時代背景も含めて
書き込み内容をどう思うんだろうねw
0074デフォルトの名無しさん
2009/03/06(金) 05:36:31ねぇ、とりあえずさ、鏡を見たら?ピザにメガネを掛けたようなものが映った?
それ、誰のだよ?そう、お前の面だよ?ただ、あんたが目の当たりにしたのを
このスレを見ただけじゃ、どんなものだったか、想像できないのが悔しいね。
0075デフォルトの名無しさん
2009/03/06(金) 05:46:10>>25
>>27
>>33
>>34
>>42
>>46
>>48
>>54
>>57
>>58
>>60
>>63
>>65
>>67
>>70
>>73
>>74
余計でしたか・・・いやぁいつも周りに言われるんで
どうやらこれは僕の悪い癖みたいですね(^^;
getch()を使うのですかなるほど・・・
もう少しヒントみたいなの貰えませんか?
若しくは簡単でいいので、コード書いていただいて
それを参考に応用してみたいです
名人、よろです
0077デフォルトの名無しさん
2009/03/06(金) 10:34:57お断りします
お断りします
ハ,,ハ ハ,,ハ ハ,,ハ ハ,,ハ
( ゚ω゚ )゚ω゚ )゚ω゚ )゚ω゚ ) お断りします
/ \ \ \ \ お断りします
((⊂ ) ノ\つノ\つノ\つノ\つ)) お断りします
(_⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ お断りします
ヽ ヘ } ヘ } ヘ } ヘ }
ε≡Ξ ノノ `Jノ `J ノ `J ノ `J
0078デフォルトの名無しさん
2009/03/06(金) 13:40:45smallモデルとかlargeモデルとかあるやつ?
0079デフォルトの名無しさん
2009/03/06(金) 15:02:47おそらくそのはず。
Wikipediaでは、MS Cの最後のバージョンでC++コンパイラとMFC 1.0がついて、
その次からVisual C++という名称になったということになっている。
そして、VC++は1.5までが16ビット版だった。
0080デフォルトの名無しさん
2009/03/06(金) 15:11:04未だに必死に、麻呂がいるもんだとトラウマになっているようだが、それとは無関係に
麻呂以外の第三者を、無闇に煽っていることに気づかない、見えない敵と戦う戦士になったようだw
ちなみに、汎用性については、麻呂の方が明らかに軍配が上がった。所詮、お前は
固有のパターンにしか対応できない、融通の利かないヘボプログラマー。環境が変わると、
一からコードを書き直す、無駄が多いタイプ。そういうの、この世界では生き残れないよ。
そう、先行きを考えた前置きが出来ないから。
0081デフォルトの名無しさん
2009/03/06(金) 15:14:11高校数学レベルの知識が必要な問題になると逃げ出すアホが言っても説得力がないw
↑やたらと自分基準で、勘違いをして「アホ」とか罵詈雑言を平気で使う、
知能レベルの低い基地外。このスレが、生き甲斐、自分の縄張りだと思っているらしい。
66 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 23:19:37
とりあえず、コテハンを付けてもかまってもらえるぐらい大物にならないとな
↑必死に煽るくせに、自分がコテハンを名乗らない小心者。こいつの発言は、いつも無責任。
恐らく無職のニートで、社会に適合しないタイプ。
68 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 23:39:29
>剰余の問題で先を越されて
明らかに麻呂の方が後だったけどw
↑こいつは、我先にとコードの出来よりも、雑でも早く出すことが目的らしい。
恐らく、学生時代には、他人より先に答えることに集中してしまい、
間違っていても自分の答えは正しいと言い張って、周りから干されたタイプ。
0082デフォルトの名無しさん
2009/03/06(金) 15:15:58剰余の件とか。
詳しく説明よろ
0083デフォルトの名無しさん
2009/03/06(金) 15:17:44精神障害の基地外は、恐らく本当の引きこもりなんでしょう。
まともなプログラマーが、いつまでもこんな場所にいるわけがない。
というか、日頃は商売のためのソフトウェアを開発しているしな。
暇な時は、油を売っていないで、自ら学習するし。無能な職員は
遊んでいて、他人任せで生きるんだろうけど、そういう役立たずは
すぐに首切りにされるからねw
0084デフォルトの名無しさん
2009/03/06(金) 15:20:06その問題を解いたくらいで、得意気になっているこの必死なアンチ麻呂は誰?
第三者から見ても、必死すぎてキモイ。
昔のNEC製PC9800シリーズに標準で付属してるコンパイラみたいです。
古すぎてこれぐらいしかわからなかったけど、後は>>79の通りなんじゃないかな
というか皆さん>>76を華麗にスルーなさってます・・・
どうかスルーしないでやってくださいお願いします
0086デフォルトの名無しさん
2009/03/06(金) 15:57:15getch( )ですべてだ
#include <conio.h>
がMSC 5.1で使えるかは知らないが
0087デフォルトの名無しさん
2009/03/06(金) 16:14:48丁度、春休みに入ったやつじゃね?
0088デフォルトの名無しさん
2009/03/06(金) 16:25:17あの程度で、麻呂ごときに勝ったつもりか?w
んーそうですか・・・自分が使ってる麻奈ちゃんの「やさしいC」って参考書には
getchar()しか載ってないようでして
しかも詳しく詳細が載ってるという訳でもなく、調べようにも今手元には参考書が
これぐらいしかなくお手上げ状態です(><
なもんで、申し訳ないんですけど簡単なコードでいいのでお手本書いて貰えませんか?
お願いします
>>87
はい、そうです
さっきからぐぐって調べてみてるんですけど、何分情報量が半端じゃなく
ありすぎるので、目的のサイトが中々見つからないんです
調べ方に問題があるような気もしてきてるのですが、どうしたらいいかも
具体的に思いつかなくて困りました
お助け下さい名人
0090デフォルトの名無しさん
2009/03/06(金) 17:37:57#include<stdio.h>
#include<conio.h>
int main(void)
{
int i;
char c[16];
for (i = 0; i < 4; i++)
{
c[i] = getch();
putch('*');
}
c[i] = 0;
printf("\nPASS=%s\n", c);
return 0;
}
0091デフォルトの名無しさん
2009/03/06(金) 18:48:300092デフォルトの名無しさん
2009/03/06(金) 20:17:12参考書とか要らないから
googleにgetchと入力してボタンクリックするだけ
0093デフォルトの名無しさん
2009/03/07(土) 02:59:15本当にありがとうございました。
0094デフォルトの名無しさん
2009/03/07(土) 03:01:16来年も留年させてあげます。
おたのしみに。
0095デフォルトの名無しさん
2009/03/07(土) 03:11:320096デフォルトの名無しさん
2009/03/07(土) 05:30:35言う事が朝鮮人みたいだな
自分のせいなのに人のせいにしやがって
0097デフォルトの名無しさん
2009/03/07(土) 06:08:430098デフォルトの名無しさん
2009/03/07(土) 13:22:37[2]麻呂と罵倒屋さんとの剰余うんぬんの経緯をも一度
詳しく教えてくれませんか?
[3] 日本語
[4]本日中
0099デフォルトの名無しさん
2009/03/07(土) 22:57:14[2] 問題文(含コード&リンク):ばば抜きシミュレーターを作る
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8953.txt
[3] 環境
[3.1] OS: XP Pro SP3
[3.2] コンパイラ名とバージョン: Cygwin Gcc
[3.3] 言語:C
[4] 期限: 無期限 ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
以前配列をむちゃくちゃなことやってここでお世話になりました。
一応プレイをさせれるようなところまで言ったのかなと思ったら、スタックオーバーフローを起こすようになってしまったようです。
これを回避する方法を教えてください。
あいかわらずひどいと思いますが、よろしくお願いします。
0100デフォルトの名無しさん
2009/03/07(土) 23:09:450101デフォルトの名無しさん
2009/03/07(土) 23:10:310で割ってるだけじゃねーの
0102デフォルトの名無しさん
2009/03/07(土) 23:12:08本当にスタックオーバフロー?
VC++9.0で確認したら、関数choise()の中の
i = rand()%remain[N_plyer];
で、remain[N_plyer]の値が0になっている。
0103デフォルトの名無しさん
2009/03/07(土) 23:12:11大域でオブジェクトを宣言するな。
特にカウンタ。局所にしろ。
そんなことしてるから問題の絞込みができないんだ。
関数を分ける意味が薄れるだろうが。
0104デフォルトの名無しさん
2009/03/07(土) 23:14:000105デフォルトの名無しさん
2009/03/07(土) 23:26:42probably corrupted stack)
Segmentation fault (core dumped)
209や3536とかの値は毎回変わるみたいです。
Error while dumpingってのをググったらスタックオーバーフローだっていわれたのでそうだと思ったのですが、違うんですかね?
>101
減らしてみます。
>102
そこのあたり確認してみます。
>103
一回ずつよく使うのをローカルで宣言するの面倒だからと思ったんですが、やっぱり関数ごとに宣言したほうがいいですか?
>104
この前も同じようなこと言われました。
簡単な短いのは習ったんですが、こういう長いのを書くのは初めてな上に勘とgoogle先生に聞きながらやってるのでいろいろひどいと思います。
0106デフォルトの名無しさん
2009/03/07(土) 23:29:33main以外の関数はプロトタイプ宣言を書いて
そこに説明を書いた方が読みやすいソースになる
0107デフォルトの名無しさん
2009/03/07(土) 23:31:130108デフォルトの名無しさん
2009/03/07(土) 23:40:250109デフォルトの名無しさん
2009/03/07(土) 23:48:15カードがなくなった人は飛ばす処理が必要。
0110デフォルトの名無しさん
2009/03/08(日) 00:08:18ループの先で関数呼び出して、そこでも同じループカウンタを使うとあっという間にバグの出来上がり。
独りよがりで誰にもみせねぇってソースなら後でお前が困るだけだからどうでもよし。
0111デフォルトの名無しさん
2009/03/08(日) 00:17:040112デフォルトの名無しさん
2009/03/08(日) 00:23:500113モデム接続
2009/03/08(日) 00:32:46/*int*/void choice() の先頭で、リターンするといい事有るかも。
{
//int i, j, k;
if(remain[N_plyer] == 0) return; // 上がっているので、1回パス
// srand(time(NULL));
0114デフォルトの名無しさん
2009/03/08(日) 06:08:260115デフォルトの名無しさん
2009/03/08(日) 06:19:54nを指定して、それに応じて。また、発展で 1^1 - 2^2 + 3^3 - 4^4 ・・・ と
+と-が交互になった場合とか。結局、コードの中の定義を変えることで
nや3で割る部分を適当に変更できる使用にした麻呂に軍配が上がったわけだがw
0116デフォルトの名無しさん
2009/03/08(日) 06:21:27腹を立てたこのスレの常駐引きこもり基地外がファビョって、麻呂は特定可能だからって
麻呂に当り散らしていたw 精神レベルが低いんだろうね、中学校レベルの数学なのに
麻呂では解けないとか、勝手なことを言い出したが、自分がその程度の問題を解いたくらいで
得意気になっているだけという、第三者から見たら滑稽な姿だと気づかないのが痛すぎるwww
0117デフォルトの名無しさん
2009/03/08(日) 06:25:00ファイルを用いる機能を追加、並び替えも独自のコードで実装したわけだが
これまた、後から後から訂正して、何がなんだかw
あの手の問題は、既に定石、ありきたりの手法があるわけだが
丸写しを他人の質問で出しても、答えが側の実力とは言えないしな。
そんなこんなで、ここを自分の縄張りだと思っている、社会では
まともに稼いでいないヘボプログラマーが、初心者が知識が乏しいことを良いことに
好き勝手なことを言っているわけだ。だから、こんなクソスレに成り下がっているわけで、
年々、大学や専門学校の先輩から後輩へ、このスレの存在が伝えられているのか
最近では過去に似た問題、あるいはまったく同じ問題と、同じ学校で同じ授業を受けている
生徒が鉢合わせになることもw
0118デフォルトの名無しさん
2009/03/08(日) 08:13:320119デフォルトの名無しさん
2009/03/08(日) 09:05:420120デフォルトの名無しさん
2009/03/08(日) 09:13:290121デフォルトの名無しさん
2009/03/08(日) 09:47:39は言うことが違うw
0122デフォルトの名無しさん
2009/03/08(日) 17:33:07文字列を逆さに出力するプログラムを作成。
ただし、入力する文字列の長さや個数に制限をつけないために、
以下のような仕様とする。
文字列毎にその都度メモリを動的に確保する
一度確保したメモリは次の文字列を処理する前に解放する。
malloc とか使うんですかね?
[動作例]
% ./a.out abcde fghijklmn opqr
edcba
nmlkjihgf
rqpo
0123デフォルトの名無しさん
2009/03/08(日) 17:47:170124デフォルトの名無しさん
2009/03/08(日) 19:16:11こんなんでどうでしょう?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8956.c
0125デフォルトの名無しさん
2009/03/08(日) 19:33:330126デフォルトの名無しさん
2009/03/08(日) 19:41:38char *reverse(char *cs) {
char tmp, *p, *q;
if (!cs) return 0;
for (p = cs, q = p + strlen(p) - 1; p < q; p++, q--) {
tmp = *p;
*p = *q;
*q = tmp;
}
return cs;
}
int main(int argc, char *argv[]) {
int i;
char *p;
for (i = 0; i < argc; i++) {
if (i == 0) continue;
p = reverse(strdup(argv[i]));
printf("%s\n", p);
free(p);
}
}
0127デフォルトの名無しさん
2009/03/08(日) 20:09:230128デフォルトの名無しさん
2009/03/08(日) 20:25:050129デフォルトの名無しさん
2009/03/08(日) 20:45:38いない奴に期待してどうすんだ?w
0130デフォルトの名無しさん
2009/03/08(日) 20:48:37void print_reverse(char * s)
{
char * p = s;
while(*p != 0) p++;
for(; p != s; putchar(*p)) p--;
putchar('\n');
}
int main(int argc, char ** argv)
{
int i;
for(i = 1; i < argc; i++) print_reverse(argv[i]);
return 0;
}
0131130
2009/03/08(日) 20:51:48でも別にこれで長さにも個数にも制限なくないですか
0132デフォルトの名無しさん
2009/03/08(日) 20:57:130133デフォルトの名無しさん
2009/03/08(日) 20:58:330134デフォルトの名無しさん
2009/03/08(日) 21:13:41なんでわざわざこんな記法をw
0135デフォルトの名無しさん
2009/03/08(日) 21:16:16while(p!=s) putchar(*--p)
でいい気もするが。
0136122
2009/03/08(日) 21:30:26いろいろありがとうございました。
次回あれば、テンプレ忘れないよう気をつけます。
0137モデム接続
2009/03/09(月) 01:07:40実行ファイルが a.out だから、コンパイラは gcc ではないだろうか。
0138デフォルトの名無しさん
2009/03/09(月) 03:45:300139デフォルトの名無しさん
2009/03/09(月) 07:01:44数学で逆は真ならずってならわなかったか
逆、裏、対偶ってあって真なのは対偶
0140デフォルトの名無しさん
2009/03/09(月) 08:24:46実際に分かりきっている事実なんだから、調べれば良いだけ。
遅くなりました、ありがとうございます。
おかげさまで望みのコード勉強が出来ました。
参考書みてるだけじゃ、このレベルのコードも書けないという
勉強にもなり、いい経験になりました。
>>92
なるほど、参考になります。
それと、先日の土日を利用して、図書館へ行きCの参考書を2点程借りてきて
みたのですが、どうやらその参考書にも「getch()」の記述が載ってないんですよね。
「getchar()」の方は載っているのですが、この二つは何か違いがあるのでしょうか?
スレ違いでしたらすみません。
0142デフォルトの名無しさん
2009/03/09(月) 10:40:23Windows の場合は getch でいいんだが、UNIX系OSの場合は termios (あるいは curses の getch) を使うことになる。
0143デフォルトの名無しさん
2009/03/09(月) 12:57:23win2kを使っててgetch()に酷い目にあわされたw
0144デフォルトの名無しさん
2009/03/09(月) 21:57:36[2] 問題文(含コード&リンク):
世界のナベアツのネタ「3の倍数と3が付く数字だけアホになり、5の倍数だけ犬っぽくなる」プログラムを作りたいと思っています。
出力は
1 2 ア3 4 犬5 ア6 のようにアホになるときは数字の前に「ア」、犬の時は数字の前に「犬」を付ける形で出力したいです。
1〜10000程度の範囲でお願いします
春休みに入り、プログラミングの授業の復習のつもりでやってみようと思ったのですが、
思っていたよりも難しくて挫折しました。
[3] 環境
[3.1] OS:Windows VISTA
[3.2] コンパイラ名とバージョン:BCC Borland C++ 5.5.1
[3.3] 言語: C
[4] 期限: 早いとうれしいですが、課題ではなく提出期限が無いのでいつでも
[5] その他の制限: あまり深くは習っていません。あまり難しいと困ります。
0145デフォルトの名無しさん
2009/03/09(月) 22:17:18#include<stdio.h>
int main(void){
int i;
for(i=1;i<=10000;i++) printf("%s%s%d ", (i%3)?"":"ア", (i%5)?"":"犬", i);
return 0;
}
0146デフォルトの名無しさん
2009/03/09(月) 22:19:30http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm
0147デフォルトの名無しさん
2009/03/09(月) 22:22:58これができないというのは正直信じられん
0148デフォルトの名無しさん
2009/03/09(月) 22:29:29もう久しく紙に書く習慣がなくなってしまったので、cでも急に紙に書けといわれるとどうかな。
0149144
2009/03/09(月) 22:47:040150145
2009/03/09(月) 22:52:103がつく数字忘れてた
#include<stdio.h>
int chk3(int num){
if(num%3==0) return 1;
for(;num>0;num/=10) if(num%10==3) return 1;
return 0;
}
int main(void){
int i;
for(i=1;i<=100;i++) printf("%s%s%d ", !chk3(i)?"":"ア", (i%5)?"":"犬", i);
return 0;
}
0151デフォルトの名無しさん
2009/03/09(月) 22:56:17俺はお前のような漢になりたい
0152規制解除したようす
2009/03/09(月) 23:56:00int main(void)
{
int i;
for(i=1;i<=10000;i++){
printf("%s%s%d ", (i%3==0 || (i/10)-(i/100)*10==3
|| (i/100)-(i/1000)*10==3
|| (i/1000)-(i/10000)*10==3 )?"ア":"", (i%5==0)?"犬":"", i);
if(i%10==9) puts("");
}
return 0;
}
0153デフォルトの名無しさん
2009/03/10(火) 02:52:49俺にはこれが限界だ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8959.txt
0154デフォルトの名無しさん
2009/03/10(火) 02:54:49こう書くと偏るからダメだって言う奴がでるからダメ。
0155デフォルトの名無しさん
2009/03/10(火) 02:59:31randの偏りをなくすのは諦めたw
あと、カードを取ってあがった場合の処理もw
0156デフォルトの名無しさん
2009/03/10(火) 03:07:41または、
for(i=53; i>1; ) {
num = rand() % i--;
temp = allcard[i];
allcard[i] = allcard[num];
allcard[num] = temp;
}
にする。
0157デフォルトの名無しさん
2009/03/10(火) 03:42:250158152
2009/03/10(火) 10:24:48訂正後:printf("%s%s%d ", (i%3==0 || i%10==3 || (i/10)%10==3 || (i/100)%10==3 || (i/1000)%10==3)
0159デフォルトの名無しさん
2009/03/10(火) 11:34:33嫌がらせのように見にくいコード
#include <stdio.h>
#include <string.h>
int main()
{
char buf[256];
int i;
for(i = 1; 1; i++, sprintf(buf, "%d", i))
printf("%s%s%d ", ((i % 3 == 0 || strchr(buf, '3') != NULL) ? "ア" : ""), ((i % 5 == 0) ? "犬" : ""), i);
return 0;
}
0160デフォルトの名無しさん
2009/03/10(火) 11:58:21#include "stdafx.h"
#include <iostream>
#include "windows.h"
using namespace std;
int main(void){
int i;
for(i=1;i<=10000;i++){
if(i%3==0 && i%5!=0){
cout << "ア";
}else if(i%5==0 && i%3!=0){
cout << "犬";
}else if(i%3==0 && i%5==0){
cout << "ア犬";
}
cout << i << endl;
Sleep(500);
}
return 0;
}
0161デフォルトの名無しさん
2009/03/10(火) 12:11:270162デフォルトの名無しさん
2009/03/10(火) 12:12:41*30から*39も全部アホにならないといけないそうだ
300から399も
0163デフォルトの名無しさん
2009/03/10(火) 12:15:49int nabeatu(int n)
を作れ
というのを以前見たような気がする
0164デフォルトの名無しさん
2009/03/10(火) 13:32:530165デフォルトの名無しさん
2009/03/10(火) 13:50:54一度文字列に置き換えて、3が含まれるかチェキするとか。
0166デフォルトの名無しさん
2009/03/10(火) 13:51:44順に10で割っていけば良いか、すまそ。
0168デフォルトの名無しさん
2009/03/10(火) 18:33:38あぁ読み間違えてた
俺もプログラミング習いたてだけど
一応できたわ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8964.txt
つうか、>>150みたいな短い書き方あるんだな
俺もそういう書き方してえわ
0169デフォルトの名無しさん
2009/03/10(火) 22:12:07誕生日から現在まで何日経過したか、現在の年齢の2項目を表示するプログラムをお願いします。
0170デフォルトの名無しさん
2009/03/11(水) 01:35:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8965.txt
コンパイラ:VC++ 2005
日数;満日数
年齢:数え年齢(めんどうなので。満年齢は勝手にどうぞ)
誕生日:1970年以降
現在日付:2038年迄
0171デフォルトの名無しさん
2009/03/11(水) 01:52:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8966.txt
投稿してみよう…
0172デフォルトの名無しさん
2009/03/11(水) 01:54:590173デフォルトの名無しさん
2009/03/11(水) 09:04:042行目が曖昧かな?誕生日からというのは、前の誕生日からなのか、
生まれたその日からのどちらか?
0174デフォルトの名無しさん
2009/03/11(水) 09:25:19お誕生日会と誕生日の違いだな。
0175デフォルトの名無しさん
2009/03/11(水) 09:29:37お誕生日”会” ???
0176170
2009/03/11(水) 09:50:29それの方が悩んだ。
0177デフォルトの名無しさん
2009/03/11(水) 10:01:160178170
2009/03/11(水) 10:26:20「年齢計算に関する法律」で検索した。
0179デフォルトの名無しさん
2009/03/11(水) 17:28:080180デフォルトの名無しさん
2009/03/11(水) 17:44:12法律を知らないと書けないと言うか
作ろうとしてるプログラムの内容を知ってないと
作れない
018199
2009/03/11(水) 19:19:390182デフォルトの名無しさん
2009/03/11(水) 19:34:42年齢ハ出生ノ日ヨリ之ヲ起算ス
初日不算入の例外が年齢だよ
出生日が1日目
0183デフォルトの名無しさん
2009/03/11(水) 20:19:050184デフォルトの名無しさん
2009/03/11(水) 20:54:30>>182 例外に含まれるのを見落としてました。
なるほどしかし、法律的には4月1日に生まれた子女は翌年の3月31日
午後12時に1歳に成るとなっている。4月1日午前0時でなく。
満年齢はそれでいいとして、課題は"経過した"日数も…(2項目)だから生まれた日の
翌日が第1日目でいいじゃないかと思う。生まれた当日は何かとバタバタしてるし。
正確に言えば翌日も出生時刻までが0日目で、第2日目てことは無いと思う。
0185デフォルトの名無しさん
2009/03/11(水) 21:06:52http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8967.txt
0186185
2009/03/11(水) 21:12:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8968.txt
0187デフォルトの名無しさん
2009/03/11(水) 22:39:41今年って3回もあるんだ
ジェイソンも大変だなw
0188デフォルトの名無しさん
2009/03/12(木) 02:21:34言語・コンパイラ:C・VC++ 2005
日数;満日数
年齢:数え年齢(めんどうなので。満年齢は勝手にどうぞ)
誕生日:1901年以降 <--- new
現在日付:2038年迄 <--- なんとか?
0189デフォルトの名無しさん
2009/03/12(木) 02:46:53struct tmからtime_tをつくるmk_time()つー関数がなんか便利だたよ
0190デフォルトの名無しさん
2009/03/12(木) 02:59:04○ mktime
tm構造体つくる→年月日時分秒メンバを書き換える→mktime()
→localtime_s()でstruct tmに変換
→曜日・日数が自動補完されてうまー
0191デフォルトの名無しさん
2009/03/12(木) 11:27:49よくわからないんだけどCとC++が微妙に構文違うのはなぜなの?
0192デフォルトの名無しさん
2009/03/12(木) 11:44:11struct tm 変数名; // C structが必要
tm 変数名; // C++ structをつけなくていい
C++は、変数の宣言が処理の途中で出来る。等々
0193デフォルトの名無しさん
2009/03/12(木) 15:13:21[1] 授業単元: エムピーアイ
[2] 問題文(含コード&リンク):ガウス消去法を並列化せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2009/03/13中
[5] その他の制限:
エムピーアイの問題ですが、後退代入以外完成してます。上三角型の行列を作るところまでは
出来たのであとは単純に答えを計算するだけなのですが、アルゴリズムがわかりません。
なので115行目の”後退代入”のところを埋めて下さいまし。
エムピーアイというか単にC言語のループの書き方のレベルなのでエムピーアイを知らなくても
アルゴリズムがわかれば書けると思います。なおプロセス数はmpirun -np 4 ./a.out
で実行して下さい(添付のインプットファイルが4行4列なので)
0194デフォルトの名無しさん
2009/03/12(木) 19:50:50配列の中の数値をランダムに入れ替えたいんです
たとえば
int A[]={ 1,2,3,4,5,6,7,8,9,10}
↓ランダム
4,9,5,1,8,6,2,10,3,7
教えてください
0195デフォルトの名無しさん
2009/03/12(木) 20:08:15for ( i = 0; i < 100; i++)
{
乱数で0-9の数字を2個( p , q )作成
tmp = A[ p ];
A[ p ] = A[ q ];
A[ q ] = tmp;
}
0196デフォルトの名無しさん
2009/03/12(木) 20:34:59#include <time.h>
int main(void)
{
int ar[]={11,12,13,14,15,16,17,18,19,20};
int size=sizeof(ar)/sizeof(ar[0]);
int i, num, temp;
srand( (unsigned)time( NULL ) );
for(i=size-1; i>=0; i--){
num = rand() % (i + 1);
temp = ar[i];
ar[i] = ar[num];
ar[num] = temp;
printf("%d ", ar[i]);
}
return 0;
}
0197デフォルトの名無しさん
2009/03/12(木) 21:00:29偏りそうにも見えるが、上手くいくのかな?
誰か優しく証明して。
0198デフォルトの名無しさん
2009/03/12(木) 21:15:230199デフォルトの名無しさん
2009/03/12(木) 21:21:01どれぐらい偏るもんなの?
0200デフォルトの名無しさん
2009/03/12(木) 21:24:01単純に処理としての話。
for(i=0; i < size; i++)だと分かるんだけど、
逆でも良いのかなってこと。
0201デフォルトの名無しさん
2009/03/12(木) 21:50:49> for(i=0; i < size; i++)だと分かるんだけど、
> 逆でも良いのかなってこと。
逆のほうが簡潔に書けるって話だな
デバッガで追っかけるとわかる
for(i=0; i < size; i++)で書いてみ
最終的に行き着くのが196になる
0202デフォルトの名無しさん
2009/03/12(木) 21:59:460203デフォルトの名無しさん
2009/03/12(木) 22:32:48出来ました!
ありがとうございます
すごいですね
でも、randを使っているから同じ数字が入りそうなんですけど
なんで同じ数字が入らないんだろう?
0204デフォルトの名無しさん
2009/03/12(木) 22:38:04分かりました
i=size-1と(i + 1)がまだ分かりませんが
なんとか分かるように頑張ります
ありがとうございます
0205デフォルトの名無しさん
2009/03/12(木) 22:40:21ありがとうございますm(_;)m
0206デフォルトの名無しさん
2009/03/12(木) 23:35:10次に、残ったものから1個選んで後ろから二番目に入れる。
これを残り0個になるまで繰り返す。
簡単だろ?
0207デフォルトの名無しさん
2009/03/13(金) 00:30:490208デフォルトの名無しさん
2009/03/13(金) 00:31:240209デフォルトの名無しさん
2009/03/13(金) 01:06:18>>156
0210デフォルトの名無しさん
2009/03/13(金) 07:17:51なるほど
0211デフォルトの名無しさん
2009/03/14(土) 17:04:38[1] 授業単元: データ構造アルゴリズム
[2] 問題文(含コード&リンク):
キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
vaio enqueue(int val)キューにデータを追加する
vaio dequeue() キューからデータを取り出す
vaio queue_print()キュー全内容を表示する
以上ですお願いします。
[3] 環境
[3.1] OS: Linux ソラリス
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C
[4] 期限: ([2009年3月15日])
[5] その他の制限: なし
0212デフォルトの名無しさん
2009/03/14(土) 17:10:440213デフォルトの名無しさん
2009/03/14(土) 17:12:100214デフォルトの名無しさん
2009/03/14(土) 17:17:140215デフォルトの名無しさん
2009/03/14(土) 17:17:560216デフォルトの名無しさん
2009/03/14(土) 17:19:25キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
void enqueue(int val)キューにデータを追加する
void dequeue() キューからデータを取り出す
void queue_print()キュー全内容を表示する
0217デフォルトの名無しさん
2009/03/14(土) 17:41:08スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
お願いします。
0218デフォルトの名無しさん
2009/03/14(土) 17:42:22>>1
0219デフォルトの名無しさん
2009/03/14(土) 18:05:23[2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。
[3] 環境
[3.1] OS: (Linux/)
[3.2] コンパイラ名とバージョン: (わかりません)
[3.3] 言語: (C)
[4] 期限: [無期限]
[5] その他の制限: なし
0220デフォルトの名無しさん
2009/03/14(土) 18:56:32[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
[3] 環境
[3.1] OS: (Linux)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C)
[4] 期限: [3/16]
[5] その他の制限: なし
0221デフォルトの名無しさん
2009/03/14(土) 19:03:19勝手に色々想像した。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8974.txt
0222デフォルトの名無しさん
2009/03/14(土) 19:08:530223デフォルトの名無しさん
2009/03/14(土) 19:11:100224デフォルトの名無しさん
2009/03/14(土) 20:01:14dequeue()の戻り値もvaioだぞw
0225デフォルトの名無しさん
2009/03/14(土) 20:14:08#include<stdio.h>
#include<stdlib.h>
#define N 10
int f(const void*a,const void*b){
 return *(const int*)a-*(const int*)b;
}
int main(){
 int a[N],i;
 for(i=0;i<N;++i)scanf("%d",a+i);
 qsort(a,N,sizeof(int),f);
 for(i=0;i<N;++i)printf("%d ",a[i]);
}
0226デフォルトの名無しさん
2009/03/14(土) 20:19:180227デフォルトの名無しさん
2009/03/14(土) 20:28:390228デフォルトの名無しさん
2009/03/14(土) 20:56:28for(i=0;i<N;++i)printf("%d ",a[i]);
なんか気持ち悪いな
0229デフォルトの名無しさん
2009/03/14(土) 20:57:42意図が読めないなんてピュアな方ですねw
0230デフォルトの名無しさん
2009/03/14(土) 21:09:19#include<stdio.h>
#include<stdlib.h>
int s[99],p;
void push(int n){s[p++]=n;}
int pop(void){return s[--p];}
int main(){
 char b[99];
 for(;scanf("%98s",b)==1;){
  switch(*b){
   case'+':push(pop()+pop());break;
   case'-':push(pop()-pop());break;
   case'*':push(pop()*pop());break;
   case'/':{int t=pop();push(pop()/t);}break;
   default:push(atoi(b));
  }
  printf("%d\n",s[p-1]);
 }
}
0231デフォルトの名無しさん
2009/03/14(土) 21:12:190232230
2009/03/14(土) 21:13:380233デフォルトの名無しさん
2009/03/14(土) 21:17:42[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8975.txt
データを表示する場合に,データの昇順と降順の両方向での表示が選択で
きるように,このプログラムに変更してください
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限: 2009/03/16
[5] その他の制限: ありません
よろしくお願いします
0234230
2009/03/14(土) 21:18:22#include<stdio.h>
#include<stdlib.h>
int s[99],p;
void push(int n){s[p++]=n;}
int pop(void){return s[--p];}
int main(){
 char b[99];
 for(;scanf("%98s",b)==1;printf("%d\n",s[p-1]))
  switch(*b){
   int t;
   case'+':t=pop();push(pop()+t);break;
   case'-':t=pop();push(pop()-t);break;
   case'*':t=pop();push(pop()*t);break;
   case'/':t=pop();push(pop()/t);break;
   default:push(atoi(b));
  }
}
0235デフォルトの名無しさん
2009/03/14(土) 21:24:110236デフォルトの名無しさん
2009/03/14(土) 21:27:49void PrintTreeRev(BinNode *p){
if (p != NULL) {
PrintTree(p->right);
PrintData(p->data);
PrintTree(p->left);
}
}
を追加してメニューから呼ぶようにしろ
0237236
2009/03/14(土) 21:28:40逝ってくる
0238デフォルトの名無しさん
2009/03/14(土) 21:33:53微妙に質問が質問として成立してないんじゃね?
OS自体がプログラムだから、プログラムとして違いがあるし、
OSの機能を使うプログラムの場合も、OSが違うからプログラムとして違いがある。
>>234
いい感じ
でも、"%98s"じゃなく、"%98[^\n]"じゃないとダメぽ
0240デフォルトの名無しさん
2009/03/14(土) 21:48:53すんません。
勘違いしてました。
scanf一回で、式を全部持ってくるのかと思ってました。。。
0242デフォルトの名無しさん
2009/03/14(土) 22:12:01出来ました!ありがとうございます!
0243デフォルトの名無しさん
2009/03/14(土) 22:54:57[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8976.txt
[3] 環境
[3.1] OS:ウィンドウズvista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: [2009年3月15日]
[5] その他の制限:なし
お願いします
0244デフォルトの名無しさん
2009/03/15(日) 00:23:05http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8977.txt
0245デフォルトの名無しさん
2009/03/15(日) 00:37:130246デフォルトの名無しさん
2009/03/15(日) 01:19:150247デフォルトの名無しさん
2009/03/15(日) 01:19:53ありがとうございます
0248デフォルトの名無しさん
2009/03/15(日) 01:49:26[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
逆ポーランド電卓
逆ポーランド記法の数式を入力してリターンキーを押すと答えを表示してくれるもの。スタックを使用して以下のように計算する。
1.数値なら、そのままスタックにつむ
2.演算子なら、2つの数をスタックからおろして演算を行い、その結果を再びスタックにつむ。
※逆ポーランド記法とは演算子を後ろに置く記法。例えば1+2は12+に、(1+2)*3は12+3*になる。逆ポーランド記法は後置法ともよばれる。
[3] 環境
[3.1] OS: (unix)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C)
[4] 期限: [3/16]
[5] その他の制限: なし
よろしくお願いします。
0249デフォルトの名無しさん
2009/03/15(日) 02:08:17>>220と>>234を見ろ。
なんというか、まあ、お前らのところ本当にどうしようもないのしかいないんだな
0250デフォルトの名無しさん
2009/03/15(日) 02:18:350251デフォルトの名無しさん
2009/03/15(日) 02:24:170253デフォルトの名無しさん
2009/03/15(日) 03:22:19よろしくおねがいします。。
↓↓↓↓↓
以下のプログラムは、入力された10個の数値を引き算し、その結果を表示するプログラムです。
9〜11行目を別の関数(関数名はFuncDev)とし、修正しなさい。ただし、グローバル変数は使わないこと。
またFuncDev内のローカル変数名は任意とします
FuncDev関数は以下の定義とします
int FuncDec(void);
FuncDev関数の戻り値は、画面入力されたint型データとします。
1:#include<stdio.h>
2:void main(void);
3:void main(void)
4:{
5: int n1 n2;
6; int nt;
7: nt=0;
8: for(n1=0;n1<10;n1++){
9: printf("0-9の数値を入力:");
10: scanf(" %d",&n2);
11: nt-=n2;
12: }
13: printf("結果は%dです",nt);
14:}
0254>>253
2009/03/15(日) 03:34:52int FuncDev(void);
int main(void)
{
int nt, n1;
nt = 10000;
for(n1 = 0; n1<10; n1++){
nt -= FuncDev();
}
printf("結果は%dです", nt);
}
int FuncDev(void)
{
int n2;
scanf(" %d", &n2);
return n2;
}
0255デフォルトの名無しさん
2009/03/15(日) 03:41:45すばやいご回答ありがとうございました。
私は問題の意味を勘違いしていたみたいでした。
自分一人だったら白紙で出すところでした。
本当にありがとうございました
0256デフォルトの名無しさん
2009/03/15(日) 03:52:020257デフォルトの名無しさん
2009/03/15(日) 04:01:21[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8979.txt
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン: BCC Borland C++ 5.5.1
[3.3] 言語: C
[4] 期限: ([2009年3月15日])
[5] その他の制限:なし
0258>>253
2009/03/15(日) 04:18:12すみません、
今読んでいて疑問に思ったのですが、
6行目の
nt=10000;
とはどういう意味なのでしょう?
簡単に解説をしてくださると助かります
0259デフォルトの名無しさん
2009/03/15(日) 04:50:500260デフォルトの名無しさん
2009/03/15(日) 05:09:36どんな条件?
逆ポーランド電卓の説明が追加されているだけにしか見えんが?
0261デフォルトの名無しさん
2009/03/15(日) 09:48:42ようわからんが実行結果がちがったんじゃねーの?たぶん同じやつが書き込んでるとおもわれる。
0262>>253
2009/03/15(日) 09:58:050263デフォルトの名無しさん
2009/03/15(日) 13:42:22#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include "windows.h"
using namespace std;
int FuncDec(){
int n2;
cout << "input 0-9" << endl;
cin >> n2;
return n2;
}
int main(void){
int n1;
int nt=0;
for(n1=0;n1<10;n1++){
nt-=FuncDec();
}
cout << "output " << nt;
Sleep(10000);
}
0264デフォルトの名無しさん
2009/03/15(日) 13:45:44独自プログラムなんて出すよりも
詳しい問題文やどういったアルゴリズムにしようとしてるか描いてくるほうがありがたい
というのもプログラムなんざ千差万別だから、そんなもの提示されても
俺のプログラムと描き方の雰囲気が少しでも違ってたらいちいち面倒なことになる
0265デフォルトの名無しさん
2009/03/15(日) 14:12:06宿題スレに何を求めているの?
0266デフォルトの名無しさん
2009/03/15(日) 15:55:22ほんのごく一部だぞ?他人の猿真似でどうにかなるもんでもなかろう
定石なんて、書店に行けばいくらでも見つかるぞ
0267デフォルトの名無しさん
2009/03/15(日) 15:55:410268デフォルトの名無しさん
2009/03/15(日) 15:56:24環境依存に関わるライブラリではあり得る。
0269デフォルトの名無しさん
2009/03/15(日) 16:16:48Cの規格上、差異を認めている部分(処理系定義)では起こりうる。
もちろんOSの値が以外の原因で起こることもあるけど。
型の大きさとか表現方法とか。
0270デフォルトの名無しさん
2009/03/15(日) 17:24:29所詮、ここはC系で一番バカな質問を受け付ける/受け流すためのハコだからな。
問題文の読み方も分からないって手合いが多数だし、「ここまで書きました」は大概読まないほうがいい。
動かないコードを見て、何のツモリか当て推量するのは不毛だしな。
・・・動いているコードでさえ、何のツモリ(仕様)かなんて、推量はあてにならないしな。
0271デフォルトの名無しさん
2009/03/15(日) 17:57:16#include<stdio.h>
#include<ctype.h>
int s[99],p,a;
void push(int n){s[p++]=n;}
int pop(void){return s[--p];}
int main(){
 int c,t;
 for(;(c=getchar())!=EOF&&c!='\n';){
  if(isspace(c));
  else if(c=='+')t=pop(),push(pop()+t);
  else if(c=='-')t=pop(),push(pop()-t);
  else if(c=='*')t=pop(),push(pop()*t);
  else if(c=='/')t=pop(),push(pop()/t);
  else if(ungetc(c,stdin),scanf("%d",&t)==1)push(t);
  else return fprintf(stderr,"Parse error!");
 }
 printf("%d\n",pop());
}
0272271
2009/03/15(日) 18:00:01#include<stdio.h>
#include<ctype.h>
int s[99],p;
void push(int n){s[p++]=n;}
int pop(void){return s[--p];}
int main(){
 int c,t;
 for(;(c=getchar())!=EOF&&c!='\n';)
  if(isspace(c));
  else if(c=='+')t=pop(),push(pop()+t);
  else if(c=='-')t=pop(),push(pop()-t);
  else if(c=='*')t=pop(),push(pop()*t);
  else if(c=='/')t=pop(),push(pop()/t);
  else if(ungetc(c,stdin),scanf("%d",&t)==1)push(t);
  else return fprintf(stderr,"Parse error!");
 printf("%d\n",pop());
}
0273デフォルトの名無しさん
2009/03/15(日) 18:03:040274デフォルトの名無しさん
2009/03/15(日) 18:03:500275デフォルトの名無しさん
2009/03/15(日) 18:07:580276デフォルトの名無しさん
2009/03/15(日) 18:09:150277デフォルトの名無しさん
2009/03/15(日) 18:09:51普通につかうガナ
0278デフォルトの名無しさん
2009/03/15(日) 18:18:36初心者のコード見てこき下ろしたり、黒歴史を思い返したりするのもまた一興じゃないか。
0279デフォルトの名無しさん
2009/03/15(日) 20:03:56[1] 授業単元: データ構造アルゴリズム
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8979.txt
こののプログラムのクイックソートを行っている関数quickを,非再帰的なアルゴリズムに書き換えてください.
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン: BCC
[3.3] 言語: C
[4] 期限: ([2009/3/15])
[5] その他の制限:なし
0280デフォルトの名無しさん
2009/03/15(日) 21:55:22言語の再帰使わずに実装しているだけの様な。
0281デフォルトの名無しさん
2009/03/15(日) 22:37:110282自分が解けもしないくせに口だけは大きい馬鹿
2009/03/15(日) 22:40:26クソ課題だなあ
0283デフォルトの名無しさん
2009/03/15(日) 22:55:57クソ課題以外の何者でもないだろ
0284デフォルトの名無しさん
2009/03/15(日) 23:02:32void quick(Data a[], int left, int right,
int Cmp(Data x, Data y, int order), int order){
int pl;
int pr;
Data x;
while(1)
{
pl =left;
pr =right;
x = a[(pl+pr)/2];
do {
while(Cmp(x, a[pl], order)) pl++;
while(Cmp(a[pr], x, order)) pr--;
if ( pl <= pr ){
swap(Data , a[pl], a[pr]);
pl++;
pr--;
}
} while(pl <= pr );
if (left < pr) {right = pr; continue;}
if (pl < right) {left = pl; continue;}
break;
}
}
0285自分が解けもしないくせに口だけは大きい馬鹿
2009/03/15(日) 23:14:59分割統治法を非再帰でやらせるとか
クソ課題以外の何者でもないだろ
0286デフォルトの名無しさん
2009/03/15(日) 23:15:350287デフォルトの名無しさん
2009/03/15(日) 23:18:06スレ違い。公開オナヌーは他所でどぞ。
0288デフォルトの名無しさん
2009/03/15(日) 23:26:07という主観しか述べず、問題があるなら問題点を指摘するなり
客観性のある見解を示さず、自分が言ったことを反対されると
ファビョるだけの井の中の蛙なんだなぁ
0289デフォルトの名無しさん
2009/03/16(月) 00:15:420290デフォルトの名無しさん
2009/03/16(月) 00:51:08間違っる。
最初のleftとrightを記憶し、
左側を絞り込み、記憶しておいたleftとrightで右側を絞り込むように
2回に分けないといけないみたい。
0291デフォルトの名無しさん
2009/03/16(月) 01:04:18再帰を反復に変換するのは普通の課題だろ。
0292デフォルトの名無しさん
2009/03/16(月) 01:15:13/*BMI.c*/
#include<stdio.h>
int main()
{
double a,b,c;
c=b/(a*a);
printf("あなたの身長(m)を入力してください。-----");
scanf("%f",&a);
printf("あなたの体重(kg)を入力してください。-----");
scanf("%f",&b);
printf("あなたのBMIは%fです。\n",c);
if(c >=25){
printf("あなたは肥満です。");
}
return 0;
}
これはあってますか?
0293デフォルトの名無しさん
2009/03/16(月) 01:19:08間違ってます。
0294デフォルトの名無しさん
2009/03/16(月) 01:25:59void quick(Data a[], int left, int right,
int Cmp(Data x, Data y, int order), int order){
int pl;int pr;Data x;int _right;
_right = right;
while(1)
{
pl = left;pr = right;x = a[(pl+pr)/2];
do {while(Cmp(x, a[pl], order)) pl++;while(Cmp(a[pr], x, order)) pr--;
if ( pl <= pr ){swap(Data , a[pl], a[pr]);pl++;pr--;}
} while(pl <= pr );
if (left < pr) {right = pr; continue;}
break;
}
left = 1;right = _right;
while(1)
{
pl = left;pr = right;x = a[(pl+pr)/2];
do {while(Cmp(x, a[pl], order)) pl++;while(Cmp(a[pr], x, order)) pr--;
if ( pl <= pr ){swap(Data , a[pl], a[pr]);pl++;pr--;}
} while(pl <= pr );
if (pl < right) {left = pl; continue;}
break;
}
}
0295デフォルトの名無しさん
2009/03/16(月) 02:16:470296デフォルトの名無しさん
2009/03/16(月) 03:09:37void quick(Data a[], int left, int right,
int Cmp(Data x, Data y, int order), int order){
int pl;
int pr;
Data x;
int _right;
_right = right;
while(1)
{
pl = left;
pr = right;
x = a[(pl+pr)/2];
do {
while(Cmp(x, a[pl], order)) pl++;
while(Cmp(a[pr], x, order)) pr--;
if ( pl <= pr ){
swap(Data , a[pl], a[pr]);
pl++;
pr--;
}
} while(pl <= pr );
if (left < pr) {right = pr;continue;}
else
right = _right;
if (pl < right) {left = pl;continue;}
break;
}
}
0297デフォルトの名無しさん
2009/03/16(月) 04:16:12>>295
>>296
重ね重ねありがとうございます
0298デフォルトの名無しさん
2009/03/16(月) 04:28:20無駄が多い
0299デフォルトの名無しさん
2009/03/16(月) 04:55:23模範解答をお願いします。
0300デフォルトの名無しさん
2009/03/16(月) 05:27:000301デフォルトの名無しさん
2009/03/16(月) 11:35:25a,bに値が格納される前にcを計算しているので間違い。
0302デフォルトの名無しさん
2009/03/16(月) 12:03:26指摘するくらいなら、自分がそれに応じたコードを示せよ?
ここんとこ、口先だけの役立たずw
0303デフォルトの名無しさん
2009/03/16(月) 16:54:19ありがとうございます。
0304デフォルトの名無しさん
2009/03/16(月) 17:16:54[2] 問題文(含コード&リンク):要素数10個の整列配列を用意します。
要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: qsortを使わないでお願いします。
0305デフォルトの名無しさん
2009/03/16(月) 17:24:06[2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。
※qsort関数
書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void))
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限:
0306デフォルトの名無しさん
2009/03/16(月) 17:26:47[2] 問題文(含コード&リンク):文字列から任意の文字を探索するプログラムを作成しなさい。
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
よろしくおねがいします。
0307デフォルトの名無しさん
2009/03/16(月) 17:34:56>>219,>>225
0308デフォルトの名無しさん
2009/03/16(月) 17:41:24その問題はqsortを使っているので…
0309デフォルトの名無しさん
2009/03/16(月) 18:01:55#include <stdio.h>
#define BUFSIZE 108
char *mstrchr(const char *src, char ch)
{
for(;*src;++src) if(*src==ch) return (char*)src;
return 0;
}
int main()
{
char buf[BUFSIZE], ch, *p;
int c = '0';
printf("文字列:", buf);
fgets(buf, BUFSIZE, stdin);
/*if(!mstrchr(buf, '\n')) while(c!='\n'&&c!=EOF) c = getchar();
if(c==EOF) return 1;*/
printf("文字:", buf); ch = getchar(); p = mstrchr(buf, ch);
if(p) printf("%d文字目\n", p-buf+1);
else printf("なかった\n");
return 0;
}
0310デフォルトの名無しさん
2009/03/16(月) 18:25:040311デフォルトの名無しさん
2009/03/16(月) 18:26:40#include <stdio.h>
#define N 10
void mqsort(int x[], int left, int right){
int i=left,j=right,p=x[(i+j)/2];
while(1){
while(x[i]<p) i++;
while(p<x[j]) j--;
if(i>=j) break;
{int tmp = x[i]; x[i] = x[j]; x[j] = tmp;}
i++;j--;
}
if(left<i-1) mqsort(x, left, i-1);
if(j+1<right) mqsort(x, j+1, right);
}
int main(){
int a[N],i;
for(i=0;i<N;++i)scanf("%d",a+i);
mqsort(a,0,N-1);
for(i=0;i<N;++i)printf("%d ",a[i]);
return 0;
}
0312デフォルトの名無しさん
2009/03/16(月) 18:29:24strchr() に準じてだろうけど
const char* で受けた一部を char* で戻すのって微妙に気持ち悪いよね
0313デフォルトの名無しさん
2009/03/16(月) 18:34:35dクスです。
0314デフォルトの名無しさん
2009/03/16(月) 18:38:22>>279
0315デフォルトの名無しさん
2009/03/16(月) 18:56:12[2] 問題文(含コード&リンク): "string"の先頭の三文字を入力した文字の三文字と比較して、
一致すれば0を一致しなければ1を出力するプログラムを作成しなさい。また、"XXXX"を入力すると終了するようにしなさい。
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
よろしくおねがいします
0316デフォルトの名無しさん
2009/03/16(月) 19:04:01[2] 問題文 ある文の中に指定した語が見つかるとその場所を表示するプログラムをBM法を用いて作成しなさい。
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
おねがいします
0317デフォルトの名無しさん
2009/03/16(月) 19:13:430318デフォルトの名無しさん
2009/03/16(月) 19:45:41#include <stdio.h>
#include <string.h>
int main(){char s[]="string",b[5];return fgets(b,5,stdin)&&strcmp(b,"XXXX")&&printf("%d",strncmp(b,s,3)?1:0)>=0;}
0319デフォルトの名無しさん
2009/03/16(月) 19:54:58短いっすね。ありがとうございます。
0320デフォルトの名無しさん
2009/03/16(月) 20:01:32これで出したらやり直しくらいそうだがな
0321デフォルトの名無しさん
2009/03/16(月) 20:16:21教員もこんな簡単な問題に対して,こんな大人げない解答出されたら疑問に思うわなw
0322デフォルトの名無しさん
2009/03/16(月) 20:54:37お前のような漢になりたい
0323デフォルトの名無しさん
2009/03/16(月) 21:17:48むしゃくしゃしてやった。反省はしていない。
>>316
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
0324デフォルトの名無しさん
2009/03/16(月) 21:44:34これは信用していいんですよね?
0325デフォルトの名無しさん
2009/03/16(月) 21:47:51だからqsortは使っちゃだめ!
0326デフォルトの名無しさん
2009/03/16(月) 22:05:18#include <stdio.h>
int main()
{
char s[] = "string", b[1024]; /*
string */
do {
if(!gets(b)) return 1;
printf("%d\n", strncmp(b,s,3) ? 1:0);
} while(strcmp(b, "XXXX"));
return 0;
}
0327デフォルトの名無しさん
2009/03/16(月) 22:19:52./a<ソース.cが意味不明なんですけど
0328デフォルトの名無しさん
2009/03/16(月) 22:26:25>>318の後にこれを貼る勇気に乾杯
とりあえずgetsはやめろ
0329デフォルトの名無しさん
2009/03/16(月) 22:36:55[2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、シェルソートを用いて昇順にソートするプログラムを作成しなさい。
今回は、比較幅を1,2,4,8…のような2のべき乗とする。
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
よろしくおねがいします
0330デフォルトの名無しさん
2009/03/16(月) 22:42:120331デフォルトの名無しさん
2009/03/16(月) 23:11:38#include <stdio.h>
int main()
{
char s[] = "string", b[1024]; /*
string */
do {
if(!fgets(b,1024,stdin)) return 1;
printf("%d\n", strncmp(b,s,3) ? 1:0);
} while(strcmp(b, "XXXX\n"));
return 0;
}
0332デフォルトの名無しさん
2009/03/17(火) 00:07:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8982.txt
0333デフォルトの名無しさん
2009/03/17(火) 00:10:26比較幅って言葉の意味がわかんね。
0334デフォルトの名無しさん
2009/03/17(火) 00:17:020335デフォルトの名無しさん
2009/03/17(火) 00:54:07[2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。
※qsort関数
書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void))
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([09年3月17日まで] )
[5] その他の制限:
0336335
2009/03/17(火) 00:58:080337デフォルトの名無しさん
2009/03/17(火) 01:01:11入力の形式が分からん。勝手に決めていいのか?
0338335
2009/03/17(火) 01:05:260339デフォルトの名無しさん
2009/03/17(火) 01:32:54http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8983.txt
0340デフォルトの名無しさん
2009/03/17(火) 01:44:02修正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8985.txt
0343335
2009/03/17(火) 07:10:59<stdlib.h>を使った>>335をレスお願いします!
0345デフォルトの名無しさん
2009/03/17(火) 07:39:30・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
0346335
2009/03/17(火) 07:45:250347デフォルトの名無しさん
2009/03/17(火) 07:48:51void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void*));
の代わりに
#include <stdlib.h>
にすりゃいいだけだろw
0348デフォルトの名無しさん
2009/03/17(火) 07:51:12qsort()のプロトタイプ宣言を#include<stdlib.h>に置き換える
0350デフォルトの名無しさん
2009/03/17(火) 12:41:52分かったか?最近、口先だけの、新入りは?
0351デフォルトの名無しさん
2009/03/17(火) 13:02:20ソースでくれ
0352デフォルトの名無しさん
2009/03/17(火) 13:27:20ttp://www.bulldog.co.jp/products/home/
0353デフォルトの名無しさん
2009/03/17(火) 13:28:060354デフォルトの名無しさん
2009/03/17(火) 13:34:08ttp://www.otafuku.co.jp/
0355デフォルトの名無しさん
2009/03/17(火) 13:48:040356デフォルトの名無しさん
2009/03/17(火) 15:06:260357デフォルトの名無しさん
2009/03/17(火) 16:46:44[1] 授業単元: プログラミング実習
[2] 問題文 キーボードから名前と年齢を入力し、入力した順序につながったリストを作成して、それを利用して表示するプログラムを作成しなさい。
(実行例)
>%a.out
Please,write down your name >taro
How old are you? >27
Continue?yes(1)or no(0)>1
Please,write down your name >hanako
How old are you? >27
Continue?yes(1)or no(0)>0
taro /27
hanako /27
>%
[3] 環境
[3.1] OS: (UNIX)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C)
[4] 期限: ([09年3月17日まで] )
[5] その他の制限: (なし)
0358デフォルトの名無しさん
2009/03/17(火) 17:31:22http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
0359デフォルトの名無しさん
2009/03/17(火) 17:45:20ネタ投下したらしばらく
本読むなりバイトするなり有意義に時間使いなよ
0360デフォルトの名無しさん
2009/03/17(火) 17:50:20>>320-322
むしゃくしゃしてやった。反省はしていない。
>>316
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
./a std <8981.c <-- これでOK
0361デフォルトの名無しさん
2009/03/17(火) 17:53:11いやそれじゃだめなんすよ…
0362デフォルトの名無しさん
2009/03/17(火) 18:06:35BM法
0363デフォルトの名無しさん
2009/03/17(火) 18:10:50(実行例)
% ./a.out <8981.c
入力した文字列は:#include <stdio.h>
検索する文字列を入力してください:std
10 文字目で一致しました。(一致する文字列が見つかりませんでした。)
% でOK?
0364デフォルトの名無しさん
2009/03/17(火) 18:15:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8986.c
0365デフォルトの名無しさん
2009/03/17(火) 18:17:520366デフォルトの名無しさん
2009/03/17(火) 18:19:490368デフォルトの名無しさん
2009/03/17(火) 18:34:47#include<stdlib.h>
#include<stdio.h>
typedef struct P{struct P*x;char n[64];int a;}P;
P h,*c=&h;int q;
int main(){
 for(;
  c->x=malloc(sizeof(*c)),c=c->x,c->x=0,
  printf("Please,write down your name >"),scanf("%63s",&c->n),
  printf("How old are you? >"),scanf("%d",&c->a),
  printf("Continue?yes(1)or no(0)>"),scanf("%d",&q),q;
 );
 for(c=&h;c=c->x;printf("%s /%d\n",c->n,c->a));
}
0369デフォルトの名無しさん
2009/03/17(火) 18:38:530370デフォルトの名無しさん
2009/03/17(火) 18:39:000371デフォルトの名無しさん
2009/03/17(火) 18:40:480372デフォルトの名無しさん
2009/03/17(火) 19:31:03#include<stdio.h>
typedef struct P {
struct P *x;
char name[64];
int age;
} Q ;
int main(){
Q h, *c = &h;
int qa;
char dmy[2];
do {
c->x = malloc(sizeof(*c));
c = c->x;
c->x = 0;
printf("Please,write down your name >"), fgets(c->name, 64, stdin);
c->name[strlen(c->name)-1] = '\0';
printf("How old are you? >"), scanf("%d", &c->age);
printf("Continue?yes(1)or no(0)>"), scanf("%d%c", &qa, dmy);
} while (qa);
for( c = &h; c = c->x; )
printf("\n%s /%d", c->name, c->age);
}
0373デフォルトの名無しさん
2009/03/17(火) 21:19:370374デフォルトの名無しさん
2009/03/17(火) 21:35:510375デフォルトの名無しさん
2009/03/17(火) 21:37:470376デフォルトの名無しさん
2009/03/17(火) 21:39:26freeとか気取ってやってるソース見たらデスクトップ破りたくなる
0377デフォルトの名無しさん
2009/03/17(火) 21:41:12好きなだけ破ってろよマヌケ
0378デフォルトの名無しさん
2009/03/17(火) 23:04:220379デフォルトの名無しさん
2009/03/17(火) 23:50:49#include<stdlib.h>
#include<stdio.h>
struct P{struct P*x;char n[64];int a;}h,*c=&h,t;
int main(){
 for(;
  (c=c->x=malloc(sizeof(*c)))->x=0,
  printf("Please,write down your name >"),scanf("%63s",&c->n),
  printf("How old are you? >"),scanf("%d%*c",&c->a),
  printf("Continue?yes(1)or no(0)>"),getchar()-'0';
 );
 for(c=&h;c=c->x;t=*c,free(c),c=&t)printf("%s /%d\n",c->n,c->a);
}
0380今年度最高峰のレス
2009/03/18(水) 03:28:13>>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376
0381デフォルトの名無しさん
2009/03/18(水) 12:35:35それに対してfreeはセットで使うのが望ましいのだが
0382デフォルトの名無しさん
2009/03/18(水) 12:49:28 for(;c=h.x;h=*c,free(c))printf("%s /%d\n",c->n,c->a);
0383デフォルトの名無しさん
2009/03/18(水) 12:58:14自分は大学で、ネットワーク関連の管理に携わったことがあるが、
ユーザがログオフしても、まだログインしたまま残ることもあった。
そう、コンピュータやプログラムには完璧なんて無いんだよ。
だから、こうやって今も、昔から色々と改善がされているんだろ?
その改善の経緯をもとに、こういったものも作られていくんだよ。
ただ単に、電子計算機に数値を与えて、処理をすれば良いわけじゃない、
システムを運営するのは。
0384デフォルトの名無しさん
2009/03/18(水) 13:01:140385デフォルトの名無しさん
2009/03/18(水) 13:06:27再ログインしようとしても入れませんでしたw
0386デフォルトの名無しさん
2009/03/18(水) 13:19:57OSの基本。学生がワークステーションからログインして、終了するときに
ログオフの手続きをせずに、接続、作業で使っているプログラムを
Windowsのウィンドウの右上にあるクローズボックスで閉じてしまう人もいる。
それ以前に、コンピュータの電源スイッチを押して起動は出来るのだが
終了する際に、OSの終了手続きを取らずに電源を切ってしまった人もいた。
それにおけるトラブルも体験したさ。そういった、管理者側の立場になれば、
エンドユーザの身勝手さや、それを阻止する手立てや仕組みを作るのも、
プログラマーには必要なのさ、ワトソン君。
0387デフォルトの名無しさん
2009/03/18(水) 13:51:52あるいはハードウェアに問題があったのか?それに応じてデバッグされることもある。
ただ、それも本当は、プログラマーの思い違いにより、作り直せば解決するものもあるが、
巨大なプロジェクトでいくら個別にモジュールを改良できるとしても、根幹、組み合わせ方に
問題があれば、やり直すしかない。ただ、この世には既にある定石、常套手段を用いてやれば
特に余計なことをしなければ、問題は起きないもんだよ。
しかし、人間の行動までは、正直、予期できない。今もなお、過去から続く争い。
裁判、解決のための判例作り。そして、判例に基づいて、今後は処理される人間同士の
トラブル。PCのトラブルなんて、電子計算機をちょちょいと弄れば済むことが多く、
楽なものですね、ポワロ殿。
0388デフォルトの名無しさん
2009/03/18(水) 14:02:47/ || ̄ ̄|| ∧∧
| ||__|| ( )
| ̄ ̄\三⊂/ ̄ ̄ ̄/
| | ( ./ /
___ ゴキッ
/ || ̄ ̄|| <⌒ヽ ))
| ||__|| < 丿
| ̄ ̄\三⊂/ ̄ ̄ ̄/
| | ( ./ /
___
/ || ̄ ̄|| ∧∧
| ||__|| ( )
| ̄ ̄\三⊂/ ̄ ̄ ̄/
| | ( ./ /
___
/ || ̄ ̄||
| ||__|| ミ ゴトッ
| ̄ ̄\三⊂/ ̄ ̄ ̄/ミ ,'⌒>
| | ( ./ / l、_>
0389デフォルトの名無しさん
2009/03/18(水) 14:17:40そういったシステムに関わる部分の知識も必要になるわけだろ?
第一、APIを使っているだけでも、既に出来上がったその仕組みを知ることになるし。
麻ー呂っくの後に、振りーを忘れないで賜う。
0390372
2009/03/18(水) 15:41:13P *t;
for( c=h.x; c!=0; c=t) printf("\n%s /%d", c->n, c->a), free((t=c->x,c));
0391デフォルトの名無しさん
2009/03/18(水) 15:49:310392デフォルトの名無しさん
2009/03/18(水) 17:02:20hairetsu[0] = 10
hairetsu[1] = 5
hairetsu[2] = 13
...
というようなものにたいして
rank[0] = 1
rank[1] = 0
rank[2] = 2
...
というような感じにしてくれる関数はありますか?
それとも,自分で作らないとないですか?
0393デフォルトの名無しさん
2009/03/18(水) 17:11:30無いです
multimap もしくは map
にいれてイテレータで取り出せばおk
0394デフォルトの名無しさん
2009/03/18(水) 17:14:41rankと聞くと行列の階数を思い出す。
なんか、肝心な所を省略してません?
0395デフォルトの名無しさん
2009/03/18(水) 17:15:50並び替えの応用でやってみ。
0396デフォルトの名無しさん
2009/03/18(水) 17:25:42#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int hairetsu[10], rank[10], i, j, temp;
srand(time(NULL));
for(i=0; i<10; i++) rank[i] = i, hairetsu[i] = rand() % 100;
for(i=0; i<10; i++) {
for(j=9; j>i; j--) {
if(hairetsu[rank[j]] < hairetsu[rank[j-1]]) {
temp = rank[j];
rank[j] = rank[j-1];
rank[j-1] = temp;
} } }
for(i=0; i<10; i++) printf("hairetsu[%d] = %2d, rank[%d] = %d\n", i, hairetsu[i], i, rank[i]);
return 0;
}
こんな感じにrankの方をソートしても可
0397デフォルトの名無しさん
2009/03/18(水) 17:42:360398デフォルトの名無しさん
2009/03/18(水) 17:59:18どした?
0399デフォルトの名無しさん
2009/03/18(水) 19:15:150400デフォルトの名無しさん
2009/03/18(水) 19:19:170401デフォルトの名無しさん
2009/03/18(水) 21:04:01rankには0を初期値として入れておいて、dataをhairetuでソートして、
次にrankに0〜9をセットして、もう一度、dataをrankでソート。
これは、「バブルソート」という名前。
#include <stdlib.h>
#include <time.h>
int main(void)
{
int hairetsu[10], rank[10], i, j, temp;
srand(time(NULL));
for(i=0; i<10; i++)
rank[i] = i, hairetsu[i] = rand() % 100;
for(i=0; i<9; i++) {
for(j=9; j>i; j--) {
if(hairetsu[j] < hairetsu[j-1]) {
temp = rank[j], rank[j] = rank[j-1], rank[j-1] = temp;
temp = hairetsu[j], hairetsu[j] = hairetsu[j-1], hairetsu[j-1] = temp;
} } }
for(i=0; i<10; i++)
printf("hairetsu[%d] = %2d, rank[%d] = %d\n", rank[i], hairetsu[i], rank[i], i);
return 0;
}
0402デフォルトの名無しさん
2009/03/18(水) 21:18:19同じ値でもrankの中の値が違う
0403392
2009/03/18(水) 23:24:12ただ配列の値がでかい順や小さい順で順位をつけられないかなと思ったので。
ありがとうございました。
0404デフォルトの名無しさん
2009/03/18(水) 23:37:12[2] 問題 ガウス・ジョルダン法+ピボット選択法を用いて以下の連立1次方程式を解くプログラムを作成しなさい。
2x+3y+z=4
4x+y−3z=-2
−x+2y+2z=2
[3] 環境
[3.1] OS: (UNIX)
[3.2] : (gcc)
[3.3] 言語: (C)
[4] 期限: ([09年3月19日12:00まで] )
[5] その他の制限: (なし)
よろしくおねがいします。
0405デフォルトの名無しさん
2009/03/18(水) 23:50:24[2] 問題文:ハッシュ探索(チェイン法)のプログラムを作成しなさい。
1・データファイル「j2」を読み込みなさい。
2・任意の語彙がいくつ使われているか調べなさい。
3.データの追加、削除、表示ができるようにしなさい。
データはyahooのtopページをテキスト化したものとする。
検索文字列:任意の文字(列)、(例として「配信」など)の使用回数を
調べなさい。
画面の表示例は、
1:表示 2:検索(任意の文字検索&任意の文字の個数) 3:追加 4:削除 5:終了
以上のことをふまえたプログラムをサンプルを変更して作りなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 3月19日夕方まで
[5] その他の制限: ライブラリ関数はサンプル以外使用しない。
0406デフォルトの名無しさん
2009/03/18(水) 23:51:43サンプルはこれです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8989.txt
0407デフォルトの名無しさん
2009/03/18(水) 23:58:15[1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):タグ名をpricetype,メンバ名をteika,waribikiとする構造体kakakuとタグ名goodstype,
メンバ名をname[30],kakaku(←構造体)とする要素数10個の構造体配列goodsを作成し、商品名と定価を入力すると商品名、
定価、割り引き価格の一覧が表示されるプログラムを作成しなさい。」ただし、割引価格は、定価が1000円以上の場合は
定価の2割引、それ以外は1割引とする。また、表示するときはポインタを使用すること。
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
0408407
2009/03/19(木) 00:04:180409デフォルトの名無しさん
2009/03/19(木) 00:56:430410デフォルトの名無しさん
2009/03/19(木) 01:56:56#include <stdio.h>
#include <time.h>
int main(void)
{
int hairetsu[10], rank[10], index[10], i, j, temp;
srand(time(NULL));
for(i=0; i<10; i++)
rank[i] = i, hairetsu[i] = rand() % 100;
for(i=0; i<9; i++) {
for(j=9; j>i; j--) {
if(hairetsu[rank[j]] < hairetsu[rank[j-1]]) {
temp = rank[j];
rank[j] = rank[j-1];
rank[j-1] = temp;
} } }
for(i=0; i<10; i++) {
printf("hairetsu[%d] = %2d, index[%d] = %d\n", i, hairetsu[i], i, rank[i]);
index[i] = i;
}
for(i=0; i<9; i++) {
for(j=9; j>i; j--) {
if(rank[index[j]] < rank[index[j-1]]) {
temp = index[j];
index[j] = index[j-1];
index[j-1] = temp;
} } }
for(i=0; i<10; i++) printf("rank[%d] = %d\n", i, index[i]);
return 0;
}
0411デフォルトの名無しさん
2009/03/19(木) 04:17:31人のコードに無駄なもの付け足すなw
for(i=0; i<10; i++) index[rank[i]] = i;
で十分だろうが
0412デフォルトの名無しさん
2009/03/19(木) 07:01:36やってみます。
0413407
2009/03/19(木) 07:59:060414デフォルトの名無しさん
2009/03/19(木) 08:42:42#include<stdio.h>
#include<string.h>
#include<math.h>
typedef struct pricetype{int teika, waribiki;}kakaku;
typedef struct goodstype{char name[30];kakaku kakaku;}goods;
int get_waribiki(int price){
return (price>=1000)?round(price*0.8):round(price*0.9);
}
void print_goods(goods *p){
printf("name:%s teika:%d waribiki:%d\n", p->name, p->kakaku.teika, p->kakaku.waribiki);
}
int main(void){
goods goods[10];
int i, price, goods_num;
char buf[30], *p;
for(i=0;i<10;i++){
printf("Input name : ");
if(fgets(buf, sizeof(buf), stdin)==NULL) break;
if((p=strchr(buf, '\n'))) *p='\0';
strcpy(goods[i].name, buf);
input_price:
printf("Input price : ");
if(fgets(buf, sizeof(buf), stdin)==NULL) break;
if(sscanf(buf, "%d", &price)!=1) goto input_price;
goods[i].kakaku.teika=price;
goods[i].kakaku.waribiki=get_waribiki(price);
}
goods_num=i;
for(i=0;i<goods_num;i++) print_goods(goods+i);
return 0;
}
0415デフォルトの名無しさん
2009/03/19(木) 09:21:23#define N 10
struct goodstype {
char name[30]; /* 商品名 */
struct pricetype {
int teika; /* 定価 */
int waribiki; /* 割り引き価格 */
} kakaku;
} goods[N];
int main(void)
{
int i, num;
struct goodstype *work;
for(i=0; i<N; i++) {
work = &goods[i];
printf("商品名[%d/%d]?",i+1,N); fgets(work->name, 30, stdin);
work->name[strlen(work->name)-1] = '\0';
do {
printf("定価[%d/%d]?",i+1,N); num = scanf("%d", &work->kakaku.teika); getchar();
} while(num == 0);
if(work->kakaku.teika >= 1000)
work->kakaku.waribiki = work->kakaku.teika * (1-0.2);
else
work->kakaku.waribiki = work->kakaku.teika * (1-0.1);
}
printf("商品名,定価,割り引き価格\n");
for(i=0; i<N; i++) {
work = &goods[i];
printf("\"%s\",%d,%d\n",work->name, work->kakaku.teika, work->kakaku.waribiki);
}
return 0;
} >>407
0417デフォルトの名無しさん
2009/03/20(金) 01:16:32こうか?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8991.txt
サンプルにファイルを読む関数がないんだが、「読み込みなさい」とか「調べなさい」は手作業?
探索や削除が間違っとる気がして変えたが、間違ってなかったらマクロを両方とも100に戻しといてくれ。
0418417
2009/03/20(金) 01:48:360419デフォルトの名無しさん
2009/03/20(金) 17:59:260420デフォルトの名無しさん
2009/03/20(金) 19:57:17[1] 授業単元:
[2] 問題文(含コード&リンク): http://pc11.2ch.net/test/read.cgi/tech/1232627790/211
【 課題 】
課題1.
以下のような賭をすることを考えます.
1. 開始時の所持金をA円とします.
2. 目標とする金額をB円とします.
3. さいころを投げて偶数の場合は1円を獲得,奇数の場合は1円を失います.
4. 所持金が目標額のB円に到達すれば賭は終了,また所持金が0になった場合は破産で終了とします.
数学的な考察をすると,この賭の期待値はA円となります.つまり,何回もこの賭を続けていると,成功したり破産したりしますが,平均すると元の所持金しか得られないということです.
また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります.
たとえば,開始時の所持金をA=8円,目標額をB=10円とすると,勝つ確率は8割,1ゲームあたり平均すると(10-8)×8=16回,さいころを投げることになります.
このことは,賭をしても儲からない,ことを意味していますね.
このことを確かめるプログラムを作成しなさい.
0421デフォルトの名無しさん
2009/03/20(金) 21:02:310422デフォルトの名無しさん
2009/03/20(金) 21:12:200423デフォルトの名無しさん
2009/03/20(金) 21:14:190424デフォルトの名無しさん
2009/03/20(金) 21:17:15頼んだぜ
0425デフォルトの名無しさん
2009/03/20(金) 23:06:55・・・−−−・・・
0426デフォルトの名無しさん
2009/03/21(土) 00:39:28ダウト。一部の人間が損をし(破産し)、一部の人間が儲かることを意味している。
0427デフォルトの名無しさん
2009/03/21(土) 00:46:190428デフォルトの名無しさん
2009/03/21(土) 00:51:43>問題出す方も大変だ。
本人も問題を出すつもりだったのだから,本望かw
0429デフォルトの名無しさん
2009/03/21(土) 00:54:33マジで?
0430デフォルトの名無しさん
2009/03/21(土) 02:21:08[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
[3] 環境
[3.1]OS:Win
[3.2] VC 6.0
[3.3]言語:C
[4]期限:3月24日
[5]その他の制限:main関数以外に自作の関数を利用する
どなたかよろしくお願いします。
0431デフォルトの名無しさん
2009/03/21(土) 02:39:02最高に間抜けだな
0432デフォルトの名無しさん
2009/03/21(土) 02:41:040433デフォルトの名無しさん
2009/03/21(土) 02:42:140434デフォルトの名無しさん
2009/03/21(土) 02:57:508992で合ってんなら
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8993.txt
0435デフォルトの名無しさん
2009/03/21(土) 03:38:25#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i, j, targetMoney, startMoney, currentMoney;
int totalGame = 10000, totalDice = 0, totalWin = 0;
srand(time(NULL));
printf("所持金を入力してください:");
scanf("%d", &startMoney);
printf("目標額を入力してください:");
scanf("%d", &targetMoney);
for(i=0; i<totalGame; i++) {
for(j=1, currentMoney = startMoney; ; j++) {
if((int)(rand() / (RAND_MAX + 1.0) * 6) & 1 ) currentMoney++;
else currentMoney--;
if(currentMoney == targetMoney) { totalWin++; break; }
if(currentMoney == 0) break;
}
totalDice += j;
}
printf("勝率%.2f%% 平均回数%.2f\n", 100.0 * totalWin / totalGame, (double)totalDice / totalGame);
return 0;
}
0436デフォルトの名無しさん
2009/03/21(土) 12:08:02すみません、8992です
ありがとうございました
0437デフォルトの名無しさん
2009/03/22(日) 02:29:33[2] 問題文:ttp://www.pref.fukushima.jp/pc-concours/2009/03/pdf/2008honsen.pdf
10ページ目の6問目です
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
考えれば考えるほどわからなくなっていましました…
良ければよろしくお願いします。
0438437
2009/03/22(日) 02:38:00[4]期限:4月1日12:00
[5]その他制限:特になし
改めてお願いします。
0439デフォルトの名無しさん
2009/03/22(日) 02:56:56http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8994.c
0440デフォルトの名無しさん
2009/03/22(日) 02:58:580441デフォルトの名無しさん
2009/03/22(日) 03:05:55#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, *data, key, begin, end, mid, i;
while(1){
scanf("%d", &n);
if(n <= 0) break;
data = (int *)malloc(sizeof(int) * n);
for(i = 0; i < n; i++) scanf("%d", &(data[i]));
scanf("%d", &key);
begin = 0; end = n - 1;
for(i = 0; begin <= end; i++){
mid = (begin + end) / 2;
if(data[mid] == key){
i++;
break;
}
if(data[mid] < key) begin = mid + 1;
else end = mid - 1;
}
printf("%d\n", i);
free(data);
}
return 0;
}
0442デフォルトの名無しさん
2009/03/22(日) 03:06:270443デフォルトの名無しさん
2009/03/22(日) 03:11:590444デフォルトの名無しさん
2009/03/22(日) 03:23:140445デフォルトの名無しさん
2009/03/22(日) 03:53:530446デフォルトの名無しさん
2009/03/22(日) 03:54:54先生のセンスをこのスレの奴らに見せ付けてやってください!
0447デフォルトの名無しさん
2009/03/22(日) 09:22:37うん、ないよ。でも、趣味でしかないし、1人でのんびりやれればいいから
下手の横好きでもいいかなー。
0448デフォルトの名無しさん
2009/03/22(日) 10:03:53メンテじゃなくて、先輩社員が作ったプログラムを触る仕事しかさせてもらえないんだろ?
0449デフォルトの名無しさん
2009/03/22(日) 12:32:16ぱっと見、無限ループの可能性有だな〜
問題10ではOKだけど、脱出条件組み込んだ方が吉
if(begin == end) break;見たいな
0450デフォルトの名無しさん
2009/03/22(日) 12:35:24へーそーなのかーwww
0451デフォルトの名無しさん
2009/03/22(日) 12:44:41>>450サンクス
それより、問題文だとファイルアクセスっぽいがコマンドラインでよいのか?
0452デフォルトの名無しさん
2009/03/22(日) 12:52:55>for(i = 0; begin <= end; i++){
で脱出条件とやらは十分だと思うが
0453デフォルトの名無しさん
2009/03/22(日) 13:02:46いや、外のWhile抜けないでしょそれじゃ。
While抜ける条件が、nのScanf or 値が同じ時のみ。
同値無し && 入力無し時のことを言ってる
0454デフォルトの名無しさん
2009/03/22(日) 13:06:440455デフォルトの名無しさん
2009/03/22(日) 13:10:30441のプログラムを見れば分かると思うが、While(1)で無限ループしてんだぞ?
んで、beginとendで配列範囲を設定して、2文探索をしてる。
同値無し時にbeginとend判定しなくなるから、同値breakがキャンセルされ、あとはScanf()のbreakだけになる。
何を持ってbegin/endで煽るのか分かりかねる。
0456デフォルトの名無しさん
2009/03/22(日) 13:12:580457デフォルトの名無しさん
2009/03/22(日) 13:14:220458デフォルトの名無しさん
2009/03/22(日) 13:16:390459デフォルトの名無しさん
2009/03/22(日) 13:18:06返事遅くなってすいません。
期限が延びて明日までになりました。
サンプルでは読み込む関数はないので自分で作成せよと本日問題追加されました。
0460デフォルトの名無しさん
2009/03/22(日) 13:30:33begin/endはプログラムの終了と関係ないからだろ。
見つからなかった場合でも、終了するのはプログラムじゃなくて「探索」だぞ。
>探索の範囲がつきてしまった時に探索
>を終了します。
0461デフォルトの名無しさん
2009/03/22(日) 13:32:02> While抜ける条件が、nのScanf or 値が同じ時のみ。
値を見つけた時に抜けているのはforだぞ
0462デフォルトの名無しさん
2009/03/22(日) 13:32:470463デフォルトの名無しさん
2009/03/22(日) 13:33:380464デフォルトの名無しさん
2009/03/22(日) 15:56:15>>459 % ./a.out <data でファイル入力[Enter]
#include <stdio.h>
int BinarySearch(void);
int main(void) {
while(!BinarySearch()); return 0;
}
int BinarySearch(void) {
int n=0, *data, key=0, begin=0, end, mid, i;
if(scanf("%d", &n) != 1) return 1;
if(n == 0) return 0;
if(n < 0) return 2;
if((data = (int *)malloc(sizeof(int) * n)) == NULL) return 3;
for(i = 0; i < n; i++)
if(scanf("%d", &(data[i])) != 1) {free(data); return 1;}
if(scanf("%d", &key) != 1) {free(data); return 1;}
for(i = 1, end = n-1; begin < end; i++){
mid = (begin + end) / 2;
if(data[mid] < key)
begin = mid + 1;
else
end = mid - 1;
}
printf("%d\n", i);
free(data); return 0;
}
0465デフォルトの名無しさん
2009/03/22(日) 16:01:020466465
2009/03/22(日) 16:12:540467デフォルトの名無しさん
2009/03/22(日) 16:42:400468466
2009/03/22(日) 16:48:420469464
2009/03/22(日) 18:28:13#include <stdio.h>
#define returnVal(n) {free(data); return n;}
int BinarySearch(void);
int main(void) {
while(BinarySearch() == 0); return 0;
}
int BinarySearch(void) {
int n=0, *data, key=0, begin=0, end, mid, i;
if(scanf("%d", &n) != 1) return 2;
if(n == 0) return 1;
if(n < 0) return 0;
if((data = (int *)malloc(sizeof(int) * n)) == NULL) return 3;
for(i = 0; i < n; i++) {
if(scanf("%d", &(data[i])) != 1) returnVal(2)
if(data[i] == 0) returnVal(1)
}
if(scanf("%d", &key) != 1) returnVal(2)
if(key == 0) returnVal(1)
for(i = 1, end = n-1; begin < end; i++){
mid = (begin + end) / 2;
if(data[mid] < key)
begin = mid + 1;
else
end = mid - 1;
}
printf("%d\n", i);
returnVal(0)
}
0470デフォルトの名無しさん
2009/03/22(日) 18:56:590471デフォルトの名無しさん
2009/03/22(日) 19:09:48{returnVal 2;}
のほうがよかったかd
0472デフォルトの名無しさん
2009/03/22(日) 22:11:350473デフォルトの名無しさん
2009/03/23(月) 02:02:49nの入力
malloc
free
をやろうとする頭がキモイ
0474デフォルトの名無しさん
2009/03/23(月) 09:38:05#include <stdio.h>
int main(void) {
int n=0, *data, key=0, begin, end, mid, i;
while(1) {
if(scanf("%d", &n) != 1) break;
if(n == 0) break;
if(n < 0) continue; // 暫定コンティニュー
if((data = (int *)malloc(sizeof(int) * n)) == NULL) break;
for(i = 0; i < n; i++) {
if(scanf("%d", &(data[i])) != 1) break;
}
if(i != n) { free(data); break; }
if(scanf("%d", &key) != 1) { free(data); break; }
for(i = 1, begin = 0, end = n-1; begin < end; i++){
mid = (begin + end) / 2;
if(data[mid] < key)
begin = mid + 1;
else
end = mid - 1;
}
printf("%d\n", i);
free(data);
}
return 0;
}
0475デフォルトの名無しさん
2009/03/23(月) 09:46:380476デフォルトの名無しさん
2009/03/23(月) 21:39:26std::string型に格納されてる文字列を渡したいんですが、
c_str()の返す型がconst char *であるためうまく渡せません。
(char *)でキャスト変換するとコンパイルは通るのですが安全とはいえないです。
これを安全に渡すための方法があれば教えてください。
strcpyでコピーする方法はwarningが出てしまいます。
環境はVS2005です。
0477デフォルトの名無しさん
2009/03/23(月) 21:41:26(char *)でキャストで良いと思います。
0478デフォルトの名無しさん
2009/03/23(月) 21:43:38プログラマーが安全だと判断すればそれで良い。
0479デフォルトの名無しさん
2009/03/23(月) 21:50:04だがスレ違いだ
0480デフォルトの名無しさん
2009/03/23(月) 21:51:150481デフォルトの名無しさん
2009/03/23(月) 21:54:18[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8997.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:4月2日
[5] その他の制限:ユーザ定義関数を利用する
よろしくお願い致します。
0482デフォルトの名無しさん
2009/03/23(月) 22:11:37きっと誰かが剰余演算子を使わず,さらにはアクロバティックに書いてくれると期待w
0483デフォルトの名無しさん
2009/03/23(月) 22:16:06#include <stdio.h>
int collatz(int n)
{
int i;
for(i = 0; n > 1; i++){
if(n % 2 == 0) n /= 2;
else n = n * 3 + 1;
}
return i;
}
int main()
{
int n;
while(1){
scanf("%d", &n);
if(n == 0) break;
printf("%d\n", collatz(n));
}
return 0;
}
0484デフォルトの名無しさん
2009/03/23(月) 22:17:47本当にありがとう。参考になりました。
0485デフォルトの名無しさん
2009/03/23(月) 22:34:37#include <stdio.h>
void main(){
int i=0,j;
while((!i||printf("%d\n",j))&&scanf("%d",&i)&&i)
for(j=0;i!=1;i=((i^1)&1)*(i>>1)+(i&1)*((i<<1)+i+1),++j);
}
0486デフォルトの名無しさん
2009/03/23(月) 23:26:57#include <stdio.h>
static int n = 0;
void collatz(void)
{
int i;
for(i = 0; n > 1; i++)
if(n & 1) n *= 3, n++;
else n >>= 1;
printf("%d\n", i);
}
int main(void)
{
while(scanf("%d", &n) != EOF && n) collatz();
return 0;
}
0487デフォルトの名無しさん
2009/03/24(火) 00:00:33ありがとうございました
助かりました
0488デフォルトの名無しさん
2009/03/24(火) 09:42:53おいキャストするな。
c_strを元にコピーすることを薦める次第だ。
0489デフォルトの名無しさん
2009/03/25(水) 20:07:370490デフォルトの名無しさん
2009/03/27(金) 04:12:17。
下記のソースを記述しコンパイルと実行を確認しなさい
/** データ型 */
#include<stdio.h>
void printDataType1();
main(){
printDataType1();
}
/**
* データ型の表示
* 単純に表示
*/
void printDataType1(){
int intData = 10;
0491デフォルトの名無しさん
2009/03/27(金) 04:21:130492デフォルトの名無しさん
2009/03/27(金) 08:04:15printf("hex %x\n", intData);
printf("oct %o\n", intData);
}
と、後ろに追加する。コンパイルのしかたは、調べれば分かるので省略する。
0493デフォルトの名無しさん
2009/03/27(金) 08:09:41どっちにしてもこれ以上のエスパーは無理だが
0494デフォルトの名無しさん
2009/03/27(金) 13:20:000495デフォルトの名無しさん
2009/03/27(金) 15:59:32[2] 問題文(含コード&リンク):ファイル出力で二つ以上の関数が同じファイルに続けて出力させるにはどうすればいいですか?
毎回file openさせてやってみたら、途中まで上書きになってしまいました。
[3] 環境
[3.1] OS:Win xp
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:
0496デフォルトの名無しさん
2009/03/27(金) 16:11:04二回目はアペンドモード"a"で開くしかないよ
ただしXPならMS-DOSの系統なのでテキストモードだと
EOFが最後に入っているのでこれを1バイト切り詰めてから
アペンドしないといけない
0497デフォルトの名無しさん
2009/03/27(金) 16:13:520498デフォルトの名無しさん
2009/03/27(金) 16:19:26ファイルポインタを関数で使いまわす
FILE* fp = fopen("***", "w");
func1(fp);
func2(fp);
fclose(fp);
0499デフォルトの名無しさん
2009/03/27(金) 16:25:10それあかんよ
FILE構造体にはデータも書き込むので
func1(&fp);
func2(&fp);
としておき
受ける側は
func1(FILE **fp)
func2(FILE **fp)
としないといけない
実際に実験してみればわかる
0500495
2009/03/27(金) 16:26:59やってみます。
0501デフォルトの名無しさん
2009/03/27(金) 17:40:12どういう実験か書いてみそ
0502デフォルトの名無しさん
2009/03/27(金) 17:56:08>>499の主張は間違っている気がする。
だって、FILE* fpなんでしょ?
> FILE構造体にはデータも書き込むので
FILEへのポインタの値を変えたりするつもりは無いはず。
0503デフォルトの名無しさん
2009/03/27(金) 18:00:09リファレンス渡しまたはアドレス渡しをしなければいけないのは
わかるが、CのFILE*ってポインタなんだからそのまま渡していいと思う
0504デフォルトの名無しさん
2009/03/27(金) 18:14:38本人ではないが、func1() や func2() の中で fopen する場合と
勘違いしたんじゃないか、とフォローしてみる。
0505デフォルトの名無しさん
2009/03/27(金) 18:53:06fputs("foo\n", fp);
}
void bar(FILE *fp) {
fputs("bar\n", fp);
}
int main() {
FILE *fp = fopen("124-495.txt", "w");
foo(fp);
bar(fp);
fclose(fp);
return 0;
}
出力結果は
foo
bar
0506デフォルトの名無しさん
2009/03/27(金) 23:31:46>>498にfopenも書いてあるからその勘違いは無いんじゃね?
0507デフォルトの名無しさん
2009/03/27(金) 23:57:18あかんって何が?
0508デフォルトの名無しさん
2009/03/28(土) 02:35:51世界的には日本語を使う人よりも英語を使う人の方が多い
前スレのこいつが必死なんだろ。日本語よりと比較したら間違いでもないんだが。
0509デフォルトの名無しさん
2009/03/28(土) 10:52:350510デフォルトの名無しさん
2009/03/28(土) 12:28:32そらあかんわ
FILE *fp = fopen("***", "w");
FILE* fp, fl; は同じように見えるが2つの変数は型が違う。
FILE *fp, *fl; と書く。Javaではない。
0511デフォルトの名無しさん
2009/03/28(土) 12:33:190512デフォルトの名無しさん
2009/03/28(土) 13:38:410513デフォルトの名無しさん
2009/03/28(土) 14:01:25どこに捨てたらいい?
∧_∧
(´∀`)
/⌒ 丶
/ / \_M
( /| |\__E)
\/ | / \
( イ / ウワァァン丶
| /|ハ( `Д)ノ|
| / / 丶(>>510) ノ
( 丿丿  ̄ ̄ ̄
|||
|||
/ ト、\
/_ノ  ̄
0514デフォルトの名無しさん
2009/03/28(土) 17:50:42http://pc12.2ch.net/test/read.cgi/tech/1179394713/
http://pc12.2ch.net/test/read.cgi/tech/1179424842/
0515デフォルトの名無しさん
2009/03/29(日) 15:19:16http://www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlに記載されている2006年の本選問題の
問7のヘビの問題と問8のバス路線の問題をお願いします。
お手数だと思いますが、よろしくお願いします。
単元;c言語
期限なんですがなるべく早めによろしくお願いいたします。
環境;os xp
コンパイル名;gcc
0516デフォルトの名無しさん
2009/03/29(日) 15:40:40C/C++の宿題片付けます 122代目
http://pc11.2ch.net/test/read.cgi/tech/1232029287/449
ヘビもあったな
0517デフォルトの名無しさん
2009/03/29(日) 15:58:170518デフォルトの名無しさん
2009/03/29(日) 16:09:07http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8863.txt
どこが仕様を満たしてない!
0519デフォルトの名無しさん
2009/03/29(日) 16:19:50問題文通りでお願いします。
0520デフォルトの名無しさん
2009/03/29(日) 16:36:39問題通りの出力、入力でお願いします。
後、先程の問題の回答も引き続きお願いします。
もし、何か質問で至らない点があったらこちらですぐに回答します。
0521デフォルトの名無しさん
2009/03/29(日) 17:19:24問題9 円に内接する多角形の面積
問題12 ブラックジャック・ゲーム
0522デフォルトの名無しさん
2009/03/29(日) 18:08:07#include <stdio.h>
int getLine(int*a){
int temp = 0;int i=0;int c;
while(c = getchar(),c!='\n'){
if(c==' '){
a[i]=temp<10?temp:10;i++;temp = 0;
}else{
temp*=10;temp+=c-'0';
}
}
a[i]=temp<10?temp:10;i++;
return i;
}
int main(){
int a[21];int len;
while(len = getLine(a),a[0]!=0){
int sum = 0;int cnt = 0;
for(int i=0;i<len;i++){
if(a[i]==1)cnt++;
sum+=a[i];
}
for(int i=0;i<cnt;i++){
if(sum+10<=21)sum+=10;
}
if(sum>21)sum=0;
printf("%d\n",sum);
}
return 0;
}
0523デフォルトの名無しさん
2009/03/29(日) 18:37:10#include<stdio.h>
#include<string.h>
int is_typeA(const char *p){
int i, j;
if(strncmp(p, ">'", 2)!=0) return 0;
for(i=0,p+=2;*p=='=';i++,p++);
if(i<1 || *p++!='#') return 0;
for(j=0;j<i && *p=='=';j++,p++);
return !(j<i || strcmp(p, "~"));
}
int is_typeB(const char *p){
int i;
if(strncmp(p, ">^", 2)!=0) return 0;
for(i=0;strncmp(p+=2, "Q=", 2)==0;i++);
return !(i<1 || strcmp(p, "~~"));
}
int main(void){
char buf[100+1];
int n=0, i;
scanf("%d\n", &n);
for(i=0;i<n && gets(buf);i++){ // gets!
if(is_typeA(buf)) printf("A\n");
else if(is_typeB(buf)) printf("B\n");
else printf("NA\n");
}
return 0;
}
0524デフォルトの名無しさん
2009/03/29(日) 19:21:57//09 gcc -std=gnu99 main.c -o main.exe
#include <stdio.h>
#include <math.h>
double s(int n){
double sum = 0;
for(int i=0;i<n;i++){
int in=0;
scanf("%d",&in);
double theta =3.14 * (90-(in/2))/180;
sum += sin(theta)*cos(theta)*sin(theta)*cos(theta);
}
return sum;
}
int main(){
int n;
while(scanf("%d",&n),n!=0){
double sum1 = s(n);
scanf("%d",&n);
double sum2 = s(n);
//
if(sum1==sum2){
printf("0\n");
}else if(sum1>sum2){
printf("1\n");
}else{
printf("2\n");
}
}
return 0;
}
0525521
2009/03/29(日) 19:40:11短いコード!しかし、gets() を使うから、100文字を超えても一致してしまう。
バスの再掲
#include <stdio.h>
void myfunc(int, int);
int main(){
int x, y;
scanf("%d %d", &x, &y);
myfunc(x, y);
}
void myfunc(int x, int y){
int t, i;
t = 1;
i = x;
if(i <= 5)
t *= (x < y)? 1: -1;
putchar(i+'0');
while(i != y){
i += t;
if(i == 0)
t *= -1;
if(i == 10){
i = 5;
t *= -1;
}
putchar(' ');
putchar(i+'0');
}
putchar('\n');
}
0526デフォルトの名無しさん
2009/03/29(日) 19:43:02参加者の人数と当たりの数を入力し、当たり部分には◎ハズレには×
となるようにお願いします。
0527デフォルトの名無しさん
2009/03/29(日) 19:43:46申し訳ないですけど2007年本選の6と7、2007年予選10番もお願いします
0528デフォルトの名無しさん
2009/03/29(日) 19:54:300529デフォルトの名無しさん
2009/03/29(日) 20:02:14528番の回答は自分の発言ではありません
0530デフォルトの名無しさん
2009/03/29(日) 20:10:49言ってることは同じ
0531デフォルトの名無しさん
2009/03/29(日) 20:13:450532デフォルトの名無しさん
2009/03/29(日) 20:23:27よろしくお願いします。今回はちょこちょこと付け加えてしまい迷惑をかけました。
0533デフォルトの名無しさん
2009/03/29(日) 20:28:01過去ログくらい読めカス
0534デフォルトの名無しさん
2009/03/29(日) 20:29:020535527
2009/03/29(日) 20:30:040536デフォルトの名無しさん
2009/03/29(日) 20:38:010537IP address
2009/03/29(日) 20:40:22問題6 有料道路料金
問題7 おはじき取り
>>蛇の模様
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9003.txt
0538デフォルトの名無しさん
2009/03/29(日) 21:21:48theta=3.14*in/180.0;
sum+=0.5*sin(theta);
じゃないかな?
0539IP address
2009/03/29(日) 21:42:56#include <stdlib.h>
#include <time.h>
int main(void)
{
int i, r, atari, deta=0, hito, honn;
atari = 1; // printf("あたりの本数を入力:%d\n", atari);
printf("あみだくじに参加する人数を入力:"); scanf("%d", &hito);
printf("あみだくじの本数を入力:"); scanf("%d", &honn);
if(honn < atari) {
printf("あたりの数が多すぎます\n"); return 2;
}
if(honn < hito) {
printf("くじの本数が足りません\n"); return 2;
}
srand(time(NULL));
for(i=1; i<=hito; i++) {
r = rand();
// printf("%d/%d=%d 残り%d本\n", r, RAND_MAX/honn, r/(RAND_MAX/honn), honn );
if(r/(RAND_MAX/honn) >= 0 && r/(RAND_MAX/honn) <= atari-1) {
printf("%d 番の人◎\n", i);
atari--; honn--;
} else {
printf("%d 番の人×\n", i);
honn--;
}
}
return 0;
}
0540デフォルトの名無しさん
2009/03/29(日) 22:07:53#include<stdio.h>
void swap(int *a, int *b){int c;c=*a;*a=*b;*b=c;}
int get_distance(int from, int to){
static const int distance[]={0, 6, 13, 18, 23, 43, 58};
if(from>to) swap(&from, &to);
return distance[to-1]-distance[from-1];
}
int get_normal_price(int from, int to){
static const int price[][6]={
{ 300}, { 500, 350}, { 600, 450, 250}, { 700, 600, 400, 250},
{1350,1150,1000, 850, 600}, {1650,1500,1350,1300,1150, 500} };
if(from>to) swap(&from, &to);
return price[to-2][from-1];
}
int is_special_time(int hour, int min){
return (1730<=(hour*100+min) && (hour*100+min)<=1930);
}
int get_price(int from_ic, int from_hour, int from_min, int to_ic, int to_hour, int to_min){
int price=get_normal_price(from_ic, to_ic);
if(get_distance(from_ic, to_ic)<=40 && (is_special_time(from_hour, from_min) || is_special_time(to_hour, to_min))) price=((price/2)+50-1)/50*50;
return price;
}
int main(void){
int from_ic=0, from_hour, from_min, to_ic, to_hour, to_min;
for(;;from_ic=0){
scanf("%d %d %d %d %d %d", &from_ic, &from_hour, &from_min, &to_ic, &to_hour, &to_min);
if(from_ic==0) break;
printf("%d\n", get_price(from_ic, from_hour, from_min, to_ic, to_hour, to_min));
}
return 0;
}
0541デフォルトの名無しさん
2009/03/29(日) 22:25:36#include<stdio.h>
int main(void){
int strategy_size, strategy[25];
int i, j, rest;
for(;;){
strategy_size=0;
scanf("%d", &strategy_size);
if(strategy_size<1) break;
for(i=0;i<strategy_size;i++) scanf("%d", &strategy[i]);
for(rest=32,j=0;rest>0;j++)
{
rest-=(rest-1)%5;
printf("%d\n", rest);
rest-=strategy[j%strategy_size];
if(rest<0) rest=0;
printf("%d\n", rest);
}
}
return 0;
}
0542デフォルトの名無しさん
2009/03/29(日) 22:43:14{ return 0; }
0543デフォルトの名無しさん
2009/03/29(日) 23:01:520544IP address
2009/03/30(月) 00:05:18printf("あたりの本数を入力:", atari); scanf("%d", &atari);
printf("あみだくじに参加する人数を入力:"); scanf("%d", &hito);
honn = hito; // printf("あみだくじの本数を入力:%d\n", honn);
if(honn < atari) {
:
// printf("%d/%d=%d 残り%d本\n", r, RAND_MAX/honn, r/(RAND_MAX/honn), honn );
if(r/(RAND_MAX/honn) <= atari-1) {
0545デフォルトの名無しさん
2009/03/30(月) 19:55:03#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int hito, atari;
int i, j;
printf("参加者の人数 : ");
scanf("%d", &hito);
printf("当たりの数 : ");
scanf("%d", &atari);
srand(time(NULL));
printf("\n");
for(j=0;j<15;j++){
if(j%2) printf("│");
for(i=j%2;i<hito-1;i+=2) printf("%s", (rand()%3)?"├┤":"││");
if(i<hito) printf("│");
printf("\n");
}
for(i=0;i<hito;i++){
if((rand()%(hito-i))<atari){
atari--;
printf("◎");
}else printf("×");
}
printf("\n");
return 0;
}
0546デフォルトの名無しさん
2009/03/30(月) 21:40:37[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9005.txt
[3] 環境
[3.1]OS:Windows
[3.2] VC6.0
[3.3]言語:C言語
[4]期限:4月1日
[5]その他の制限:ユーザ定義関数を利用する
どなたかよろしくお願いします。
0547デフォルトの名無しさん
2009/03/30(月) 21:47:58問1の三目並べの答えお願いします。
c言語 コンパイル gcc
0548デフォルトの名無しさん
2009/03/30(月) 21:49:07問1の三目並べの答えお願いします。
c言語 コンパイル gcc
0549デフォルトの名無しさん
2009/03/30(月) 22:00:29double abs(double d){ return d < 0 ? -d : d; }
double BMI(int h, int w){ return 10000.0 * w / h / h; }
void main(){
int n, i, h, w, j;
double d;
while(scanf("%d", &n) && n){
d = 2000000; /* BMI(1,200) */
while(n--){
scanf("%d %d %d", &i, &h, &w);
if(abs(BMI(h,w)-22) < d){
j = i;
d = abs(BMI(h,w)-22);
}
}
printf("%d\n", j);
}
}
0550デフォルトの名無しさん
2009/03/30(月) 22:29:36#include <stdio.h>
int judge(int p){
return (p & 7) == 7 || (p & (7<<3)) == (7<<3) || (p & (7<<6)) == (7<<6) ||
(p & 73) == 73 || (p & (73<<1)) == (73<<1) || (p & (73<<2)) == (73<<2) ||
(p & 273) == 273 || (p & 84) == 84;
}
void main(){
char c;
int n = 0, b = 0, w = 0;
while(scanf("%c ", &c) && c != '0'){
b <<= 1; b |= c == 'b' ? 1 : 0;
w <<= 1; w |= c == 'w' ? 1 : 0;
if(++n == 9){
if(judge(b)) printf("b\n");
else if(judge(w)) printf("w\n");
else printf("NA\n");
n = 0; b = 0; w = 0;
}
}
}
0551デフォルトの名無しさん
2009/03/30(月) 22:53:302007年の本選の問12 ブラックジャックの問題よろしくお願いします。
あと、問題を解く上でどのようなアルゴリズム、データを利用したか。と何の
処理を関数としたのかを付け加えてお手数だと思いますがよろしくお願いします。
OS xp
C言語
コンパイル gcc
0552デフォルトの名無しさん
2009/03/30(月) 23:58:22大学生ならともかく、高校生の問題を解くのは飽きた・・・
0553デフォルトの名無しさん
2009/03/31(火) 00:58:19マトリョーシカの問題が結構難しいよ
0554デフォルトの名無しさん
2009/03/31(火) 01:38:05http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9006.c
説明ぐらい自分で見て考えろ。
0555デフォルトの名無しさん
2009/03/31(火) 10:09:510556デフォルトの名無しさん
2009/03/31(火) 10:20:480557デフォルトの名無しさん
2009/03/31(火) 11:34:46#include <stdlib.h>
#include <math.h>
double bmi(int height, int weight) { return 10000.0 * weight / (height * height); }
int main(void)
{
int *p, i, n, height, weight, indx = 0;
double min, temp;
FILE *fp;
if((fp=fopen("data.txt", "r"))==NULL) return 0;
while(1) {
fscanf(fp, "%d", &n);
if(n==0) break;
p = malloc(sizeof(int) * n);
fscanf(fp, "%d%d%d", p, &height, &weight);
min = fabs(22 - bmi(height, weight));
for(i=1; i<n; i++) {
fscanf(fp, "%d%d%d", p + i, &height, &weight);
temp = fabs(22 - bmi(height, weight));
if(temp < min || (temp == min && p[i] < p[indx])) min = temp, indx = i;
}
printf("%d\n", p[indx]);
free(p);
}
return 0;
}
0558デフォルトの名無しさん
2009/03/31(火) 12:18:18#include<stdio.h>
#include<math.h>
typedef struct tag_info_t{
long i;
double h, w;
}info_t;
double get_bmi(double h, double w){
return w/(h*h);
}
int main(void){
long i, n;
double bmi, best_bmi;
info_t x, best;
for(;;){
if(scanf("%ld", &n)!=1 || n<1) break;
for(i=0;i<n;i++){
scanf("%ld %lf %lf", &x.i, &x.h, &x.w);
bmi=get_bmi(x.h/100., x.w);
if(i==0 || fabs(best_bmi-22)>fabs(bmi-22)){
best=x;
best_bmi=bmi;
}
}
printf("%ld\n", best.i);
}
return 0;
}
0559デフォルトの名無しさん
2009/03/31(火) 15:29:51>受付番号の小さい方を出力することとします。
忘れてた
0560デフォルトの名無しさん
2009/03/31(火) 15:39:46>>1
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
そのくらいの修正は自分でやればいいとおもうんだな
0561デフォルトの名無しさん
2009/03/31(火) 16:03:22いや、問題文に書かれている文言で、
>>558は仕様を満たしてないってこと。
0562デフォルトの名無しさん
2009/03/31(火) 16:06:28ああ、失敬失敬
早計だった
0563デフォルトの名無しさん
2009/03/31(火) 17:58:12h優先とr優先の二系統で組み入れられる人形の多い方をとればいいよ。
0564デフォルトの名無しさん
2009/03/31(火) 18:31:37見て分からんのは、本人、問題読んでないんちゃうやろか?
読んでたらBMIって関数ある時点で判断できるやろ。すぐ下やし。
0565デフォルトの名無しさん
2009/03/31(火) 19:53:11C/C++系のスレで一番バカでやる気の無い質問者の溜まり場だからな
0566デフォルトの名無しさん
2009/04/01(水) 04:35:170567デフォルトの名無しさん
2009/04/01(水) 13:28:50[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9010.zip
[3] 環境
[3.1] OS:Redhat, Win Xp Pro
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:いつもお世話になっています。153さんのソースを丸々使わせてもらいながらやっています。ほかにもいろいろ伺いながらやっています。
シミュレータなので何回か実行させて結果を比べたいのですが、どうも、最初の配る段階でいつも同じようにしか配ってくれない(並び替えが最初のまま)様です。
srandのtime(NULL)にプレイ回数をかけて見たら変わるかなとも思ったのですがどうやら変わらないようです。
何かヒントがあればよろしくお願いします。
今後書き出し方を変えてRで読み込めるようにしていこうと思っています。
0568デフォルトの名無しさん
2009/04/01(水) 13:41:05C言語でトランプゲームを作りたい
http://pc12.2ch.net/test/read.cgi/tech/1189892773/
0569デフォルトの名無しさん
2009/04/01(水) 15:09:08n個の実数データx(i)(i=1,2,3・・・n)を入力し、合計kei,件数n,平均ave,標準偏差sdを計算し、表示しなさい。ただし、ave,sd,の名で関数を作りなさい。また、終了データは0とする。計算式は次の通りである。
平均値:ave=1/n納i=1,n]x(i)
標準偏差:sd=√{1/n納i=1,n](x(i)-x')^2} x'は平均値
お願いします。
0570569
2009/04/01(水) 15:10:44↑のC言語のプログラムを教えてください。
0571569
2009/04/01(水) 15:12:05×細く
0572デフォルトの名無しさん
2009/04/01(水) 16:47:29#include <stdio.h>
#include <math.h>
double kei(const double *data, unsigned int n)
{
unsigned int i;
double sum = 0.0;
for(i = 0 ; i < n; i++){ sum += data[i]; }
return sum;
}
double ave(const double *data, unsigned int n)
{ return kei(data, n) / n; }
double sd(const double *data, unsigned int n)
{
unsigned int i;
double a = ave(data, n), t = 0.0;
for(i = 0 ; i < n; i++)
{ t += (data[i]-a)*(data[i]-a); }
return sqrt(t/n);
}
int main()
{
unsigned int n = 0;
double data[1024];
while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; }
printf("kei: %lf\nave: %lf\nsd: %lf\n", kei(data,n), ave(data,n), sd(data,n));
return 0;
}
0573デフォルトの名無しさん
2009/04/03(金) 04:04:53[2] 問題文:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9011.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:4月5日
[5] その他の制限:上記のソースに最低一つユーザ定義関数をつける
上記のソースにユーザ定義関数をつけてくださいorz
0574デフォルトの名無しさん
2009/04/03(金) 04:22:43それ以前に、そのプログラムは何をするプログラム?
0575デフォルトの名無しさん
2009/04/03(金) 04:49:45A君、Bさん、C君でバドミントンをします。
A君 VS Bさんの勝負をC君が記録しましたが、記録していたのはサーブの順番だけでした。
1セット3ゲーム11点先取で行い、デュースを適用しました。
C君が残した記録から得点を出力するプログラムを作成してください。
1ゲーム目は必ずA君から始まり、以降は最終ゲームの勝者からです。
また、1ゲーム中のサーブ回数は必ず100回以内です。
こういうものです。
0576デフォルトの名無しさん
2009/04/03(金) 08:37:29#include<string.h>
#define GM 3
#define MAX 101
void tokuten(char *buf){
int g,len;
int Ac = 0, Bc = 0;
len=strlen(buf);
for(g=1;g<len;g++){
if(buf[g]=='A') Ac++;
if(buf[g]=='B') Bc++;
}
printf("%d %d\n", Ac, Bc);
}
int main(void){
int i;
char buf[GM][MAX];
for(i = 0; i < GM; i++){
scanf("%s", buf[i]);
if(buf[i][0] == '0'){
return -1;
}
}
for(i = 0; i < GM; i++){
tokuten(buf[i]);
}
return 0;
}
0578デフォルトの名無しさん
2009/04/04(土) 13:53:55[2] 問題文:
C++ではvalidではないがCではvalidなプログラムを書きなさいというなぞなぞみたいな
宿題が出ました。普通に考えるとCで動くプログラムはC++で動くはずですが、そうでないものを
書けというものみたいです。ヒントは、「C言語の経験がなくても出来る」だそうです。
型にはまらない発想でシンプルなコードを書きなさいと言われました。問題文は以上です。
(validの意味がコンパイル可能を指すのか動作可能なのかを確認し忘れてしまい、今確認
できないのですが、それでも何かピンと来る方宜しくお願いします)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C++
[4] 期限:4月6日
0579デフォルトの名無しさん
2009/04/04(土) 14:01:10スレを勃てるまでもないC/C++の質問はここで 8
http://pc12.2ch.net/test/read.cgi/tech/1235921779/489
489 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/23(月) 09:24:50
char hoge[4] = "ABCD"; // これがエラーになるかどうか
0580デフォルトの名無しさん
2009/04/04(土) 14:40:46int main(void)
{
char data;
char pointer = &data;
pointer = &data;
}
0581デフォルトの名無しさん
2009/04/04(土) 14:47:29関数プロトタイプのない関数の呼び出し
void* からの暗黙のポインタ変換
0582デフォルトの名無しさん
2009/04/04(土) 15:40:42[2] 問題文:ttp://www.dotup.org/uploda/www.dotup.org23539.zip.html
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語: C++
[4] 期限:4月6日
[5] その他の制限:
初回の宿題から難しく全く理解出来ないのでよろしくお願いします
サンプルコードを使って書くのか、単純にこれは参考に使うものなのかすらわかっていませんがよろしくおねがいします
0584デフォルトの名無しさん
2009/04/04(土) 16:25:51[2] 問題文:std::copyと同じような機能が<algorithm>ヘッダのstd::tranformから提供されている。
使い方を理解し、std::transformを使用して以下のようなプログラムを作成しなさい。
- vectorにfloatを複数書き込む。
- 元のvectorのそれぞれの要素を二乗したものからなる新しいvectorを生成する。
- 新しいvectorを画面に表示する。
(ostream_iteratorを使う場合は出力時最後にコンマがつくかもしれないが、気にしなくて良い)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語: C++
[4] 期限:4月6日
0585デフォルトの名無しさん
2009/04/04(土) 16:43:58ttp://www.geocities.jp/ky_webid/cpp/library/025.html
0586デフォルトの名無しさん
2009/04/04(土) 20:17:52使えってかいてあるからとりあえず使うだけのコード
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9014.cpp
0587デフォルトの名無しさん
2009/04/04(土) 20:30:19#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
float power2(float x)
{ return x*x; }
int main()
{
const int size = 10; float c = 0.1;
std::vector<float> vec1(size), vec2(size);
for(int i = 0; i < size; ++i){ vec1[i] = c; c += 1.1; }
std::transform(vec1.begin(), vec1.end(), vec2.begin(), power2);
std::copy(vec2.begin(), vec2.end(), std::ostream_iterator<float>(std::cout, ","));
return 0;
}
0588デフォルトの名無しさん
2009/04/05(日) 00:55:26助かりました!有り難うございました。
0590デフォルトの名無しさん
2009/04/05(日) 03:21:240591デフォルトの名無しさん
2009/04/05(日) 03:23:050592デフォルトの名無しさん
2009/04/05(日) 03:29:260593デフォルトの名無しさん
2009/04/05(日) 03:33:04あんまいじると可哀想だろ
そのへんでやめとけ
0594デフォルトの名無しさん
2009/04/05(日) 12:59:37【 1 】 /* 文字列の標準ヘッダーファイルの取り込み */
#define TRUE 1
#define FALSE 0
int passCheck(char *p); /* ユーザー作成関数のプロトタイプ宣言 */
void main()
{
char buff[256];
int cnt, flg = FALSE;
for (cnt=1; 【 2 】 ; cnt++)
{
printf("パスワードは?=> ");
scanf("%s",buff);
flg = 【 3 】 ;
if (flg == TRUE)
printf("パスワードは合致しました。\n");
else
printf("%d回目 入力ワード %s は間違っています。\n",cnt,buff);
}
}
0595デフォルトの名無しさん
2009/04/05(日) 13:00:24{
static char *pass = "MissionC";
int flg;
flg = strcmp(pass,p);
if (【 4 】 )
return TRUE;
else
return FALSE;
}
0596デフォルトの名無しさん
2009/04/05(日) 13:02:590597デフォルトの名無しさん
2009/04/05(日) 13:13:16#include <string.h>
!fig
passCheck(buff)
!fig
0598デフォルトの名無しさん
2009/04/05(日) 13:22:141
#include "string.h"
#include <string.h>
#include <strcmp.h>
#include <strings.h>
2
cnt<=3 and flg==FALSE
cnt<3 && flg!=TRUE
cnt<=3 && flg==FALSE
newStr[5]
3
passCheck(*p)
passCheck(p)
passCheck(&buff)
passCheck(buff)
4
flg > 0
flg = 0
flg < 0
flg == 0
0599デフォルトの名無しさん
2009/04/05(日) 13:26:16>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
#include <string.h>
cnt<=3 && flg==FALSE
passCheck(buff)
flg == 0
0600デフォルトの名無しさん
2009/04/05(日) 15:08:13[2] 問題文:
16行からなるパスカルの三角形をコンソールに出力するプログラムを作成しなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語: C++
[4] 期限:4月7日
[5] その他制限事項:
(1)正三角形にすること。(各行がコンソール左端ぴったりから始まるような直角三角形ではない)
(2)一つのデータの入る領域を「レンガ」とすると、レンガのサイズは三角形を構成するデータの
最大値の桁を格納出来る大きさとしなさい。ただし見栄えの点から偶数の場合は奇数にした方がよいでしょう。
(=>つまりサイズは4桁(+1)=5にしろって言ってるんだと思います)
(3)数値はレンガの真ん中に位置するようにしなさい。
(4)入れ子のコンテナを使用しなさい。(例 vector<vector<int>>)
よろしるおねがいします
0601デフォルトの名無しさん
2009/04/05(日) 15:22:37ぐぐれ
0602600
2009/04/05(日) 15:38:41ぐぐると似た者はたくさんあるのですが制限事項を満たした者がありませんでした。
ttp://www.daniweb.com/forums/thread49939.html
とかは6行目くらいから正三角形が崩れて来るし、最終的に微妙な三角形になるし、
というわけでよろしるおねがいします
0603デフォルトの名無しさん
2009/04/05(日) 16:53:550604デフォルトの名無しさん
2009/04/05(日) 17:36:0410_00
0605デフォルトの名無しさん
2009/04/05(日) 17:57:49#include <iostream>
int main(void){ std::cout <<
"_______________________________________________1__ \n" <<
"____________________________________________1_____1__ \n" <<
"_________________________________________1_____2_____1__ \n" <<
"______________________________________1_____3_____3_____1__ \n" <<
"___________________________________1_____4_____6_____4_____1__ \n" <<
"________________________________1_____5____1 0___1 0____5_____1__ \n" <<
"_____________________________1_____6____1 5___2 0___1 5____6_____1__ \n" <<
"__________________________1_____7____2 1___3 5___3 5___2 1____7_____1__ \n" <<
"_______________________1_____8____2 8___5 6___7 0___5 6___2 8____8_____1__ \n" <<
"____________________1_____9____3 6___8 4___126___126___8 4___3 6____9_____1__ \n" <<
"_________________1____1 0___4 5___120___210___252___210___120___4 5___1 0____1__ \n" <<
"______________1____1 1___5 5___165___330___462___462___330___165___5 5___1 1____1__ \n" <<
"___________1____1 2___6 6___220___495___792___924___792___495___220___6 6___1 2____1__ \n" <<
"________1____1 3___7 8___286___715__12 87_17 16_17 16_12 87__715___286___7 8___1 3____1__ \n" <<
"_____1____1 4___9 1___364__10 01_20 02_30 03_34 32_30 03_20 02_10 01__364___9 1___1 4____1__ \n" <<
"__1____1 5___105___455__13 65_30 03_50 05_64 35_64 35_50 05_30 03_13 65__455___105___1 5____1__ \n" ;
}
0606600
2009/04/06(月) 00:52:27どなたかコンテナを使ったプログラムでお願い出来ないでしょうか
0607デフォルトの名無しさん
2009/04/06(月) 01:06:270608デフォルトの名無しさん
2009/04/06(月) 01:16:040609600
2009/04/06(月) 01:28:100610デフォルトの名無しさん
2009/04/06(月) 01:42:20WID 文字数の指定
NUM 値
0611デフォルトの名無しさん
2009/04/06(月) 01:43:050612デフォルトの名無しさん
2009/04/06(月) 01:44:52typedef std::vector<int> VecInt;
typedef std::vector<VecInt> VecVecInt;
void main()
{
VecVecInt vvi;
vvi[0][0] = 1;
vvi[1][0] = 1;
vvi[1][1] = 1;
vvi[2][0] = 1;
vvi[2][1] = 2;
vvi[2][2] = 1;
}
0613デフォルトの名無しさん
2009/04/06(月) 02:14:45#include <vector>
typedef std::vector<int> VecInt;
typedef std::vector<VecInt> VecVecInt;
void main()
{
VecVecInt vvi;
VecInt vi;
int iRow, iCol;
int iStep = 10;
vi.push_back(1);
vvi.push_back(vi);
for (iRow = 0; iRow < iStep; iRow++) {
vi.clear();
vi.resize(iRow + 2, 0);
vvi.push_back(vi);
for (iCol = 0; iCol <= iRow; iCol++) {
vvi[iRow + 1][iCol] += vvi[iRow][iCol];
vvi[iRow + 1][iCol + 1] += vvi[iRow][iCol];
}
}
for (iRow = 0; iRow < iStep; iRow++) {
for (iCol = 0; iCol <= iRow; iCol++) {
printf("%d,", vvi[iRow][iCol]);
}
printf("\n");
}
}
0614デフォルトの名無しさん
2009/04/06(月) 02:16:201,1,
1,2,1,
1,3,3,1,
1,4,6,4,1,
1,5,10,10,5,1,
1,6,15,20,15,6,1,
1,7,21,35,35,21,7,1,
1,8,28,56,70,56,28,8,1,
1,9,36,84,126,126,84,36,9,1,
0615600
2009/04/06(月) 02:27:33(イメージ的に605みたいな)
0616デフォルトの名無しさん
2009/04/06(月) 02:33:38#include <string.h>
char* NumFmt(unsigned int uiNum)
{
static int aiPos[][5] = {{2},{1,3},{1,2,3},{0,1,3,4},{0,1,2,3,4}};
static char acRet[6];
char acBuf[16];
size_t uiLen;
unsigned int ui;
sprintf(acBuf, "%u", uiNum);
uiLen = strlen(acBuf);
if (5 < uiLen) return NULL;
strcpy(acRet, "_____");
for (ui = 0; ui < uiLen; ui++) {
acRet[aiPos[uiLen - 1][ui]] = acBuf[ui];
}
return acRet;
}
void main()
{
printf("%s\n", NumFmt(5));
printf("%s\n", NumFmt(55));
printf("%s\n", NumFmt(555));
printf("%s\n", NumFmt(5555));
printf("%s\n", NumFmt(55555));
}
0617デフォルトの名無しさん
2009/04/06(月) 02:35:52_5_5_
_555_
55_55
55555
一応、骨格と部品は用意したんで
適当に加工してちょ
もっと綺麗に書けたらなぁw
0618デフォルトの名無しさん
2009/04/06(月) 03:51:43http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9015.cpp
0620デフォルトの名無しさん
2009/04/06(月) 09:00:45#include <string.h>
#include <vector>
#define N 14
using namespace std;
void main()
{
vector< vector<int> > vvi;
vector<int> vi;
char acBuf[16];
int iRow, iCol, iMax = 0, iMaxLen, i, iSpc;
for (iRow = 0; iRow < N; iRow++) {
vi.push_back(1);
for (iCol = iRow - 1; 0 < iCol; iCol--) {
vi[iCol] += vi[iCol - 1];
iMax = __max(iMax, vi[iCol]);
}
vvi.push_back(vi);
}
0621デフォルトの名無しさん
2009/04/06(月) 09:02:04iMaxLen = strlen(acBuf);
iMaxLen |= 1; // 奇数に繰り上げ
for (iRow = 0; iRow < N; iRow++) {
for (i = 0; i < (iMaxLen / 2 + 1) * (N - 1 - iRow); i++) putchar(' ');
for (iCol = 0; iCol <= iRow; iCol++) {
sprintf(acBuf, "%d", vvi[iRow][iCol]);
iSpc = iMaxLen - strlen(acBuf);
for (i = 0; i < iSpc / 2; i++) putchar(' ');
printf(acBuf);
for (i = 0; i < (iSpc + 1) / 2; i++) putchar(' ');
putchar(' ');
}
putchar('\n');
}
}
もう解答は上がってるけど、別解として
0622デフォルトの名無しさん
2009/04/06(月) 09:30:13こりゃ〜クソースだぁ〜クソースは消毒だぁ〜
0623デフォルトの名無しさん
2009/04/06(月) 09:38:04#define __max(a,b) a>b?a:b
どれだけ花がいいんだ。
0624デフォルトの名無しさん
2009/04/06(月) 10:31:46四つの引数をとるバージョンのaccumulateを使用して、26行目、27行目のtransformとaccumulate(三つの引数バージョン)
を合体するにはどうしたらいいですか?単純に繋いだらコンパイルエラーになりますた(28行目)
あっそれとinnerproductは使っちゃいけないみたいなのであくまでも4つの引数をとるaccumulateバージョンでお願いします
0625デフォルトの名無しさん
2009/04/06(月) 11:23:42struct power : public binary_function<T, T, T> {
T operator()(const T& x, const T& y) const {
return x + y * y;
}
};
sum=std::accumulate(new_vec.begin(), new_vec.end(), 0, power<float>());
こんな感じにすればいいんじゃね?よく分からんが
0626デフォルトの名無しさん
2009/04/06(月) 14:49:200627デフォルトの名無しさん
2009/04/06(月) 15:25:28最大表示桁数が5桁を超えるからじゃないの?
0628デフォルトの名無しさん
2009/04/06(月) 15:28:48new delete 等の C++ キーワードを変数名に
0630569
2009/04/08(水) 19:10:27各行にコメントをつけなきゃなくて、さらに提出するときに説明しなきゃないんですけど、
while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; }の文について誰か詳しく教えてくれませんか?
あとこのプログラムだと平均値が終了データの0まで件数にカウントされているらしく、
例えば1、2、3の平均値は2になるはずが、(1+2+3+0)÷4=1.5となってしまっているので、
修正の仕方を教えてくださいm(_ _)m
0631デフォルトの名無しさん
2009/04/08(水) 19:35:20if (scanf("%lf", &data[n]) != 1) { // 入力
scanf("%*s"); // 入力バッファ読み捨て
printf("error\n");
continue;
}
if (data[n] == 0.0) { // 0なら入力終了
break;
}
n++;
}
改良案
0632デフォルトの名無しさん
2009/04/08(水) 20:05:04[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9019.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc )
[3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 来週の月曜日まで
[5] その他の制限: 特に無し
0633デフォルトの名無しさん
2009/04/08(水) 21:26:260635デフォルトの名無しさん
2009/04/08(水) 22:50:27どういう学校だろうか。
うちなんかこれから講義資料作りますよ。
自分が出した問題がここに出てくるかwktkしながら見ることにします。
0637デフォルトの名無しさん
2009/04/08(水) 23:15:230638デフォルトの名無しさん
2009/04/08(水) 23:17:29カリキュラムがギュウギュウって本当か?
卒業時にバブルソートがなんとかできるとかじゃないよな?
int main()
{
output=fopen("vib1.inp","w");
t=0.0, x[1]=1.0; x[2]=0.0;
printf("%10.5lf\n",t);
printf("%10.5lf%10.5lf\n",x[1],x[2]);
fprintf(output,"♯AVS field file\n");
fprintf(output,"%d\n",NMAX+1);
fprintf(output,"data_geom\n");
fprintf(output,"step%d step%d\n%d %d\n%d",1,1,1,1,1);
fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0);
fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1);
fprintf(output,"radius,\n%d%4.1f\n",1,1.0);
for(i=1; i<=NMAX;i++){
t=((double) i)*h;
fprintf(output,"step%d step%d\n%d %d\n%d",i+1,i+1,1,1,1);
////////////////////////////////////////////////////////////////////////////////
runge( vib,x,f,wrk1,wrk2,t,h,n);
////////////////////////////////////////////////////////////////////////////////
fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0);
fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1);
fprintf(output,"radius,\n%d%4.1f\n",1,1.0);
printf("%10.5lf\n",t);
printf("%10.5lf%10.5lf\n",x[1],x[2]);
}
}
0642デフォルトの名無しさん
2009/04/09(木) 00:42:36とりあえずうちの会社には来ないでね。
0644デフォルトの名無しさん
2009/04/09(木) 06:54:06とか言うお前の会社はそいつが卒業する頃には倒産しているから、安心しろw
0645デフォルトの名無しさん
2009/04/09(木) 06:56:19どうせしょぼい中小企業だろ。見向きもされていないくせに、まともな給与で
人材を雇えないくせに、こんなスレで下を見下すような発言をしに来るなんて・・・
儲かってねーんだろ?w とっとと潰れろ
0646デフォルトの名無しさん
2009/04/09(木) 07:00:00少なくともお前みたいなのは大企業と提携できないから、安心しろw
0647645
2009/04/09(木) 07:20:210648デフォルトの名無しさん
2009/04/09(木) 07:29:59間違ってそいつがあんたの会社に就職活動に来た場合、知らずに雇ってたら
どうするの?そいつがお前の会社に履歴書を出す前に食い止めるためにも、
こんなスレで質問するような学生に、将来自分の会社に来て欲しくない奴は
会社名と自分の名前、役職を名乗れよ?こっちはそんなバカ企業とは提携しないように
ブラックリストに入れておいてやるからw
0649デフォルトの名無しさん
2009/04/09(木) 13:57:190650デフォルトの名無しさん
2009/04/10(金) 00:19:50[2] 問題文(含コード&リンク):50桁程度の2つの自然数nおよびmを入力とし,nCmの値を出力するプログラムを作成せよ.
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C言語
[4] 期限:無期限
[5] その他の制限:長桁計算を必ず用いること.実数型の変数を使用しないこと.
難しすぎて全くわかりません….
みなさん,おねがいします!
0651デフォルトの名無しさん
2009/04/10(金) 00:44:53あとはintで計算しているところを多倍長の加減算に置き換えればよいはず。
int comb (int n, int m) {
if (m == 0 || n == m)
return 1;
else
return comb(n - 1, m) + comb(n - 1, m - 1);
}
0652デフォルトの名無しさん
2009/04/10(金) 00:48:35なんだけど、nやmが50桁になった場合、弥勒菩薩がやってくるまでに計算が
終わらない可能性がある。
0653デフォルトの名無しさん
2009/04/10(金) 00:56:15永遠に計算が終わらないぞ
0654651
2009/04/10(金) 01:05:46フィボナッチを漸化式通りの再帰で定義するみたいなダメ再帰の例ですね。
>>653
一応有限時間で終わる計算なんだから永遠に終わらないというのはマチガイ。
0655デフォルトの名無しさん
2009/04/10(金) 01:11:44>[4] 期限:無期限
とあるから、計算時間はいくらかかってもいいのではないか。
0656デフォルトの名無しさん
2009/04/10(金) 01:36:390657デフォルトの名無しさん
2009/04/10(金) 01:48:23現実的な時間でその桁数のコンビネーションを求めるのは不可能じゃないかな?
0658デフォルトの名無しさん
2009/04/10(金) 01:50:320659デフォルトの名無しさん
2009/04/10(金) 08:11:2750桁っていうのが問題でしょ
0660デフォルトの名無しさん
2009/04/10(金) 08:13:47加算で済むからそれに応じて後は組めば良いのだが、問題でしょって
わかっとるわいw
0661デフォルトの名無しさん
2009/04/10(金) 08:16:52それらを足しても上限は20億に満たないで済む。もう分かっただろ?
0662デフォルトの名無しさん
2009/04/10(金) 08:23:48そういうこといってるんじゃないだろ、アホ
0663650
2009/04/10(金) 08:25:21すいません。わからないです
長桁のやり方はある程度わかるんですが
nやmを50桁とするコンビネーションの計算を短時間で解くのは無理な気がします
0664デフォルトの名無しさん
2009/04/10(金) 08:34:48nCrなんてn-kかけてkで割るのを繰り返すだけだけど、
forのカウンタも長桁数でやるってのは新しいかもしれない
0665デフォルトの名無しさん
2009/04/10(金) 08:39:15演算子オーバーロードできなくて涙目じゃね?
0666デフォルトの名無しさん
2009/04/10(金) 08:52:250667デフォルトの名無しさん
2009/04/10(金) 10:32:28それで、一応ロングなら。
#include <stdio.h>
/* mからnまでの積を再帰的に計算する関数 (m<=n) */
long int factorial (int m, int n) {
if (m == n)
return m;
else
return m * factorial(m + 1, n);
}
/* nCr=n(n-1)(n-2)・・・(n-r+1)/r!*/
int main(void){
int m=0, n=0;
long int a, b;
printf("Enter M N:");
scanf("%d%d",&m,&n);
a = factorial(m-n+1, m); b = factorial(1,n);
printf("%dC%d=%ld/%ld=%ld", m, n, a, b, a/b);
puts(""); n = m - n;
a = factorial(m-n+1, m); b = factorial(1,n);
printf("%dC%d=%ld/%ld=%ld", m, n, a, b, a/b);
}
0668デフォルトの名無しさん
2009/04/10(金) 10:45:11ほほう、そのscanfでどうやって50桁読み込むんだい?
0669デフォルトの名無しさん
2009/04/10(金) 11:01:41#include<iostream>
#include<gmpxx.h>
#include <time.h>
#pragma comment(lib, "gmp.lib")
using namespace std;
mpz_class factorial(int n){
mpz_class x = 1;
for(int k=1; k<=n; k++) x*=k;
return x; }
int main(){
int m=5000, n=2000, cl=clock();
mpz_class x = factorial(m)/(factorial(n)*factorial(m-n));
cl=clock()-cl;
cout << x.get_str() << endl;
cout << cl<<" ms" << endl;
getchar();
return 0;
}
0670デフォルトの名無しさん
2009/04/10(金) 11:05:23効率の悪い計算方法 5000!/ (2000! * 3000! )でしても
15msしかかからん。 50程度だとclock()では測定不可能。1ms以下。
0671デフォルトの名無しさん
2009/04/10(金) 11:06:59間違えてた。 50程度とおもってた。 50桁だった。
0672デフォルトの名無しさん
2009/04/10(金) 11:14:25多倍長ならそういう心配はないのかも知れないけど。
これなら最終結果がオーバーフローしなければ途中結果もオーバー
フローしない。除算があるけど常に割り切れてるから問題ない。
まあ、多倍長にしたとき除算がめんどうかもね。
int comb (int n, int r) {
int ans = 1, i;
for (i = n; i > n - r; i--)
ans = ans * i / (n - i + 1);
return ans;
}
0673デフォルトの名無しさん
2009/04/10(金) 11:15:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9021.txt
0674デフォルトの名無しさん
2009/04/10(金) 11:17:45tiny_mpって何?
0675デフォルトの名無しさん
2009/04/10(金) 11:18:0530秒ほどまっても駄目だったので終了した。
#include<iostream>
#include<gmpxx.h>
#include <time.h>
#pragma comment(lib, "gmp.lib")
using namespace std;
int main(){
mpz_class n, x=1, end("77777777777777777777777777777777777777777777777777");
int cl=clock();
for(n=1; n<=end; n++) x*=n;
cl=clock()-cl;
printf("%d\n",cl);
return 0; }
0676デフォルトの名無しさん
2009/04/10(金) 11:35:14#include<iostream>
#include<gmpxx.h>
#include <time.h>
#pragma comment(lib, "gmp.lib")
using namespace std;
mpz_class combination(mpz_class m, mpz_class n){
if(m==n || m==0) return 1;
return combination(m-1,n-1) + combination(m-1,n);
}
int main(){
mpz_class m("77777777777777777777777777777777777777777777777777");
mpz_class n("33333333333333333333333333333333333333333");
int cl=clock();
combination(m,n);
cl=clock()-cl;
printf("%d\n",cl);
getchar();
return 0; }
0677デフォルトの名無しさん
2009/04/10(金) 11:39:060678デフォルトの名無しさん
2009/04/10(金) 11:42:190679デフォルトの名無しさん
2009/04/10(金) 11:59:38GMPで計算してみたけど、計算が停止しそうにないな。
高速化のために足し算だけで計算したい所だが・・・。
しかし、何の処理もしない空のループであっても、10進50桁程度ではどれくらいかかるんだろうか。
#include<iostream>
#include<gmpxx.h>
#include <time.h>
#pragma comment(lib, "gmp.lib")
using namespace std;
mpz_class combination(mpz_class m, mpz_class n){
mpz_class x=1, i;
for (i = m; i > m - n; i--) x *= i / (m - i + 1);
return x; }
int main(){
mpz_class m("77777777777777777777777777777777777777777777777777");
mpz_class n("33333333333333333333333333333333333333333");
int cl=clock();
mpz_class x=combination(m,n);
//cout << x.get_str() << endl;
cl=clock()-cl;
printf("%d\n",cl);
getchar();
return 0; }
0680デフォルトの名無しさん
2009/04/10(金) 12:00:44間違えたので修正。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9022.txt
>>674
http://mitv2.net/software/tiny_mp/tiny_mp.html
0681デフォルトの名無しさん
2009/04/10(金) 12:05:410682デフォルトの名無しさん
2009/04/10(金) 12:22:160683デフォルトの名無しさん
2009/04/10(金) 12:32:09「50桁程度の2つの自然数」だから
#define KETAを修正しないといけないかもね。
0684デフォルトの名無しさん
2009/04/10(金) 12:36:030685デフォルトの名無しさん
2009/04/10(金) 12:41:26http://www.lassp.cornell.edu/sethna/Cracks/Stirling.html
http://hirokuro-web.hp.infoseek.co.jp/kousiki2.html
0686デフォルトの名無しさん
2009/04/10(金) 12:50:47m=10^51-2 n=m/2
として、
log(n!)=n(logn-0.434) + (1/2)*logn + 2.5、 (スターリングの公式)
log(comb(m,n))=log(m!)-log(n!)-log((m-n)!)
を使えば求まる。
0687デフォルトの名無しさん
2009/04/10(金) 13:09:26そしたら、m = 10^k 、 n = m/2 が最短で解けるアルゴリズムを考えることは意味あると思う。
無理でも何桁まで挑戦できるか考えるって事。
たとえばk=3ならば、 comb(1000,500)ってこと。
0688デフォルトの名無しさん
2009/04/10(金) 13:16:45500-250までの数は2倍すると上の数と一致するから簡単に割り算できる。
250-1までの数についても、割り算の結果がすぐに判るようなアルゴリズムがあれば
実質的には500回の掛け算をするだけですむんだが。
0689デフォルトの名無しさん
2009/04/10(金) 14:05:59「長桁計算を必ず用いる」ってのは、もう書かれてるようなGMPとかで内部的に整数型を使わなきゃまずいのか?
0690デフォルトの名無しさん
2009/04/10(金) 14:11:220691667
2009/04/10(金) 14:19:02>>668 scanf()はこれでどうか? ^-^
#include <stdio.h>
int comb (int n, int r, int i) {
if(i > n) return 1;
return comb(n,r,i+1)*i / (n-i+1);
}
int main(void){
int m=0,n=0;
printf("Enter M N:");
scanf("%99d%99d",&m,&n);
printf("%dC%d=%d", m, n, comb(m,n,m-n+1));
puts(""); n = m - n;
printf("%dC%d=%d", m, n, comb(m,n,m-n+1));
}
0692デフォルトの名無しさん
2009/04/10(金) 14:38:30int型に99桁10進を読み込めるってどんな環境だよ
0693デフォルトの名無しさん
2009/04/10(金) 18:29:330694デフォルトの名無しさん
2009/04/10(金) 18:32:480695デフォルトの名無しさん
2009/04/10(金) 22:27:28> しかし、何の処理もしない空のループであっても、10進50桁程度ではどれくらいかかるんだろうか。
1loop/clockとして、最初は3GHzでムーアの法則を考慮すると、たぶん180〜190年。
0696デフォルトの名無しさん
2009/04/11(土) 07:56:27三角形を見てわかる様に、例えばnCrに於いて rがn/2以上ならn-rの組み合わせと
同じ故に求める数も半分で済むとは言え、50桁もある数ともなればご丁寧に
その半分を求めたとしても大変なことだ。まぁ、そんなことせずとも
rの値でどの範囲を求めれば良いか分かっているようなので、あとは個人の知識、
腕次第だ。健闘を祈る。
0697デフォルトの名無しさん
2009/04/11(土) 08:14:36パスカルの三角形で計算して上を参照すれば速い気はする。
しかし、どんだけ速くしても、50桁の空ループより時間は掛かるだろうから
695の値が正しいとして180年はかかる
0698デフォルトの名無しさん
2009/04/11(土) 08:17:45それをもちいてほぼ正確な値は短時間でもとまる。
もし、下位2桁以外まで正確にもとめられたとすれば
あと2桁は別の方法で計算することも出来そうだ。
0699デフォルトの名無しさん
2009/04/11(土) 08:27:13計算機向けの変形
ガンマ関数の(関数電卓などの)計算機向けの近似として次の式がある。
これは、次と同等である。
これらはスターリングの公式を組み替えて、その結果生じる冪級数と双曲線正弦関数のテイラー展開の間の合致を観察することで得られる。
この近似は z の実数部が 8 以上のとき、小数点以下 8 桁を超える精度を持つ。
2002年、Robert H. Windschitl がリソースの制限された計算機(電卓など)でのそれなりの正確性を持った近似としてこれを示した(参考文献の 'Toth' 参照)。
Gerg? Nemes は 2007年にほぼ同程度の結果を与える近似式を提案した。こちらはより単純である。
スターリングの近似 - Wikipedia
0700デフォルトの名無しさん
2009/04/11(土) 08:43:18ガンマ関数は、階乗を一般化したものなので。
> z の実数部が 8 以上のとき、小数点以下 8 桁を超える精度
0701デフォルトの名無しさん
2009/04/11(土) 10:17:140702650
2009/04/11(土) 11:25:55今日,先生に質問にいったところ,特に「50桁」という部分にはこだわらなくても良いとのことでした.
つまり,nやmに50桁の数値を入力すると,演算時間が長すぎて解答を得るのは不可能になってしまう場合があるが,
それは気にせず50桁の数値を入力できるようにしてあれば良いということだと思います.
とりあえず,皆さんの今までの回答を参考にして,プログラムを作ってみたいと思います.
ありがとうございました.
0703デフォルトの名無しさん
2009/04/11(土) 11:30:10これを使えば50桁でもいけるはずだ。
0704E−mail:sage
2009/04/11(土) 11:50:28多倍長演算 C++
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8868.txt
0705デフォルトの名無しさん
2009/04/11(土) 11:56:150706デフォルトの名無しさん
2009/04/12(日) 03:54:550707デフォルトの名無しさん
2009/04/12(日) 04:22:1950桁とか、もう常識の範囲内を超えたものは、それなりの環境が必要だお^^
例えば、地球上を移動する程度の航空機で済むのと、宇宙へ飛び出すロケットなどと
比較したら、明らかにメンテナンスや飛行距離、上空での環境への適用などに対して
差があるのはお分かりいただけるでしょう。
0708デフォルトの名無しさん
2009/04/12(日) 09:56:56警告 W8071 valuelist1.cpp 151: 変換によって有効桁が失われる(関数 valuelist::writesub(int) )
警告 W8004 valuelist1.cpp 220: 'rp' に代入した値は使われていない(関数 valuelist::diff(valuelist &,int *) )
エラー E2093 valuelist1.cpp 355: == 演算子が使われたがクラス VLint には定義が存在しない(関数 VLint::fmultir(VLint &) )
エラー E2093 valuelist1.cpp 364: < 演算子が使われたがクラス VLint には定義が存在しない(関数 VLint::fmulrsub(VLint,VLint,VLint,VLint) )
エラー E2357 valuelist1.cpp 365: 参照は 'VLint' で初期化されているが 'VLint' 型の左辺値が必要(関数 VLint::fmulrsub(VLint,VLint,VLint,VLint) )
エラー E2342 valuelist1.cpp 365: パラメータ 'b' は VLint & 型として定義されているので VLint は渡せない(関数 VLint::fmulrsub(VLint,VLint,VLint,VLint) )
エラー E2093 valuelist1.cpp 388: == 演算子が使われたがクラス VLint には定義が存在しない(関数 VLint::fdivider(VLint &) )
エラー E2093 valuelist1.cpp 400: < 演算子が使われたがクラス VLint には定義が存在しない(関数 VLint::fdivrsub(VLint,VLint,VLint,VLint) )
*** コンパイル中に 6 個のエラーが発生しました ***
0709E−mail:sage
2009/04/12(日) 10:43:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9023.zip
0710E−mail:sage
2009/04/12(日) 11:40:080711デフォルトの名無しさん
2009/04/12(日) 13:14:41そういう問題じゃないだろう。明らかに文法が間違ってる
0712デフォルトの名無しさん
2009/04/12(日) 13:57:460713デフォルトの名無しさん
2009/04/12(日) 17:44:53どうすればいいのよ?
0714デフォルトの名無しさん
2009/04/12(日) 18:19:45GMPでやってみたよ日曜プログラミング
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9024.c
0715デフォルトの名無しさん
2009/04/12(日) 20:29:49VCでどのライブラリを使わせて多倍長計算させたかったんだろうなぁ
ライブラリとか授業で説明されたんだろうけど>650は代返ですませてしまったんだろうなぁ
0716デフォルトの名無しさん
2009/04/12(日) 20:30:40[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9026.txt
[3] 環境
[3.1] OS: Linix
[3.2] コンパイラ名とバージョン: EMULE
[3.3] 言語: C
[4] 期限: 2009年4月16日17:00まで
[5] その他の制限: 再帰の問題です。西暦のとこfor文とか使っていいのか、再帰で全部ひっくるめられるのかはよくわかりません!よろしくお願いします!!
0717デフォルトの名無しさん
2009/04/12(日) 20:48:56#include <stdio.h>
double num_of_A(int year)
{
return year <= 2009 ? 1000000 : num_of_A(year - 1) * 1.1;
}
double num_of_B(int year)
{
return year <= 2009 ? 500000 : num_of_B(year - 1) * 1.3;
}
int main()
{
int year = 2010;
while(1){
if(num_of_A(year) < num_of_B(year))
break;
year++;
}
printf("2009年現在\n種A 100万体\n種B 50万体\n\n");
printf("%d年で個体数逆転\nAは%d体\nBは%d体\n", year, (int)num_of_A(year), (int)num_of_B(year));
return 0;
}
0718デフォルトの名無しさん
2009/04/12(日) 20:52:35明日学校でやってみます!!
0719デフォルトの名無しさん
2009/04/12(日) 20:55:00問題がよろしくないな
再帰にすると無駄なループが多いし、関数は2つも必要ない
そして>>717早すぎw
0720デフォルトの名無しさん
2009/04/12(日) 21:00:14去年履修したときはなかった問題・・・・
むずかしいです、先生・・ orz
0721デフォルトの名無しさん
2009/04/12(日) 21:14:57だがちょっと待ってほしい
計算途中の頭数もintで表現するべきではないだろうか
0722デフォルトの名無しさん
2009/04/12(日) 21:22:53int main()
{
double a = 1000000;
double b = 500000;
int year = 2009;
printf("%d年現在\n", year);
printf("種A %.0f体\n", a);
printf("種B %.0f体\n", b);
while (a >= b) {
a *= 1.1;
b *= 1.3;
year++;
}
printf("\n%d年で個体数逆転\n", year);
printf("Aは%.0f体\n", a);
printf("Bは%.0f体\n", b);
return 0;
}
再帰を使う必要性は微塵も感じないな
こんないい加減な問題だと小数点以下の扱いもどうでもよくなるw
0723デフォルトの名無しさん
2009/04/12(日) 21:34:34しかも、プログラムを習ったばっかりの人間でも答えられる範囲の
まあ、多少アルゴリズムを教えてからクイックソートぐらいを問題にしたほうが良いと思うが
教育現場の政治的問題があるのかもしれない
0724デフォルトの名無しさん
2009/04/12(日) 22:29:170725デフォルトの名無しさん
2009/04/12(日) 22:44:540726デフォルトの名無しさん
2009/04/12(日) 23:22:32これくらいの再帰なら課題にしていい
0727デフォルトの名無しさん
2009/04/12(日) 23:26:100728デフォルトの名無しさん
2009/04/12(日) 23:29:39どうしてもスタックオーバーフローが生じて無理なので一度答えを
出した(n, m)については答えを保存して再利用するようにしたら
なんとか求まった
(4, 2)は今のところ無理だ
x64で動かせたら考えてみよう
0729デフォルトの名無しさん
2009/04/12(日) 23:37:43マージソートは良いんだが・・・
なんでこういう例ってグローバル変数使うんだろう?
0730デフォルトの名無しさん
2009/04/12(日) 23:38:510731デフォルトの名無しさん
2009/04/12(日) 23:42:3732bit環境で(x86 WindowsXPで)(4, 2)が求まる方法が
あったら教えてください
外部ファイルを使っても構いませんから
0732デフォルトの名無しさん
2009/04/12(日) 23:50:31_findnextみたいな関数を使って
ディレクトリを見つけたら再帰呼び出しするとか
0733デフォルトの名無しさん
2009/04/13(月) 00:24:34[3] 環境
[3.1] OS:
[3.2] コンパイラ名とバージョン: Microsoft C++, Borland 5.5, g++
[3.3] 言語: C++
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9028.txt
0734デフォルトの名無しさん
2009/04/13(月) 00:29:37ありがと
これならちゃんと動くね
0735デフォルトの名無しさん
2009/04/13(月) 05:40:480736デフォルトの名無しさん
2009/04/13(月) 05:43:03それは適してないだろ。再帰は不安定で鈍いから、
ファイルを扱う重要な部分に使うべきではないな。
0737デフォルトの名無しさん
2009/04/13(月) 08:00:00「不安定で鈍い」ってどういう意味?
0738デフォルトの名無しさん
2009/04/13(月) 08:14:200739デフォルトの名無しさん
2009/04/13(月) 08:17:32末尾最適化を実装した言語ではある特定の再帰をループへ展開することができ、
末尾再帰ではスタックオーバーフローは起こらない。
末尾再帰はループ処理に最適化されるので、再帰することそれ自体でスタックを消費することが無いからである。
次によくある原因としては、スタック上に巨大な配列を確保しようとすることである。コールスタックに格納できる情報量には上限がある。
さらに他の原因として、関数呼び出しの階層数が深すぎる場合などがある。
0740デフォルトの名無しさん
2009/04/13(月) 08:21:11関数などのルーチンが自分自身を呼び出して実行すること。
ある種の複雑な問題を解くコードをシンプルに記述できる場合があるが、
再帰による入れ子の数に応じて占有するメモリが増加する上、
実行速度も効率的とは言えず、非再帰的に記述できるならそうすべきである。
http://it_yougo.shooti.jp/s/507865/1
0741デフォルトの名無しさん
2009/04/13(月) 10:52:22{
mpz_t i, n_r, n_i, n_i_1, a;
mpz_init_set(i, n);
mpz_init(n_r);
mpz_init(n_i);
mpz_init(n_i_1);
mpz_init(a);
mpz_set_ui(ans, 1);
mpz_sub(n_r, n, r);
for(mpz_set(i, n); mpz_cmp(i, n_r) > 0; mpz_sub_ui(i, i, 1))
{
mpz_mul(a, ans, i);
mpz_sub(n_i, n, i);
mpz_add_ui(n_i_1, n_i, 1);
mpz_cdiv_q(ans, a, n_i_1);
}
mpz_clear(i);
mpz_clear(n_r);
mpz_clear(n_i);
mpz_clear(n_i_1);
mpz_clear(a);
}
0742デフォルトの名無しさん
2009/04/13(月) 11:37:38構造体変数numには1-10、letにはA-Jが入っていて、
構造体Aの中でtempを初期化したいのですが、代入の仕方が分かりません。
(tempだけをprintfさせたときに、temp[1]=[A2]やtemp[100]=[J10]
と表示されるようにしたい。)
二つの構造体変数を結合させて、一つの変数配列として返したいのですが、やりかたを教えてください。
void initA(struct rub *temp){
char *num;
char *let;
int i,j;
for(i=1; i<10; i++){
for(j=1; j<=10; j++){ temp[i*j]=(A.num,A.let); }
}
}
0744デフォルトの名無しさん
2009/04/13(月) 11:39:150745デフォルトの名無しさん
2009/04/13(月) 11:48:41100C30の場合、実値とのズレ比 (式の値/実値)
1.0000000000230814274901だった。
上位の桁は一致するけど、下位の桁の一致までは無理。
0746デフォルトの名無しさん
2009/04/13(月) 11:53:1850桁だと階乗の値は、ものすごい桁になる。
0747デフォルトの名無しさん
2009/04/13(月) 11:55:30windowsならGMPのbinaryをうpするが
0748デフォルトの名無しさん
2009/04/13(月) 11:57:55わかれば計算量は減らせるが
0749デフォルトの名無しさん
2009/04/13(月) 12:00:39struct rub {
char *num;
char *let;
};
void initA(struct rub *temp)
{
int i;
for (i = 0; i < 100; i++) {
temp[i].num = (char *)malloc(3);
temp[i].let = (char *)malloc(2);
sprintf(temp[i].num, "%d", i % 10);
temp[i].let[0] = "ABCDEFGHIJ"[i % 10];
temp[i].let[1] = '\0';
}
}
int main(void)
{
struct rub A[100];
int i;
initA(A);
for (i = 0; i < 100; i++)
printf("temp[%d] = [%s%s] ", i, A[i].let, A[i].num);
return 0;
}
0750デフォルトの名無しさん
2009/04/13(月) 12:07:17×sprintf(temp[i].num, "%d", i % 10);
○sprintf(temp[i].num, "%d", (i % 10) + 1);
0751デフォルトの名無しさん
2009/04/13(月) 12:16:42ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9029.txt
仕様がよく分からんができる限り仕様に近づけてみた
temp[1]=[A2]
temp[99]=[J10]
0752デフォルトの名無しさん
2009/04/13(月) 12:32:35適当に調べたらack(4,2)で10進数2万桁だそうだ。
コンビネーションよりパネェwwww
ここ見たから間違ってたらスマン
ttp://d.hatena.ne.jp/inamori/20070509/p1
0753デフォルトの名無しさん
2009/04/13(月) 12:36:51サンクス。あーこりゃx64でも無理そうですな
多倍長計算を使って放置しておけばいつかは答えが出るかもしんないけど
一度計算した結果を覚えておくのにstd::map使ってますから型を多倍長
クラスにすればできそうですが・・・・なんとも非現実的な
0754デフォルトの名無しさん
2009/04/13(月) 12:39:21なんだそりゃ?きちっと日本を使えよ!ってガチンコラーメン道、
支那そばで有名な「佐野実」が言ってた。
0755デフォルトの名無しさん
2009/04/13(月) 12:52:4419729桁。
0756デフォルトの名無しさん
2009/04/13(月) 13:10:23http://zokugo-dict.com/26ha/panee.htm
0757デフォルトの名無しさん
2009/04/13(月) 14:44:02651 は、どういった証明になるんですか?
0758デフォルトの名無しさん
2009/04/13(月) 15:16:12色のついたボールがn個あるとする。m個を選び出す組合せの数はnCm。
いま青いボールだけを取り出してみる。
全組合せ数は、青いボールを含む場合と、青いボールを含まない場合の合計と一致する。
青いボールを含む数は、残りからm-1個選ぶ数のこと。
青いボールを含まない数は、n-1個からm個選ぶ数のこと。
0759デフォルトの名無しさん
2009/04/13(月) 15:28:240760デフォルトの名無しさん
2009/04/13(月) 15:31:38nCm = n(n-1)・・・(n-m+1)/m(m-1)・・・1
上辺の左と、下辺の右を順に計算・。
n/1 ・ (n-1)/2・・・
0761デフォルトの名無しさん
2009/04/13(月) 15:57:40知ってたけど。っつか >>754 で日本”語”を忘れてたw
0762デフォルトの名無しさん
2009/04/13(月) 16:05:060763デフォルトの名無しさん
2009/04/13(月) 16:20:37[2] 問題文(含コード&リンク)
繰り返し文を用いて以下の例のような(どのようなものでもよいが、単純なアルゴリズムで複雑な絵の方がよい)ASCIIアートを作成しなさい。
00000&&&&&00000
00000&&&&&00000
00000&&&&&00000
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
00000&&&&&00000
00000&&&&&00000
00000&&&&&00000
[3] 環境
[3.1] OS: Windows VISTA
[3.2] コンパイラ名とバージョン: BCC
[3.3] 言語: C
[4] 期限:今週中
[5] その他の制限:あまり複雑すぎても困ります・・・
0764デフォルトの名無しさん
2009/04/13(月) 17:32:37int main()
{
int row, col;
int pat[] = {0x5555, 0xAAAA};
for (row = 0; row < 15; row++) {
for (col = 0; col < 15; col++) {
printf((pat[row & 1] & (1 << col)) ? "&" : "0");
}
printf("\n");
}
return 0;
}
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0&0&0&0&0&0&0&0
&0&0&0&0&0&0&0&
0765デフォルトの名無しさん
2009/04/14(火) 00:46:30#include <stdio.h>
int main()
{
int i, j;
const char map[] = " |-+";
for(i = 1; i <= 9; i++){
for(j = 1; j <= 14; j++){
printf("%c", map[(i % 2 == 0 ? 2 : 0) + (j % 3 == 0 ? 1 : 0)]);
}
printf("\n");
}
return 0;
}
0766デフォルトの名無しさん
2009/04/14(火) 01:09:38| | | |
--+--+--+--+--
| | | |
--+--+--+--+--
| | | |
--+--+--+--+--
| | | |
--+--+--+--+--
| | | |
0767デフォルトの名無しさん
2009/04/14(火) 01:30:30#include<stdio.h>
#include<string.h>
#define HEIGHT 32
#define WIDTH 79
void triangle(char screen[HEIGHT][WIDTH], int center, int top, int size)
{
int i;
if(size<3) return;
for(i=0;i<size-1;i++) screen[top+i][center-i]=screen[top+i][center+i]='*';
for(i=0;i<size;i++) screen[top+size-1][center-i]=screen[top+size-1][center+i]='*';
triangle(screen, center, top, size/2);
triangle(screen, center-size/2, top+size/2, size/2);
triangle(screen, center+size/2, top+size/2, size/2);
}
int main(void)
{
char screen[HEIGHT][WIDTH];
int i;
memset(screen, ' ', sizeof(screen));
triangle(screen, WIDTH/2, 0, HEIGHT);
for(i=0;i<HEIGHT;i++)
{
printf("%.*s\n", WIDTH, screen[i]);
}
return 0;
}
0768デフォルトの名無しさん
2009/04/14(火) 01:57:36*
* *
* *
*******
* *
* * * *
* * * *
***************
* *
* * * *
* * * *
******* *******
* * * *
* * * * * * * *
* * * * * * * *
*******************************
0769デフォルトの名無しさん
2009/04/14(火) 06:46:010770デフォルトの名無しさん
2009/04/14(火) 10:50:220771デフォルトの名無しさん
2009/04/14(火) 11:06:57mCn=(m/n)*・・*((m-n+1)/1)
a=m-nとおき、f(x)=log(1+c/x)とおくと
log(mCn)=f(1) + ・・・ + f(n)となる。
log(mCn)の値は、∫[1,n]f(x)dxから∫[2,n+1]f(x)dxの範囲。
0772デフォルトの名無しさん
2009/04/14(火) 11:22:40F(n)-F(1)からF(n+1)-F(2)までの間の値。
0773デフォルトの名無しさん
2009/04/14(火) 11:54:590774taguti
2009/04/14(火) 14:39:53(x1、y1)(x2、y2)(x3、y3)を頂点に持つ三角形の面積を計算して、その値を表示するプログラムを作成してください。
・公式:底辺x高さ÷2を使って計算してください。
お願いします!!
0775デフォルトの名無しさん
2009/04/14(火) 14:55:11そのテーブルを1件1件READしながら、
@YMD_S(開始年月)という変数に、
NEN + TUKI4〜TUKI3でフラグ1が設定されている最初の月をセット(例:「200805」)
AYMD_E(終了年月)という変数に、
NEN + TUKI4〜TUKI3でフラグ1が設定されている最後の月をセット(例:「200809」)
としたい場合に、どういったロジックで考えたら
実現可能でしょうか?
処理効率とか以前に、どういう方針で考えたらいいかがわかりません。
どうか教えてください。
0776デフォルトの名無しさん
2009/04/14(火) 15:14:50A(x1, y1), B(x2, y2), C(x3, y3) → A'(0, 0), B'(x2 - x1, y2 - y1), C'(x3 - x1, y3 - y1) として
△ABC = △A'B'C' = |(x2 - x1)(y3 - y1) - (y2 - y1)(x3 - x1)|/2
の方が楽じゃないかなぁ…。
0777デフォルトの名無しさん
2009/04/14(火) 15:23:46(x1, y1),(x2, y2)の間の距離は
sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))
(x1, y1),(x2, y2) を通る直線の方程式は、
(y2 - y1) * x / (x2 - x1) - y + (x2 * y1 - x1 * y2) / (x2 - x1) = 0。
点(x3, y3)からこの直線へ下ろした垂線の長さは
abs((y2 - y1) * x3 / (x2 - x1) - y3 + (x2 * y1 - x1 * y2) / (x2 - x1))
/ sqrt((y2 - y1) * (y2 - y1) / (x2 - x1) / (x2 - x1) + 1)。
0778デフォルトの名無しさん
2009/04/14(火) 15:39:05#include <iostream>
using namespace std;
int main() {
int i, nen, tuki[12], ymd_s, ymd_e;
for(int c=0; c<20 ; c++) {
cin >> nen; cout << nen << ")";
for(i=1; i<=12; i++) {
cin >> tuki[i-1]; cout << tuki[i-1] << ")"; }
ymd_s = ymd_e = 0;
for(i=1; i<=12; i++)
if(tuki[i-1] == 1) {
if(i>9)
ymd_s = nen*100 + 100 + i-9;
else
ymd_s = nen*100 + i+3;
break;
}
for(i=12; i>=1; i--)
if(tuki[i-1] == 1) {
if(i>=9)
ymd_e = nen*100 + 100 + i-9;
else
ymd_e = nen*100 + i+3;
break;
}
cout << ymd_s << "," << ymd_e << endl;
}
}
0779デフォルトの名無しさん
2009/04/14(火) 15:50:57マルチ乙
http://pc12.2ch.net/test/read.cgi/tech/1237091698/493
http://pc12.2ch.net/test/read.cgi/tech/1232055225/770
http://pc12.2ch.net/test/read.cgi/tech/1217575832/499
http://pc12.2ch.net/test/read.cgi/tech/1235927586/774
http://pc12.2ch.net/test/read.cgi/tech/1212498448/876
http://pc12.2ch.net/test/read.cgi/tech/1212409946/66
http://pc12.2ch.net/test/read.cgi/tech/1217575832/499
http://pc12.2ch.net/test/read.cgi/tech/1192201659/808
http://pc12.2ch.net/test/read.cgi/tech/1205156417/821
http://pc12.2ch.net/test/read.cgi/tech/1238032584/16
http://pc12.2ch.net/test/read.cgi/tech/1224719784/934
0780デフォルトの名無しさん
2009/04/14(火) 15:56:55ほんと乙だわ。
そしてそれを全部見つけてきた779も乙
0781taguti
2009/04/14(火) 16:23:540782デフォルトの名無しさん
2009/04/14(火) 20:24:43C言語ですがC++もあまり変わらない解読でいいんですよね?
もしよろしければ一行一行に説明文(コメント)を
追加していただけないでしょうか?
解読を試みているのですがさっぱりです。。
0783デフォルトの名無しさん
2009/04/14(火) 20:26:28質問の意味が分からないや
テーブルの項目
NEN(4桁の数値文字列) | TUKI4〜TUKI3(2桁の数値文字列) | FLAG(1桁の数値文字列) | ...
2008 05 1 ...
2008 09 1 ...
2008 10 0 ...
2008 07 1 ...
のときに
YMD_S=200805
YMD_E=200809
としたいということ?
YMDなのにYMしか使ってないとか気持ち悪いけどw
0784デフォルトの名無しさん
2009/04/14(火) 20:35:452008 00 00 01 00 00 00 00 00 01 00 00 00
で
start 200806
end 200812
にしたいんじゃ
>>783
0785デフォルトの名無しさん
2009/04/14(火) 20:38:32なるほど!そういうことか!
0786デフォルトの名無しさん
2009/04/14(火) 20:41:560787785
2009/04/14(火) 20:52:592008年度の1月の表現は 200801 なのか 200901 なのか分からなかったので両方書いてみた
#include<stdio.h>
int main(void)
{
int year, month, flag, YMD_S, YMD_E;
FILE *fp=stdin;
while(fscanf(fp, "%d", &year)==1)
{
YMD_S=YMD_E=0;
for(month=4;month<=12+3;month++)
{
if(fscanf(fp, "%d", &flag)!=1) break;
if(flag) YMD_E=year*100+(month-1)%12+1;
// if(flag) YMD_E=(year+(month-1)/12)*100+(month-1)%12+1;
if(YMD_S==0) YMD_S=YMD_E;
}
printf("year=%d YMD_S=%d YMD_E=%d\n", year, YMD_S, YMD_E);
}
return 0;
}
0788デフォルトの名無しさん
2009/04/14(火) 22:49:36[2] 問題文(含コード&リンク):
ニュートン法でf(x)=x-cos(x)=0の近似値を求める。
f'(x)=1+sin(x)であるから、
a[k+1] = a[k]-(a[k]-cos(a[k])/(1+sin(a[k]))
によって近似解の改良を繰り返すことになる。
初期近似解をa1=1.0,終了条件を|a[k+1]-a[k]|≦10^(-15)とし、
少数点以下15桁まで求めるプログラムを作成せよ。
※a[k]などの"[k]"は、添え字です。
[3] 環境
[3.1] OS:Linux
[3.2] cc
[3.3] C言語
[4] 期限:明日
0789デフォルトの名無しさん
2009/04/14(火) 22:57:57嘘つけボケが。
そのレベルを一人で解けないなんておわってんな。
0790デフォルトの名無しさん
2009/04/15(水) 03:07:40#include <stdio.h>
#include <math.h>
int main()
{
double x, y;
x = 1.0;
do{
y = x;
x = y - (y - cos(y))/(1 + sin(y));
} while(fabs(x - y) > pow(10, -15));
printf("x = %.15lf", x);
return 0;
}
0791デフォルトの名無しさん
2009/04/15(水) 07:51:26毎回計算させんのかよw
0792デフォルトの名無しさん
2009/04/15(水) 08:29:02【プログラムコンテスト】
・思考ルーチンのプログラムに自信のある方は是非ご参加ください
・賞金は最大10万円です。
http://irensei.com/html/game.html
0793デフォルトの名無しさん
2009/04/15(水) 13:23:38御解答ありがとうございます。
質問の仕方が悪くて申し訳ないです。
NEN 04 05 06 07 08 09 10 11 12 01 02 03
2008 00 00 01 01 01 01 01 01 01 00 00 00
で
start 200806
end 200812
といった感じです。
787さん
if(YMD_S==0) YMD_S=YMD_E; 以前で
YMD_Sに年月がセットされるところがないように
思えますが、どういうロジックなのかご教示いただけませんか?
やはりコメントがないと、見てもわかりません。
申し訳ありませんがお願いします。
0794デフォルトの名無しさん
2009/04/15(水) 14:47:47[2] 問題文(含コード&リンク):
ttp://www.dotup.org/uploda/www.dotup.org8740.zip.html
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語: C++
[4] 期限: 2009年4月16日14:30まで
[5] その他の制限:
課題のファイルの末尾に3点制限事項がありますのでご覧ください
0795デフォルトの名無しさん
2009/04/15(水) 16:16:55どこまでこだわればいいのかねぇ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9031.txt
0796デフォルトの名無しさん
2009/04/15(水) 16:39:48find_last_ofの使い道が分からん
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9032.txt
0798794
2009/04/15(水) 16:59:58ありがとうございます クラスなのとfind_first_of/find_last_ofでかいてもらってるので完璧です
出力も全く問題ないです find_last_ofの使い方がわからんとゆうのは使い方があまりよくないということでしょうか
外出しますが帰ったらもっかい見てみますがこれで問題ないです ありがとうございました
0799デフォルトの名無しさん
2009/04/15(水) 18:53:25[2] 問題文(含コード&リンク):5つの数字の中から3つを選び全て出す
[3] 環境
[3.1] OS:Win
[3.2] コンパイラ名とバージョン:わかりません
[3.3] 言語:C
[4] 期限:今週いっぱい
お願いします
0800デフォルトの名無しさん
2009/04/15(水) 19:30:11マインドシーカーかよ
0801デフォルトの名無しさん
2009/04/15(水) 19:35:22#include <stdlib.h>
#include <time.h>
int main(void)
{
int a[5] = {1, 2, 3, 4, 5}, i;
srand(time(NULL));
for(i=0; i<3; i++) {
int j = rand() / (RAND_MAX + 1.0) * (5 - i);
printf("%d ", a[j]);
a[j] = a[4-i];
}
return 0;
}
0802デフォルトの名無しさん
2009/04/15(水) 21:05:200803デフォルトの名無しさん
2009/04/15(水) 21:36:57int main(void)
{
int i, j, k;
for(i=1; i<=5; i++) {
fof(j=1; j<=5; j++) {
if(j==i) continue;
for(k=1; k<=5; k++) {
if(k==i||k==j)continue;
printf("%d %d %d\n", i, j, k);
}}}
return 0;
}
0804デフォルトの名無しさん
2009/04/15(水) 22:32:17ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9033.txt
0805デフォルトの名無しさん
2009/04/15(水) 22:39:57int main(void)
{
int i, j, k;
for(i=0; i<5; i++) for(j=i+1; j<5; j++) for(k=j+1; k<5; k++) printf("%d %d %d\n", i, j, k);
return 0;
}
0806sage
2009/04/15(水) 23:17:56int main(void)
{
int i,j,n;
i=2;
printf("Input Num=?");
scanf("%d,&n");
printf("Dec=%d\n",n);
printf("heX=%x\n\n",n);
j=(n>>2)&1;
printf("bit[%d]=%d\n",i,j);
return(0);
}
↑これに適当な数を入れると決まって-4195116になってしまいます
どうすればいいでしょうか
0807デフォルトの名無しさん
2009/04/15(水) 23:30:440808デフォルトの名無しさん
2009/04/15(水) 23:31:270809デフォルトの名無しさん
2009/04/15(水) 23:46:27#include <stdio.h>
int main(void)
{
int i, j, k;
int data[5]={0,0,0,0,0};
printf("好きな数字を5個入力してください:");
if(scanf("%d%d%d%d%d", &data[0], &data[1], &data[2], &data[3], &data[4]) != 5) return 1;
for(i=0; i<5; i++)
for(j=i+1; j<5; j++)
for(k=j+1; k<5; k++) {
printf("%d %d %d\n", data[i], data[j], data[k]);
}
return 0;
}
0810799
2009/04/16(木) 00:09:01>>802さんの言うとおり全ての組み合わせを表示せよというものです
>>801>>803-805>>809さんありがとうございます
後から問いが少し代わったので、参考に頑張りたいと思います
0811デフォルトの名無しさん
2009/04/16(木) 15:39:51[2] 問題文(含コード&リンク):
ttp://www.dotup.org/uploda/www.dotup.org11261.zip.html
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: g++
[3.3] 言語: C++
[4] 期限: 4/17 17:00まで
[5] その他の制限:問題文内にメモを書きました それでわよろしくおねがいします
0812デフォルトの名無しさん
2009/04/16(木) 18:03:52[2] 問題文(含コード&リンク):
JPEG-LSでは予測誤差を量子化することでNEAR-LOSSLESSを実現している。
予測誤差を量子化せずにNEAR-LOSSLESSを実現しなさい。
なお採点は
(1)JPEG-LSのソースコードを見つける[10点]
(2)プログラムを書き、NEAR-LOSSNESSを実現する[20点]
(3)出来た画像を見て考察をする[20点]
(4)他の符号化方式で(1)〜(3)を行う.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C言語
[4] 期限: 4/18 22:00まで
[5] その他の制限:ソースコードは見つけたので
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
の:C/C++の宿題を片付けます 124代目の9035.zipにアップしておきました。
各画素の輝度値に所望誤差を加え,それを量子化ステップで割って,
可逆符号化をして,復号し,その後各画素の輝度値に量子化ステップを
かけてあげれば出来るのでないかと思い、先生に確認したところ
それでできるとのことだったのですが、書き方がよくわかりませんでした。
どなたかお願いいたします。
0813デフォルトの名無しさん
2009/04/17(金) 00:33:18[2] 問題文(含コード&リンク)
演習1:任意の長さのint型の配列を用意し,昇順にソートせよ.また,最小値,最大値,平均値を出力せよ.
演習2:文字列とある文字を入力し,文字列中にその文字が現れた位置を表示するプログラムを作成せよ.但し,含まれなければ“なし”と表示する.
(例: ABCDとB を入力 結果 2番目 )
演習3:任意の大きさの2つの正方行列を標準入力から入力し,2次元配列に保存し,これら2つの行列の差を求め,表示するプログラムを作成せよ
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C言語
[4] 期限: 4/20 8:00まで
[5] その他の制限:まだfor、while、多次元配列などの基礎のみしか学習していません。
0814811
2009/04/17(金) 00:33:56既存のソースをテンプレート化する問題です
よろしくおねがいします
0815デフォルトの名無しさん
2009/04/17(金) 01:10:44参考書とにらめっこしたけどさっぱりわかりません
0816デフォルトの名無しさん
2009/04/17(金) 01:23:26問題4、別にあまり変えるとこないけど
template<class T>
typename T::value_type median(const T &ary) {
typename T::size_type num = ary.size();
if(num%2 != 0) {
std::partial_sort(ary.begin(), ary.begin() + (num/2)+1, ary.end());
return ary[((num+1)/2)-1];
} else {
partial_sort(ary.begin(), ary.begin() + (num+1/2), ary.end());
return (ary[(num/2)-1]+ary[num/2])/2;
}
}
0817デフォルトの名無しさん
2009/04/17(金) 01:41:49#include <stdio.h>
int fact(int n)
{
if(n <= 1) return n;
int m = fact(n - 1);
printf("%d! = %d * %d! = %d * %d = %d\n", n, n, n - 1, n, m, n * m);
return n * m;
}
int main()
{
int n;
printf("n!を計算します。\nn = ");
scanf("%d", &n);
printf("%d! = %d\n", n, fact(n));
return 0;
}
0818811
2009/04/17(金) 01:56:32テンプレートが全くわかっていないのですが単純にpart3.cppのコードのmedian関数を上記に
変更してpart4.cppにしたのですがそれだとコンパイルエラーになりました。
ヘッダファイルは変更しなくていいですよね。read、prompt、mainはどこか変える必要ありますか?
0819デフォルトの名無しさん
2009/04/17(金) 02:07:170820デフォルトの名無しさん
2009/04/17(金) 02:27:42入れ替えるんじゃない、追加。
その構造体で動かしたいなら丸投げしとけば
double Abstract_student_info::median()
{
return ::median(homework);
}
0821811
2009/04/17(金) 03:10:46あほですみません。追加というとmedian関数を二回定義汁ということでしょうか?
申し訳ないのですが混乱していますのでヘッダとpart4.cppをうpして頂けると大変たすかります
0822デフォルトの名無しさん
2009/04/17(金) 03:27:41別に名前を変えたかったら変えてもかまわない。
こんな感じか
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9036.cpp
partial_sortは破壊操作なことを忘れてたから修正もしといた
0823811
2009/04/17(金) 03:34:30ありがとうございます!!コンパイル/実行できました。
まだコードの意味が全くわかっていませんがこれから理解につとめます
テンプレートむずかしい。。。
おやすみなさい(●'w'●)ノ
0824デフォルトの名無しさん
2009/04/17(金) 04:34:083D空間で同様に書いてみたら?
つまり宇宙的規模と言う事です。
(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)
0825デフォルトの名無しさん
2009/04/17(金) 06:45:44>>817さん
ありがとうございます
でも実際にコンパイル/実行してみると
7行目:サーバーエラー、intは間違ってます
と出てしまうんですけどどうすればいいんでしょうか?
ちなみに使っているソフトはCmachineです
勝手ですいませんが回答お願いします
0826デフォルトの名無しさん
2009/04/17(金) 07:47:22{
int m;
if(n <= 1) return n;
m = fact(n - 1);
printf("%d! = %d * %d! = %d * %d = %d\n", n, n, n - 1, n, m, n * m);
return n * m;
}
これで多分おk
0827デフォルトの名無しさん
2009/04/17(金) 11:19:20と、言われそうだけど
× if(n <= 1) return n;
○ if(n <= 1) return 1;
なぜなら、0! = 1 だから。
0828デフォルトの名無しさん
2009/04/17(金) 15:00:21そうするつもりで間違えた。指摘ありがとう。
0829デフォルトの名無しさん
2009/04/17(金) 16:32:36本当にありがとうございました
何度も質問して申し訳ないんですが
#include<stdio.h>
void main(void)
{
int k,n,sum;
printf("kの値は?");scanf("%d",&n);
sum=1;
for (k=1;k<=n;k++)
sum=sum*k;
printf("合計=%d\n",sum);
}
をさっきのみたいに
途中の計算結果も表示するにはどうすればいいんでしょうか?
0830デフォルトの名無しさん
2009/04/17(金) 17:27:57printf("%d*%d=%d\n", k, sum, sum*k);
sum=sum*k;
}
0831デフォルトの名無しさん
2009/04/17(金) 17:45:03ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9038.c
0832デフォルトの名無しさん
2009/04/17(金) 19:01:22例えば
class A
{
private: int a
}
class B:: private A
{
}
このように書いた時でも、classBのインスタンスは
Aで定義したaが初期化されてしまうというか
メモリを割り当てられてしまうんですか?
0833デフォルトの名無しさん
2009/04/17(金) 20:58:45ありがとうございます
>>830さん
でもそれを入れなおしてコンパイルすると10行目:予期せぬEOFってでます
for (k=1;k<=n;k++) { の{をとってコンパイルするとエラーは出ないんですが
N!の答えで出てきません
申し訳ないですが回答お願いします
0834デフォルトの名無しさん
2009/04/17(金) 21:03:40試してみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9039.txt
0835デフォルトの名無しさん
2009/04/17(金) 21:06:33printf("%d*%d=%d\n", k, sum, sum*k);
sum=sum*k;
}
0836デフォルトの名無しさん
2009/04/17(金) 21:07:34だから単文でも中括弧を省略するなとあれほど口を酸っぱk
0837デフォルトの名無しさん
2009/04/17(金) 21:15:35#include<stdio.h>
void main(void)
{
int k,n,sum;
printf("kの値は?");scanf("%d",&n);
sum=1;
for (k=1;k<=n;k++) {
printf("%d*%d=%d\n", k, sum, sum*k);
sum=sum*k;
}
でコンパイルしたんですが10行目:予期せぬEOFです。
ってでました
どうすればいいんでしょうか?
0838835
2009/04/17(金) 21:22:48sum=sum*k;
}
printf("合計=%d\n",sum);
△
▼
for (k=1;k<=n;k++) {
printf("%d*%d=%d\n", k, sum, sum*k);
sum=sum*k;
}
printf("合計=%d\n",sum);
0839デフォルトの名無しさん
2009/04/17(金) 21:28:01ようやくできました・・・。
ありがとうございました
お騒がせしてもしわけなかったです
0840デフォルトの名無しさん
2009/04/17(金) 21:29:56ありがとうございます。
コピペして走らせて見ました。
どうやっても増えちゃいますね。
0841デフォルトの名無しさん
2009/04/17(金) 22:21:28[2] 問題文:複数個あるのでzipにまとめました。
課題1〜3 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9040.zip
課題4 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9041.zip
[3] 環境
[3.1]OS:Windows
[3.2]VC++ 2005
[3.3]C
[4] 期限:4月24日
[5] その他の制限:各課題に指定あり
0842デフォルトの名無しさん
2009/04/17(金) 22:57:16どうでも良いけど課題3簡単過ぎじゃない?
#include <stdio.h>
main()
{
puts("名前:山田 太郎");
puts("学籍番号:00A000");
puts("好きな科目:プログラミング演習");
}
0843デフォルトの名無しさん
2009/04/17(金) 23:05:05課題1
#include <stdio.h>
int main()
{
int a = 5, b = 8;
printf("a=%d\nb=%d\na*3=%d\nb*2=%d\na*3-b*2=%d",a,b,a*3,b*2,a*3-b*2);
return 0;
}
課題2
#include <stdio.h>
int main()
{
int a, b, c;
printf("a="), scanf("%d", &a);
printf("b="), scanf("%d", &b);
c=a*3-b*2;
printf("\na*3=%d\nb*2=%d\na*3-b*2=%d",a*3,b*2,c);
return 0;
}
0844デフォルトの名無しさん
2009/04/17(金) 23:06:19#include <stdio.h>
int main(void)
{
int a;
printf("入学年度(2桁)?");
scanf("%2d",&a);
printf("学籍番号:%02dH777\n",a);
printf("山田 太郎\n");
}
どうでもいいけど
typoをわざとやらせるとか
"が全角だとかはこういうレベルの人たちに気づかせようってのは
間違ってる気がする。
自分で間違うヤツはいっぱいいるけど
0845デフォルトの名無しさん
2009/04/17(金) 23:10:05課題4
#include <stdio.h>
int main(void)
{
int a;
printf("入学年度(2桁)?");
scanf("%2d", &a);
printf("学籍番号:%02dH777\n", a);
printf("山田 太郎\n");
return 0;
}
0846デフォルトの名無しさん
2009/04/17(金) 23:12:10mainがintだからreturnは必要か
0847デフォルトの名無しさん
2009/04/17(金) 23:13:060848デフォルトの名無しさん
2009/04/17(金) 23:13:59早めに体験させとくのは悪くないと思うけど。大学の講義としてはすごくベタな問題だよそれ
0849841
2009/04/17(金) 23:18:20まだ習いたてで何度試しても上手くいきませんでしたorz
これから授業について行けるように頭に叩き込もうと思います。
0850デフォルトの名無しさん
2009/04/18(土) 00:01:48こんな問題出すような先生の言うことは聞いちゃダメだぞ
自分で勉強するんだ
0851デフォルトの名無しさん
2009/04/18(土) 00:05:53それじゃあ単位取れないだろw
無難にこなしつつも軽蔑しろ
といわなきゃ
0852デフォルトの名無しさん
2009/04/18(土) 00:57:50そういえば大学でTAやってたころ、全角半角分からないヤツに
教科書を丸写ししたのにコンパイルできないんです〜〜とか
そういう質問をいっぱい受けたなぁ
ぐちゃぐちゃなコード見せられて
これが動かない、何とかしろという馬鹿に
インデントしろとかコメントかけ、何がしたいかも分からん
とか言うとそんなことどうでも良いだろとか逆ギレされたなぁ
期末に全く授業出てないけどこのレポート出したら単位もらえるから
答えを教えろといってきたヤツまでいたっけ
このスレとあんま変わらんか
0853デフォルトの名無しさん
2009/04/18(土) 01:01:27やってくれる方どなたかいませんか?><
0854デフォルトの名無しさん
2009/04/18(土) 01:10:38バグ持ちでなかなか動かない汚いプログラムをいつまでも
いじくり回してる奴
こちらは一から綺麗に書き直してやってるのにそれに目もくれずに
「これを直してください」の一点張り
知るかよそんなの
0855デフォルトの名無しさん
2009/04/18(土) 01:36:06#include <stdio.h>
int main(void) {
int i, j, n, *dataA, *dataB, *wa, *wb;
printf("Input N:"); scanf("%d", &n);
if((dataA = malloc(n*n*sizeof(int))) == 0) return 1;
if((dataB = malloc(n*n*sizeof(int))) == 0) return 1;
printf("Input Matrix A %d X %d\n", n, n);
for(i=0; i<n; i++) {
wa = &dataA[i*n];
printf("A %d : ", i+1);
for(j=0; j<n; j++) scanf("%d", &wa[j]);
}
printf("Input Matrix B %d X %d\n", n, n);
for(i=0; i<n; i++) {
wb = &dataB[i*n];
printf("B %d : ", i+1);
for(j=0; j<n; j++) scanf("%d", &wb[j]);
}
puts("Print out A-B=C");
for(i=0; i<n; i++) {
wa = &dataA[i*n];
wb = &dataB[i*n];
printf("C %d : ", i+1);
for(j=0; j<n; j++) printf("%d ", wa[j] - wb[j]);
puts("");
}
return 0;
}
0856デフォルトの名無しさん
2009/04/18(土) 03:05:28#include <stdio.h>
enum { ARRAY_NUM = 10 };
void disp_array(int *array, int num) {
int i;
printf("Array:");
for (i = 0; i < num; i++) printf(" %d", array[i]);
printf("\n");
}
int main(void) {
int array[ARRAY_NUM];
int min, max, sum;
int i, j; int temp;
for (i = 0; i < ARRAY_NUM; i++) scanf("%d", &array[i]);
disp_array(array, ARRAY_NUM);
min = max = array[0]; sum = 0;
for (i = 0; i < ARRAY_NUM; i++) {
for (j = i + 1; j < ARRAY_NUM; j++) {
if (array[j] < array[i]) { temp = array[i]; array[i] = array[j]; array[j] = temp; }
}
if (array[i] < min) min = array[i];
if (array[i] > max) max = array[i];
sum += array[i];
}
disp_array(array, ARRAY_NUM);
printf("min: %d, max: %d, average: %d\n", min, max, sum / ARRAY_NUM);
return 0;
}
0857デフォルトの名無しさん
2009/04/18(土) 03:10:31演習2
#include <stdio.h>
enum { STRING_LENGTH = 100 };
int find_char(char *str, char ch) {
int i;
if (str == NULL) return -1;
i = 0;
while (str[i]) {
if (str[i] == ch) return i + 1;
i++;
}
return -1;
}
int main(void) {
char str[STRING_LENGTH];
char ch;
int num;
printf("str >> ");
scanf("%s", str);
fflush(stdin); /* fflush()を使うのは本当は正しくない */
printf("char >> ");
scanf("%c", &ch);
num = find_char(str, ch);
if (num < 0) printf("なし\n");
else printf("%d番目\n", num);
return 0;
}
0858デフォルトの名無しさん
2009/04/18(土) 03:12:11安価の付け方ミスったぜ……。
>>856が演習1。全角空白を適当に変換してくれ。
0859デフォルトの名無しさん
2009/04/18(土) 03:42:18夜遅くにありがとうございました><
0860デフォルトの名無しさん
2009/04/18(土) 06:08:540861デフォルトの名無しさん
2009/04/18(土) 07:46:22http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9042.c
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9043.c
0862855
2009/04/18(土) 08:14:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9044.txt
0863デフォルトの名無しさん
2009/04/18(土) 12:20:320864デフォルトの名無しさん
2009/04/18(土) 12:21:460865デフォルトの名無しさん
2009/04/18(土) 12:23:37それ以上はエスパーじゃないから分かんない
0866863
2009/04/18(土) 12:30:56以下がエラーメッセージになります。
errorC4430:型指定子がありません - intと仮定しました。
メモ:C++はintを既定値としてサポートしていません。
あと、3行目に問題があるようです。
0867デフォルトの名無しさん
2009/04/18(土) 12:34:54CじゃなくてC++で書けってこと?
0868デフォルトの名無しさん
2009/04/18(土) 12:37:57main() を int main() に。
でも、それはC++のコンパイラを使っているからであって
Cでは main() で間違いじゃない。
あと、Cでは引数なしのときはできうる限り void を使う。
よって main(void) がいい感じ。C++では逆にvoidは使わない。
コンパイルエラーはでるが、間違いではないので、
先生に言われたら「たわけがっ!」と言い張ればOK
0869863
2009/04/18(土) 12:52:04無事に動きました。
皆さん有り難うございます!
0870デフォルトの名無しさん
2009/04/18(土) 13:39:58C でも int main() が昔からの書き方かな。int main(void) は最近のはやりですかね。
0871デフォルトの名無しさん
2009/04/18(土) 13:45:50Microsoft VC6の時代は、拡張子CPPでもウォーニングレベル止りだったけれど、
VC8以降は拡張子CPPではエラーにした。
0872デフォルトの名無しさん
2009/04/18(土) 14:06:06最近って、ISO、ANSI準拠でとっくの昔に「標準スタイル」として提唱されているが?
0873デフォルトの名無しさん
2009/04/18(土) 14:20:51その ANSI 準拠がくせもの、main() 呼び出し先では引数つきで呼び出しているのに、main(void) ってかくのは変じゃないですか?
0874デフォルトの名無しさん
2009/04/18(土) 14:32:470875デフォルトの名無しさん
2009/04/18(土) 14:47:04それを使うかどうかは呼び出された側次第だしな
0876デフォルトの名無しさん
2009/04/18(土) 15:13:37コンパイラによる型チェックが停止するので(K&R第2版89p)
引数なしの場合はvoidをつけるべき。
でもmainは関係なし。実際、K&Rでもmainの引数は省略されてる。
0877デフォルトの名無しさん
2009/04/18(土) 15:15:36あと、K&Rはmainの戻り値も省略してる。ひゃっはー。
0878871
2009/04/18(土) 17:06:14main() Cでは戻り値のウォーニング。C++では戻り値のエラー。
void main() Cではエラー無し。C++では戻り値のウォーニング。
0879デフォルトの名無しさん
2009/04/18(土) 18:46:20[2] 問題文:直線と四角形の接触判定を求めるプログラム
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: (C)
[4] 期限:火曜日
[5] その他の制限:特になし
直線の式と四角形の座標を入力して直線が四角形を通過しているか
(角で交わるものも含む)どうかを判定するプログラムです。
よろしくお願いします
0880デフォルトの名無しさん
2009/04/18(土) 19:01:42四角形の大きさなどは?
0881デフォルトの名無しさん
2009/04/18(土) 19:07:28特に決められていないので大きさに関係なく
判定できたらいいなと思います
0882デフォルトの名無しさん
2009/04/18(土) 19:27:43typedef struct { double x, y;} point;
typedef struct { double a, b, c;} line;
int isCross(line l, point p1, point p2)
{
return (l.a*p1.x+l.b*p1.y+l.c)*(l.a*p2.x+l.b*p2.y+l.c)<=0;
}
int main(void)
{
int i;
point quad[4];
line l;
for(i=0; i<4; i++) scanf("%lf%lf", &quad[i].x, &quad[i].y);
scanf("%lf%lf%lf", &l.a, &l.b, &l.c);
if(isCross(l, quad[0], quad[2])||isCross(l, quad[1], quad[3])) {
printf("通過する\n");
}
else printf("通過しない\n");
return 0;
}
0883デフォルトの名無しさん
2009/04/18(土) 19:58:15ありがとうございます
直線のa,b,cは傾きと切片とあと何を入力してるんでしょうか?
0884デフォルトの名無しさん
2009/04/18(土) 19:59:510885デフォルトの名無しさん
2009/04/18(土) 20:05:200886デフォルトの名無しさん
2009/04/18(土) 20:06:22四角形は座標軸に対して傾いてないのかとか
多少気になるな
無限で傾いてないと仮定するのが一番楽そうだけど
0887デフォルトの名無しさん
2009/04/18(土) 20:09:13説明がたりなくて本当にすみません。
直線は無限で四角形は座標軸に対して傾いていません
0888デフォルトの名無しさん
2009/04/18(土) 20:11:10ってのが方針でしょう
0889デフォルトの名無しさん
2009/04/18(土) 20:16:18ダウト。cdecl じゃなくて stdcall(pascal) だったら呼ばれた側で処理しないと。
0890デフォルトの名無しさん
2009/04/18(土) 20:22:04そして座標軸に対して傾いていない
0891デフォルトの名無しさん
2009/04/18(土) 20:35:46typedef struct { double top, bottom, left, right; } rectangle;
typedef struct { double a, b, c; } line;
int isCross(rectangle r, line l)
{
return (l.a*r.left+l.b*r.top+l.c)*(l.a*r.right+l.b*r.bottom+l.c)<=0
|| (l.a*r.left+l.b*r.bottom+l.c)*(l.a*r.right+l.b*r.top+l.c)<=0;
}
int main(void)
{
rectangle r;
line l;
scanf("%lf%lf%lf%lf", &r.left, &r.top, &r.right, &r.bottom);
scanf("%lf%lf%lf", &l.a, &l.b, &l.c);
printf("通過%s\n", isCross(r,l) ? "する" : "しない");
return 0;
}
0892デフォルトの名無しさん
2009/04/18(土) 20:51:490893デフォルトの名無しさん
2009/04/18(土) 21:09:57面白くないw
0894デフォルトの名無しさん
2009/04/18(土) 21:22:43対角線と直線が交わるってことは、対角線の両端の座標をax+by+cに代入した結果が、
片方は正で片方が負になっていればいい。
0895デフォルトの名無しさん
2009/04/19(日) 00:54:33で、それって888の言ってることとどう違うの?
0896デフォルトの名無しさん
2009/04/19(日) 00:57:45後者をやってるヤツなんて見たことないが・・・
わざわざint つけてvoidつけてとかバカだろと
0897デフォルトの名無しさん
2009/04/19(日) 01:12:340898デフォルトの名無しさん
2009/04/19(日) 01:51:07[2] 問題文(含コード&リンク):
任意の2つの正方行列を標準入力から入力し、2次元配列に保存し、
これら2つの行列の差を求め、表示するプログラムを作成せよ
[3] 環境
[3.1] OS: Vista
[3.2] コンパイラ名とバージョン:VisualC++2008
[3.3] 言語:C++
[4] 期限: 19日7時まで
[5] その他の制限:なし
0899デフォルトの名無しさん
2009/04/19(日) 01:56:45>>813,855
0900デフォルトの名無しさん
2009/04/19(日) 01:58:360901デフォルトの名無しさん
2009/04/19(日) 06:43:35対応できる範囲が違う
今回は長方形なので同等だが
図のような四角形だと結果が変わる
ttp://2sen.dip.jp/cgi-bin/upgun/up1/source/up26197.png
0902デフォルトの名無しさん
2009/04/19(日) 09:14:48じゃあ895は888にむしろ劣ってるね
0903デフォルトの名無しさん
2009/04/19(日) 11:03:44具体性皆無でクソの役にもたたねーよw
0904デフォルトの名無しさん
2009/04/19(日) 11:16:13#include <stdio.h>
typedef struct { double x, y; } point;
typedef struct { double a, b, c; } line;
int isCross(line l, point p1, point p2)
{
return (l.a*p1.x+l.b*p1.y+l.c)*(l.a*p2.x+l.b*p2.y+l.c) <= 0;
}
int main(void)
{
point quad[4];
line l;
int i;
for(i=0; i<4; i++) scanf("%lf%lf", &quad[i].x, &quad[i].y);
scanf("%lf%lf%lf", &l.a, &l.b, &l.c);
for(i=0; i<3; i++) if(isCross(l, quad[i], quad[i+1])) break;
printf("通過%s\n", i!=3 ? "する" : "しない");
return 0;
}
0905デフォルトの名無しさん
2009/04/19(日) 12:49:50904みたいにコードで示してから具体性とか言え
904はダメダメだけどな
0906デフォルトの名無しさん
2009/04/19(日) 16:24:190907デフォルトの名無しさん
2009/04/19(日) 17:16:42具体性も何も ax+by+c に代入して符号調べるだけじゃん
0908デフォルトの名無しさん
2009/04/19(日) 18:08:020909デフォルトの名無しさん
2009/04/19(日) 18:08:51[2] 問題文(含コード&リンク):
新入生全員にパスワードを渡したい。学生ごとに異なるパスワードをコンピューターを使って自動的に生成したい。
生成するパスワードの長さは10とする。パスワードに使える文字は、英字のうち大文字のみとする。
1回のプログラム実行につき、1個のパスワードが出力されるようにせよ。
制約条件:パスワード生成時に、random()とsrandom()を使う。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: ([2009年4月21日10:00まで]
[5] その他の制限:なし。
よろしくお願いします。
0910デフォルトの名無しさん
2009/04/19(日) 18:13:42エスパーしろっていう内容でもないんだけど
一から十まですべて書かないと分からない?
質問者のレベルを考慮すれば分からなくても仕方ないけど
>>908 は質問者なの?
0911908
2009/04/19(日) 18:14:550912デフォルトの名無しさん
2009/04/19(日) 18:15:070913デフォルトの名無しさん
2009/04/19(日) 18:17:42そういうことはコード書いてから言ってねw
0914デフォルトの名無しさん
2009/04/19(日) 18:21:50質問者じゃないけど、>>888じゃ質問者の役にはたたないだろ。
実際にコード書くか、>>894程度の説明ぐらいはしないと。
0915デフォルトの名無しさん
2009/04/19(日) 18:22:55#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int random(void)
{
return rand();
}
void srandom(unsigned seed)
{
srand(seed);
}
int main(void)
{
int i;
srandom(time(NULL));
for(i=0;i<10;i++)
{
printf("%c", 'A'+random()%26);
}
return 0;
}
0916デフォルトの名無しさん
2009/04/19(日) 18:34:380917デフォルトの名無しさん
2009/04/19(日) 18:38:590918デフォルトの名無しさん
2009/04/19(日) 18:39:20ありがとうございます。
早いですね♪
0919デフォルトの名無しさん
2009/04/19(日) 18:59:050920デフォルトの名無しさん
2009/04/19(日) 20:11:440921デフォルトの名無しさん
2009/04/19(日) 21:26:29mingw だとリンクエラーになるけど
linux だとまんまなのがあったのか
0922デフォルトの名無しさん
2009/04/19(日) 21:34:41Cygwin使えということだな。
0923デフォルトの名無しさん
2009/04/19(日) 21:59:35同じ点を2回計算するのがダメ
quad[3]とquad[0]が作る線分のことを考慮してないのがダメ
よってダメダメ
0924デフォルトの名無しさん
2009/04/19(日) 22:07:30>quad[3]とquad[0]が作る線分のことを考慮してないのがダメ
これは問題ないと思うじぇ
0925923
2009/04/19(日) 22:41:31スマン
0926デフォルトの名無しさん
2009/04/19(日) 23:23:43[2] 問題文(含コード&リンク):
正の整数nを入力し、
(n+1)×n+n×(n-1)+........
+4×3+3×2+2×1
を計算し求めるプログラム
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Borland C++ 5
[3.3] 言語: C
[4] 期限: 一週間後
[5] forの繰り返しを使う
0927デフォルトの名無しさん
2009/04/19(日) 23:31:51int main()
{
int n;
double sum;
printf("正の整数を入力してください>");
scanf("%d", &n);
for (sum = 0.0; 0 < n; n--) {
sum += (n + 1) * n;
}
printf("Ans. %.0f\n", sum);
return 0;
}
0928デフォルトの名無しさん
2009/04/19(日) 23:35:220929デフォルトの名無しさん
2009/04/19(日) 23:45:400930デフォルトの名無しさん
2009/04/19(日) 23:47:19for(i=1;i<=5,i++)など、なるべく簡単に最初に習う範囲でお願いします。
0931デフォルトの名無しさん
2009/04/19(日) 23:52:18int main()
{
int n, i;
double sum = 0.0;
printf("正の整数を入力してください>");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum += (i + 1) * i;
}
printf("Ans. %.0f\n", sum);
return 0;
}
0932デフォルトの名無しさん
2009/04/19(日) 23:54:320933デフォルトの名無しさん
2009/04/20(月) 00:00:46///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0934デフォルトの名無しさん
2009/04/20(月) 00:00:49[2] 問題文(含コード&リンク): 3冊の本の名前、ISBN、著者名を入力し一覧表示しなさい。
ただし、ISBNの4,6,12,16桁目に'-'が入っていない場合エラー表示しなさい。
[3] 環境
[3.1] OS: Vista
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C
[4] 期限: 04/20 12:00
[5] その他の制限: forや配列など基礎的な事しかやっておりません。
一覧表示までは動作したんですがISBNの判定をどの様にしたらいいのか分かりません。
構造体名は「hon_t」それぞれ「name」「isbn」「tyosya」で組んでいます。
0935デフォルトの名無しさん
2009/04/20(月) 00:12:35解決しました。
ありがとうございました。
927、929さんもありがとうございました。
0936デフォルトの名無しさん
2009/04/20(月) 00:13:07// error
}
0937デフォルトの名無しさん
2009/04/20(月) 00:24:25[2] 問題文(含コード&リンク):
無限等比級数の和を各項を順に加算していくことにより求めるプログラム
1+(1/3)+(1/9)+(1/27)+.....
ただし、0.00001以下となる項を加えた時点で加算を終了することとする。
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Borland C++ 5
[3.3] 言語: C
[4] 期限: 一週間後
[5] while do-whileの繰り返しを使う
初心者用でなるべく簡単なものでお願いします。
0938デフォルトの名無しさん
2009/04/20(月) 00:36:03鋭意清書中約3名
コンパイル中約6名
コーディング中約18名
0939デフォルトの名無しさん
2009/04/20(月) 00:36:41#include <stdio.h>
int main(void){
double r = 3;
double stop = 0.00001;
double b = 1;
double ans = 0;
while(1/b > stop){
ans += 1/b;
b *= r;
}
printf("%f\n", ans);
return 0;
}
0940デフォルトの名無しさん
2009/04/20(月) 00:41:37int main()
{
int n = 1;
double sum = 0.0;
double d;
do {
d = 1.0 / n;
sum += d;
n *= 3;
} while (0.00001 < d);
printf("Ans. %f\n", sum);
return 0;
}
0941デフォルトの名無しさん
2009/04/20(月) 00:42:00解決致しました。
ありがとうございました。
0942デフォルトの名無しさん
2009/04/20(月) 01:04:58解決しました
ありがとうございました。
0943デフォルトの名無しさん
2009/04/20(月) 08:17:51それint省かれてるだけだから結局return 0いるじゃん。
0944デフォルトの名無しさん
2009/04/20(月) 08:41:250945デフォルトの名無しさん
2009/04/20(月) 11:29:06[2] 問題文(含コード&リンク):
次の2つの関数は異なるa,bの値を返すか。
その場合はa,bの組の例を答えよ。
1.
int foo1(int a, int b){
if(a>b) return 1;
else return 0;
}
2. int foo2 (int a, int b){
int c;
c=a-b;
if(c>0) return 1;
else return 0;
}
続く。
0946デフォルトの名無しさん
2009/04/20(月) 11:30:16[3.1] OS: Vista
[3.2] コンパイラ名とバージョン:不明 (指定なし?)
[3.3] 言語: C
[4] 期限: 今日中
自分なりに考えてみたのですが、
答えは「ある」。例はa=-32768, b=1
理由:intは16ビット符号付き2進数なので、表せられる範囲は-32768〜32767
2進数に現わすと1000000000000000〜0111111111111111
a=-32768,b=1とすると、
a<bなので、foo1関数では「0」を返すが、
c=a-bをすると表現形式の値域を超えているため、c=32767となる。
よってc>0なので、foo2関数では「1」を返す。
何か的外れな考え方をしているかも知れません・・・
答え、考え方が合っているかどうか、ご教示お願いします。
0947デフォルトの名無しさん
2009/04/20(月) 11:43:040948デフォルトの名無しさん
2009/04/20(月) 11:46:15[2] 問題文(含コード&リンク):
ピクロスを解くプログラム
パターンの判定(横w=15 横の数列=4.2.3)
1行の可能なパターンを全て出力
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:分からない
[3.3] 言語: C
[4] 期限: 4/23
[5] その他の制限:お願いします
0950デフォルトの名無しさん
2009/04/20(月) 12:55:50エラー出てるのは自分だけかもしれないぞ。
0951デフォルトの名無しさん
2009/04/20(月) 12:56:55なるからね
例え自分達が良くても学生/生徒はそうじゃないから
>>>>>教師
0952デフォルトの名無しさん
2009/04/20(月) 12:57:520953デフォルトの名無しさん
2009/04/20(月) 13:06:46Cも数学もダメにする元凶だっつーの
0955945
2009/04/20(月) 13:39:59vistaって、intは16ビットではないのか・・・知りませんでした。
考え方は一応合っているのですね。もう少し考えてから宿題を提出します。
有難う御座いました。
0956デフォルトの名無しさん
2009/04/20(月) 13:44:28エラーメッセージは?
うちじゃ普通にコンパイルするけどな
0957デフォルトの名無しさん
2009/04/20(月) 13:55:04この程度でダメになるようなら元からダメだろw
0958デフォルトの名無しさん
2009/04/20(月) 13:59:45#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int i;
srandom(time(NULL));
for(i=0;i<10;i++)
{
printf("%c", 'A'+random()%26);
}
return 0;
}
0959デフォルトの名無しさん
2009/04/20(月) 14:17:34大きく出たな
0960デフォルトの名無しさん
2009/04/20(月) 14:22:490961デフォルトの名無しさん
2009/04/20(月) 14:45:35生きた程度で、最初の10年はまだ物心も付かない、判断力も無い
思想の面でも洗脳されていない、そのうち親や周りの影響力で
考え方も染まっていくわけだが、40年生きた人は単純に20年生きた若造の倍
なんて短絡的なものではない。何度も同じ事をやっていると飽きてくる。
自分の人生はこれに賭けた、だから失敗できない。そりゃそうだ。
スポーツ選手がそのスポーツで好成績を出さなければ、次の世代の世話役で
一生を終えるかもしれない。成功したものでも、指導者になれるとは限らない。
適正があるからな。で、数学がちょっと出来ないくらいで、諦めてどーすんの?
理数系に進んで英語バリバリな俺からしてみれば、早く海外に出ろと言いたい。
島国で視野の狭いジャポネーゼは駄目。技術力はあるけど発展性が乏しい。
0962デフォルトの名無しさん
2009/04/20(月) 14:48:50学ばずとも日頃から使うからな。俺の考えもジャポネーゼだw
しかし、発展させるくらいのことはするよ。どうせ使わないものを
多数取り込んでも、それを覚えるだけで限られた生きられる時間を
食いつぶすだけで終わるかもしれないしな。もしかすると明日、
事故で死ぬかもしれない人生だぞ。早くしろ、間に合わなくなっても知らないぞー
0963デフォルトの名無しさん
2009/04/20(月) 14:51:51確かにデジタル機器なんざ数値データの処理が重要になるため、少しでも
効率の良いアルゴリズムを記述するために、数学的な考えは必要となってくる。
if、比較演算、四則演算、その他諸々。俺は頭が良いのか悪いのか、分からない。
ランクの低い大学に通っていたが、何で大学に通ったかさえも動機が曖昧。
CMでもやってるだろ?何でここの会社を選んだ?動機は?そんなのねーよ
なんとなくだろ?って奴は意外に多い。自分がそうなってしまうこともあるだろう。
誰しも人生は一度きりだ、さぁ外に出て自分を解き放てっ!(タイーホAA略)
0964デフォルトの名無しさん
2009/04/20(月) 14:59:190965デフォルトの名無しさん
2009/04/20(月) 15:01:010966デフォルトの名無しさん
2009/04/20(月) 15:07:09あれこれ解けても、分かりきった答えを覚えるだけがあんたの人生なのかと?
それが出来て何か「教科書で出てくる問題」を解く以外に使ったことがあるのかと?
ユーティリティーソフトを作りたいなら、PCの仕組みも学ばないと駄目だよ。
コードなんて所詮文字列。それをうまいこと活用できるかは、各個人次第。
0967デフォルトの名無しさん
2009/04/20(月) 15:08:11そのわりには妄想癖抜けてないみたいだけどw
0968デフォルトの名無しさん
2009/04/20(月) 15:17:37それ以前にインターネットの普及が発展に繋がった。
2ちゃんねるがインターネットを普及させたわけではないが、そこに
目を付けた博之はさすが。ただ、利用者はクズが多いがなw
もともと人間なんて、自分はおかしくない、自分こそ正しいという
思い込みで生きているちんけな生き物。戦争が起こっても負けた方が悪いw
だから良さそうな相手を揺さぶって脅して、戦争に持ち込もうとする国もある。
ここで見下すような発言をするだけのお前、自分が特定できるコテなりトリップなりつけて
今後は発言したら?お前こそ問題が解けなかったんじゃないの?w
自分はさも解いた、解けたみたいな、ここでは 論より証拠 言葉よりコード 日本語よりプログラム言語
ですから、コードと実行プログラムで己の実力を証明してね。
ただ、あんたが解いたのは既に世の中に知れ渡っている、教科書にも記述されていることで
例えばコカ・コーラ社のコーラの調合の仕方、ケンタッキー・フライドチキンのスパイスの調合みたいな
固有ブランドを守るような秘密を解くことは出来ないからw
0969デフォルトの名無しさん
2009/04/20(月) 15:22:200970デフォルトの名無しさん
2009/04/20(月) 15:25:36コードの1行も書かず長文連投してる人間の言っていいことじゃない
0971デフォルトの名無しさん
2009/04/20(月) 15:31:42ほとんどの事で他人を頼って生きているわけだろ?ライフライン、病院、交通、食料、
そしててめぇが使っている目の前の機械。出来ない奴をバカにする割には
自分はこの世の中でちっぽけな存在だと気づかない愚かさ。
政治家にでもなって、地元に税金を国から持ち込んで、地元が賑わって自己満足でも
してたら?高額納税者には、何も高学歴しかいないわけじゃないのだが、あんたの
納税額はおいくら?プログラミングで稼いだ分ではいくら?言ってごらん。
おっちゃん、内緒にしておいてやるから。ここに書いた時点で内緒でも何でもないがw
あと数年生きてみろ、相手をバカにする発言を平気でする精神レベルの低いお子ちゃま。
お前が学生なら社会に出れば分かる。もし社会人なら人生オワタ。ただの無職?
それは論外だろ。プログラミングで金稼ぎできないからって、ここで自分ができることで
自分以下の奴を見下しに来ているの?恥ずかしい人生だことw
何度も言ってやるよ。ここに投稿される質問の問題は、既に答えが分かりきっているものばかり。
余ほど、講師が過去にないようなものを出さない限り。ただそれすら学校の 授業 で学んだことを
使って解くという分かりきったものなんだわ。そう、自分の考えが足りない、視野が狭いだけで
勝手にそんな問題はと否定しているだけだと気づきな、ここでしか去勢を張れない青二才。
0972デフォルトの名無しさん
2009/04/20(月) 15:33:39自己紹介乙
0973デフォルトの名無しさん
2009/04/20(月) 15:42:240974デフォルトの名無しさん
2009/04/20(月) 15:48:07OSじゃなくてコンパイラ依存
VistaでもLSI-C試食版とか使えばintが16ビットになる
0975デフォルトの名無しさん
2009/04/20(月) 15:48:24問題にケチをつけた>>951?
>>951にケチをつけた>>952?
0976デフォルトの名無しさん
2009/04/20(月) 15:52:510977デフォルトの名無しさん
2009/04/20(月) 15:57:59だとしたらなんでこの長文はこんなに暴れてんだ?
0978デフォルトの名無しさん
2009/04/20(月) 16:00:52お前がボスでもないことに気づいてくれ。どこのへぼ講師か教授か知らないが
鬱陶しい。授業の合間にこのスレを閲覧?授業中に閲覧?仕事しろ。
お前がいくら数値計算に長けていようが、日本のために活動していないなら
はいさようならだよw 今若くしてこれから長生きする人で、未熟な者に対して
嫉妬(shit)してるのかね?w
0979デフォルトの名無しさん
2009/04/20(月) 16:02:47オレにはさっぱり分からないが、分からないなりに要点をまとめようと努力してみた
>>961
海外では英語さえ出来れば、内容の論理性は求められない
>>962
享楽的に生きろ
>>963
オレは一体何を言ってるんだろう?
>>966
勉強なんて何の意味があるっていうんだ
>>968
僕の考えたアルゴリズムが最強
>>971
お前より出来る奴なんて腐るほどいる
だから僕を馬鹿にするのはやめて
0980デフォルトの名無しさん
2009/04/20(月) 16:36:52高校レベルの数学がきちんと身についてる人間にとっては、
そのレベルの数学と関連するC言語の課題は理解の一助となると思うが。
0981デフォルトの名無しさん
2009/04/20(月) 16:49:070982デフォルトの名無しさん
2009/04/20(月) 17:01:35そのレベルの数学の場合でも、もっと良いツールが既に
出来ているんで(奇しくもその多くはC言語が無ければ作れなかった)
数学教育の場合Cは使わないな。
0983デフォルトの名無しさん
2009/04/20(月) 17:10:10新しいものを学ぶ際に既知のものと関連付けることによって学習効果を向上させるの。
0984デフォルトの名無しさん
2009/04/20(月) 17:12:55夢のような人生
0985デフォルトの名無しさん
2009/04/20(月) 17:47:00の恐ろしく冷静で的確なリファクタリングに敬礼w
0986デフォルトの名無しさん
2009/04/20(月) 17:58:54>>948できたけど回答者が戻るまでに落ちそうなんだけど
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9047.txt
0987デフォルトの名無しさん
2009/04/20(月) 18:01:50小型化、高性能化。より無駄を省いて効率化。
まぁ、別に日本人が劣っているってわけでもない。
世界的に見て何かと優秀な部類に入るしな。
だいたい、アメリカは日本と比較して明らかに規模が違うしな。
人種、移民、海外への影響力。1億3千万の島国の日本が
ここまで世界に影響力があることを考えると、やはり素晴らしい。
しかし、大勢に無勢。何かと人数で負けてしまうんだよね。
逆に、人数でごり押しするのがあの国。まぁスレチだから
スレが終わりそうなこの辺で。次のスレでは虚勢を張っている
講師だか教授だか知らんが、そいつが罵詈雑言を使ったらスルー、放置よろ。
0988デフォルトの名無しさん
2009/04/20(月) 20:20:08ことは無い。これを混同してしまうと数学もCも両方ダメになる。
よってCの初期学習期間中に数学とリンクするのは良く無いことが
わかる。(これはCだけじゃなく、ユーザー定義関数が作れる任意の
構造化プログラミング言語全般に共通して言えること)
0989デフォルトの名無しさん
2009/04/20(月) 20:21:18待ってろ、次スレ立ててくる
0990デフォルトの名無しさん
2009/04/20(月) 20:22:48じゃあ俺も。
>>987 俺の自作自演乙
0991デフォルトの名無しさん
2009/04/20(月) 20:24:14http://pc12.2ch.net/test/read.cgi/tech/1240226599/
0992デフォルトの名無しさん
2009/04/20(月) 20:26:250993デフォルトの名無しさん
2009/04/20(月) 20:46:000994デフォルトの名無しさん
2009/04/20(月) 20:50:120995デフォルトの名無しさん
2009/04/20(月) 20:56:01ならこのスレに来る質問者は皆バカでFA
回答者がこれじゃなw
0996デフォルトの名無しさん
2009/04/20(月) 20:57:090997デフォルトの名無しさん
2009/04/20(月) 20:59:310998デフォルトの名無しさん
2009/04/20(月) 21:01:030999デフォルトの名無しさん
2009/04/20(月) 21:03:32次スレ
C/C++の宿題片付けます 125代目
http://pc12.2ch.net/test/read.cgi/tech/1240226599/
1000デフォルトの名無しさん
2009/04/20(月) 21:04:0010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。