[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 08/07 07:52 / Filesize : 195 KB / Number-of Response : 643
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 124代目



1 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 02:13:06 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 122代目(実質123代目)
pc11.2ch.net/test/read.cgi/tech/1232029287/

2 名前:デフォルトの名無しさん [2009/03/02(月) 02:24:21 ]
>>1 よっし!
C/C++の宿題を片付けます 122代目
pc11.2ch.net/test/read.cgi/tech/1232001038/

3 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 04:31:50 ]
pc11.2ch.net/test/read.cgi/tech/1232029287/998
前すれ998君、ちょっと職員室に来なさいw

4 名前:デフォルトの名無しさん [2009/03/02(月) 23:53:25 ]
[1] 授業単元:画像処理 cプログラミング
[2] 問題文(含コード&リンク): 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] その他の制限:よろしくお願いします。


5 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:03:08 ]
>>4
1. (1)i*width+j  (2)i*width+width-j-1
2. i <= 20 → i < 10 と j <= 20 → j < 20
3. 45

6 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:05:12 ]
>>4
1. 構造体がどこから出てきたのか分からない
2. エラーが何を指しているのか分からない
3. 実行してみればいいだろ

7 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 17:27:25 ]
答えのついている演習問題について質問するのは有りなのですか?

8 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 17:33:05 ]
>>7
こう言う問題に対してこう言う解答でしたが、理解できません教えてくださいって、
初心者スレにでも書き込め。

9 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 17:36:27 ]
>>8
ありがとうございました

10 名前:デフォルトの名無しさん [2009/03/03(火) 22:43:54 ]
[1] 授業単元:文字入力制限
[2] 問題文(含コード&リンク): 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()で文字列として入力して数字以外を受け付けないように変更してもらいたいです。よろしくお願いします。





11 名前:デフォルトの名無しさん [2009/03/03(火) 23:05:41 ]
isdigit関数使え
問題文みてないけど

12 名前:デフォルトの名無しさん [2009/03/03(火) 23:23:03 ]
どうプログラムに組み込んでいいかがわかりません。

13 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:32:58 ]
ちょっと見てみたけど恐ろしいプログラムだな…
char str[100];
int i;
gets(str);
i = atoi(str);
でいいんじゃね?

14 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 23:37:06 ]
>>10
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8951.txt
もうみたくない

15 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:10:47 ]
[1] 授業単元:情報処理入門
[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関数は使用しないこと。


友達がいなくて誰にも聞けません。誰か助けてください。
そもそも何をするプログラムなんでしょうか……


16 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:33:46 ]
友達がいないことがよく分かるな
いい年してボーリングもしたことないのか

17 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:43:05 ]
>>10
gets(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);

18 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:48:36 ]
>>15-16
ボ"ウ"リングだろ。
3と5がちょっと微妙だな
ダブルの時に次の1投が4倍になるようにも読める

ま、書いてあるとおりに組むしかないんだろうな
出来るのはクソプログラムだが

19 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:55:54 ]
アルゴリズムに書いてある事を解釈せずに
そのままプログラムを作ったらおかしな事になりそうだなw

20 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:18:40 ]
ballじゃなくてbawlだったのか
球を投げるからballingと思った



21 名前: ◆RGeAEcUDP2 mailto:sage [2009/03/05(木) 09:56:57 ]
[1] 授業単元: プログラミング 
[2] 問題文(含コード&リンク):入力仕様を、入力座標は最大2桁までの整数を
最大10件までとし、入力範囲のチェックと、最大件数のチェックを行うプログラムの
作成。
[3] 環境
 [3.1] OS: xp
 [3.2] コンパイラ名とバージョン: MSC Ver.5.1
 [3.3] 言語: C
[4] 期限: 今週中
[5] その他の制限: 出来れば、各所にコメントを入れて下さい。
どういうプログラムなのか自分でも把握したいのと、コードの勉強も兼ねて。

よろしくお願いします。

22 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:05:39 ]
日本語でおk

23 名前:デフォルトの名無しさん [2009/03/05(木) 10:07:50 ]
>>22
うっそー、やだー、お前、日本語も理解できないで日本人をやってるの?
早く海外に逃亡する準備しとけ?な?w

24 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:13:45 ]
また麻呂かw

25 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:23:37 ]
また麻呂を目の敵にする必死な基地外かw

26 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:24:45 ]
>>21の説明で仕様が正確に理解できたんなら、コード書けよw
書けないなら引っ込んでろ、クズが

27 名前:本日のMVP [2009/03/05(木) 10:25:13 ]
22 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 10:05:39
日本語でおk

28 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:33:23 ]
お前の方が頭がおかしいことに気づけよ、意味わんねぇ=自分が理解していない=日本語が理解できないw
最近、日本語でおkとか言う奴に限って、理解力がないだけだったりするから困るね。
こりゃNHKのことばおじさんも大変だ。ネタがあって良いだろうけどw

29 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:34:35 ]
>>21
問題文が意味不明

>>27
自分の言葉で語れよ

30 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:36:18 ]
業務くせーな
この時期にこんな宿題ありえねーしw



31 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:37:58 ]
けしからんな、バグ仕込んでやろうぜw

32 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:41:56 ]
バグ仕込もうにも意味わからんしw

33 名前:デフォルトの名無しさん [2009/03/05(木) 11:48:39 ]
>>29
日本語が理解できないなんて、日本人として恥ずかしくないのかね?
麻呂コンプレックスめw

34 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 11:50:16 ]
プロでもない麻呂に必死に噛み付く素人w
そもそも、本当のプロなら、こんな場所で油を売っている暇がない。
金を稼ぐためのソフトを、次々と開発するし、金にもならん
初歩的な問題なんて、相手にしないだろ。

35 名前:モデム接続 mailto:sage [2009/03/05(木) 11:51:21 ]
>>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;
}

36 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 12:51:28 ]
在日うぜーw

37 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 14:56:58 ]
在日日本人です

38 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 14:58:30 ]
>>37
参政権、ある?

39 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:02:20 ]
>>38
あるアルヨ

40 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:14:19 ]
韓国人が政治家になれる時代だぜw



41 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:14:22 ]
朝鮮人は息をするように嘘を吐く

42 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:42:32 ]
その日本語は変、という奴は、まず自分の日本語力を証明しろ。
ほとんどの人が、この世の中の事実を知らないまま、この世を去っていくわけだが?
あれもこれも、適切に発言できる人がいないことくらい、周知のこと。
お前、警察でもないのに、警察の専門用語とか話せる?
あれだって、他人からしてみれば、日本語か?と思えるものもあるぞw

43 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:48:08 ]
日本語でおk

44 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:49:49 ]
お前らスレ違いも甚だしいぞ
害基地は華麗にスルーじゃなかったのか?

45 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 15:57:31 ]
>>21 でいうと
問題文冒頭の「入力仕様を、」がまず分からない
「入力座標」が何か分からない
「最大10件」とあるが1件の単位は何?

日本語が不自由なのは問題文の不備に気づかないほうじゃないか?

46 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:07:51 ]
その他、法律でも専門用語はある。というか、定義な。
要は、受け手が知らなければそれまでだし、自分も知らないなら
知らないことは曖昧な発言で場を濁すなってことだ。
文法だって話に出るが、句読点の使い方なども、曖昧。
身内に国語の教員がいるが、指導してみて分かることもあるぞ。

47 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:12:43 ]
n次元座標値を管理してて
'(' <num> { ',' <num> }n ')'
<num> := { '-' } <digit> { <digit> }
<digit> := '0' - '9'
こういうフォーマット入力で
<num> の取りえる範囲が -99〜99 で
上記2次元座標値を 10件登録できるように

なんだかんだで高度だな

48 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:24:23 ]
メモリの確保 と言う言葉だけで、どこまで意味が通じる?
プログラミングでは、動的確保なども話しに入ってくるだろう。
しかし、自作ではメモリ増設にも話が及ぶ。いかに認識の違いが
業界、業種で違ってくることやら。分かったか?知らない奴、
知識の乏しい奴には偉そうに出来る、知ったかぶりの青二才めが。
もう一度、小学生からやり直せ、引きこもりニート

49 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:40:07 ]
>>21は、>>47の考え方であってるんじゃないか?
そのままコード書いてみろよ

>>48はいいすぎです
「小学生からやり直せ引きこもりニート」はないんじゃない?

50 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:24:54 ]
>>49
ニートだから仕方ない



51 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:42:22 ]
[1] 授業単元: プログラミング 

[2] 問題文(含コード&リンク):パスワード認証プログラムをつくりたい。
プログラムの概要は、パスワードを入力し、正常なら"パスワードは正常です。"
と表示し、間違っていれば"パスワードが違います。"という表示してプログラムを
終了する。

入力の仕様は、パスワードは4文字とし、1文字入力される毎に'*'を1個表示する。
4文字入力後パスワードをチェックする。

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: MSC Ver.5.1
 [3.3] 言語: C
[4] 期限: 今週中


学校の課題ではないんだけど、ちょうど春休みになるんで
ここいらで一人前になりたいと思いまして。
参考にしたいんで名人の力をお貸しください

52 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 17:45:57 ]
>>51
余計なことを書く奴だなw
一人前になりたきゃ自分なりにやってみて
初心者スレで晒せ

標準関数だけだと無理だから
getch() でググれよ

53 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 18:38:13 ]
>>52
初心者スレに変なキチガイ流れ込ませようとすんじゃねえよクズ

54 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 20:06:47 ]
自分が知っていること、理解できること だけ が日本語といっている時点で駄目。
分からない奴には、辞書を用いて参照してやっているのに、参照したお前が
日本語を知らなかったんだろ、って魂胆だろ?見え見えなんだよ、相手の揚げ足を
取ろうと必死な姿が。まぁ、所詮、こんなところで去勢を張るだけの、詰らないクズな
人生しか歩めないんだろ、お前らクズはw
悔しかったら、プログラミングで金を稼いでみろ。それも、ひと財産を稼ぐだけでなく
権力を勝ち取るくらいの巨大な額をな。

55 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 20:29:19 ]
rand君大暴れw

56 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:38:48 ]
>>54
大声上げてどうしたの?

57 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:41:26 ]
君は、この世に様々な分野が存在するのだが、母国語で
それら全てに対して、適切な説明が出来るのかね?

この世の中は、ごく普通に言語弾圧というものがある。
決まっていないことに対しては、そいつが勝手にそう思ったんだろ?
と、よく理解できない、知らない人間に、あたかも多数派が正しいという
洗脳を行う習慣がある。もっと、世の中を世界レベルで見るんだな。

ある国では、タブーとされていることを、別の国では当たり前のように行われている
なんてことも、普通にある。しかし、それを理解しない人は、いくら 言葉 で説明しても
理解できないどころか、そいつの言葉がおかしい、と受け止めるだろう。

58 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:43:06 ]
特に、世の中をまだよく知らず、適切に判断できない未熟者、責任能力に欠ける
未成年、あるいは精神が未発達な大人にも見られる、無責任さ。
ここは見ず知らずの人が閲覧し、書き込みをする無責任な場所でもある。
例え、事実無根、相手が嫌がる発言をしても、余程のことでなければ
まず責任が問われることは無い。が、犯罪予告は、書き込みをした人を
警察を介して特定することがある。

今後、日本ではどこまで言論の自由に対して、制限がされるかは分からないが、
インターネットが普及して、ブログ炎上のようなことが頻繁に起これば、
ある特定の語彙を書き込めない、いわば規制をするかもしれないが、
所詮それらも デジタルデータ に過ぎないのが現状。
姑息な手を使って、規制をすり抜ける輩も出てくるだろう。
イタチゴッコになるだろうけど。

そして、ここで解いている問題も、所詮はデジタルデータの演算などを
人間が理解できるプログラム言語にて記述し、コンピュータはそれを
コンパイルして、コンピュータ言語で解釈するのだ。

59 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:44:36 ]
ねえこれ何の宿題?

60 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:50:17 ]
相手の言っていることが理解できないことに対しては、
相手がまともに言葉を知らない、表現力、語彙が乏しい可能性はあるが、
自分の理解力が乏しいくせに、理解できましぇ〜ん、なんてことを
いちいち表現する必要があるのかね?まぁ、世の中、自分が理解できる事、
人間なんてごく一部だが。自分が気に入らなければ、気に入らないことを
している人間に対して、何かしら嫌がらせ、圧力を掛けてくる不届き者はいる。
第一、自分が関与する人間は、この世の何パーセントだと思っているんだ?

一年生になったら、友達100人できるかな?100人?名前を知っているくらいで
相手のことをよく知らないくせに、友達になった気になる?
仮に、100人の人と話をするとしよう。1人1分だけでも、1時間40分掛かるし、
1分で出来る話ってどんなもん?しかも、会うための時間も割かなければならない。
そう、例え同じクラスになった人でも、ごく一部しか友達になっていないんだよ。
また、卒業したら、何人とその後、連絡を取っているか?

人それぞれ職場が違う、職場以外の人間とも会うだろうけど、
プライベートで会う人は、何人?芸能人が芸能人全員と
交流があると思っている?同じ業界にいても、関わる人はごく一部。

そう、この世は自分が理解できないことだらけ。だから、理解できる
似た思想のもの同士が集まる習性がある。ただ、その集団が
変に大きくなると、国家権力にまで影響力が及ぶ危険性もある。
人間社会を統率するのは、本当に苦労する役割だと思いますよ。

最後に、日本語でおk、と指摘するくらいなら、何が問題か?
指摘くらいしろよ。でなければ、結局、自分がその意見を
気に入らなかった、としか、相手には受け止めてもらえないよ。



61 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:58:47 ]
>>60
>最後に、日本語でおk、と指摘するくらいなら、何が問題か?
>指摘くらいしろよ。

>>45を読もうね。

62 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:58:51 ]
>>59
いつものキチガイだからスルー推奨

63 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:12:30 ]
もうこのスレを見ている人は、普通に理解しているだろう。
論より証拠。そう、言うくらいなら、四の五の言ってないで
自分が書いた問題を解くソースコードを提示すれば良いだろ?
よく理解していなくても、もう決まりきった処理をするコードは
定石というものがこの世にはあり、それを引用するだけで良いが。
クイックソートを記述する問題が出ても、世の中に普通に出回って
使われているコードを丸写しで提出すれば、それで評価はされるからねぇ。
ただ、それはその場だけでの評価。社会では、今後、予期せぬ
自分が着手したことのない問題が、嫌と言うほど立ちはだかるだろうけど、
死ぬまでが勉強、人生。がんばれよ、青二才。
君はあと、何年この世でプログラミング、C言語のソースコードを
書き続けるつもりかね?死後も、この世に自分が記述したコード、
あるいは編み出した手法が使われていると良いでちゅね。
そう、学校で習った教科書に記述されていることは、過去の人間が
発見、開発、発案した分かりきった内容に過ぎないのだよw
しかし、当初の目的とは違った形で使われているのも事実。

さて、ノーベル賞で有名な、アルフレッド・ノーベルは、ダイナマイトの発明者として有名だが
その後、ノーベルが目的とした以外に、どのように人類の歴史上ではダイナマイトが使用されたかね?
それを見て、あんたは ダイナマイトでおk と言うのかね?w

64 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:30:57 ]
高校数学レベルの知識が必要な問題になると逃げ出すアホが言っても説得力がないw

65 名前:デフォルトの名無しさん [2009/03/05(木) 23:16:38 ]
>>64
意味が分からんけど、あんたは全ての質問に答えているの?
あと、いつ逃げ出したか、証拠でもあるの?むしろ、あんたが出来ずに
他人を頼ったんだろ?w

66 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:19:37 ]
とりあえず、コテハンを付けてもかまってもらえるぐらい大物にならないとな

67 名前:デフォルトの名無しさん [2009/03/05(木) 23:21:39 ]
麻呂に、剰余の問題で先を越されて悔しかったあいつかw
あれは中学校レベルだがw
余程、数学が出来ることが優越感に感じる唯一の生き甲斐なんですねw
実に寂しい人生だ。こっちは、初歩的なプログラミングで楽しんで生きているというのにw

68 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:39:29 ]
>剰余の問題で先を越されて
明らかに麻呂の方が後だったけどw

69 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:41:26 ]
いい加減真性のキチガイに構うなよ。
長文連投されて迷惑だ。

70 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:48:27 ]
↓君は、ライト兄弟が発明した飛行機が、その後、自爆テロに使われて
↓飛行機でおkと言うのかね?その言葉や物が、どういった使われ方をするか?
↓そんなのは、時代によって変わってしまうものだよ。
↓ほら、山茶花って言葉、元は漢字を並べた読みの「さんざか」だったんだよ?
↓新しいは「あらたし」が転じたとか。役不足の意味、分かってる?
↓能力が不足してるのではなく、手に余るという意味だよ?日本語はおk?



71 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:50:53 ]
早春に
怨念怨嗟の
長文連投

72 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:51:36 ]
>>70
日本語でおk

73 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 05:35:22 ]
反論が出来ないんだろ、C言語しか取柄の無い引きこもり基地外が、
麻呂は高校レベルの数学の問題は解けないとか言うしw
逆に、数学の知識は特に必要としない、言語の使用に関しては
ド素人なんだろ、その噛み付いてくる粘着常駐は。だから、ここを
自分のテリトリーと思い込んでいるようだが、ここは2ちゃんねるの管理者が
所有している掲示板。書き込んだ本人が何を思っても、書き込み内容は
サーバーの中にログとして残り、誰かが保存している限り、未来永劫、
半永久的にデジタルデータとして残るわけだが。
そのログを、100年以上も未来の子孫達が閲覧して、時代背景も含めて
書き込み内容をどう思うんだろうねw

74 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 05:36:31 ]
そもそも、麻呂はここのところ、来ているのか?それすら分かっていないんだろw
ねぇ、とりあえずさ、鏡を見たら?ピザにメガネを掛けたようなものが映った?
それ、誰のだよ?そう、お前の面だよ?ただ、あんたが目の当たりにしたのを
このスレを見ただけじゃ、どんなものだったか、想像できないのが悔しいね。

75 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 05:46:10 ]
>>23
>>25
>>27
>>33
>>34
>>42
>>46
>>48
>>54
>>57
>>58
>>60
>>63
>>65
>>67
>>70
>>73
>>74

76 名前: ◆.l3Q3ORut2 mailto:sage [2009/03/06(金) 10:15:01 ]
>>52
余計でしたか・・・いやぁいつも周りに言われるんで
どうやらこれは僕の悪い癖みたいですね(^^;

getch()を使うのですかなるほど・・・
もう少しヒントみたいなの貰えませんか?

若しくは簡単でいいので、コード書いていただいて
それを参考に応用してみたいです

名人、よろです

77 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:34:57 ]
    お断りします
        お断りします
            お断りします
      ハ,,ハ ハ,,ハ ハ,,ハ ハ,,ハ
     ( ゚ω゚ )゚ω゚ )゚ω゚ )゚ω゚ )  お断りします
    /    \  \  \  \    お断りします
  ((⊂  )   ノ\つノ\つノ\つノ\つ))   お断りします
     (_⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ       お断りします
      ヽ ヘ } ヘ }  ヘ } ヘ }
  ε≡Ξ ノノ `Jノ `J ノ `J ノ `J

78 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 13:40:45 ]
MSC 5.1ってどんなコンパイラですかね
smallモデルとかlargeモデルとかあるやつ?

79 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 15:02:47 ]
>>78
おそらくそのはず。

Wikipediaでは、MS Cの最後のバージョンでC++コンパイラとMFC 1.0がついて、
その次からVisual C++という名称になったということになっている。
そして、VC++は1.5までが16ビット版だった。

80 名前:デフォルトの名無しさん [2009/03/06(金) 15:11:04 ]
>>68 は、まだ根に持っているんだなw あの程度のことで、麻呂の態度が気に食わなかったのか
未だに必死に、麻呂がいるもんだとトラウマになっているようだが、それとは無関係に
麻呂以外の第三者を、無闇に煽っていることに気づかない、見えない敵と戦う戦士になったようだw
ちなみに、汎用性については、麻呂の方が明らかに軍配が上がった。所詮、お前は
固有のパターンにしか対応できない、融通の利かないヘボプログラマー。環境が変わると、
一からコードを書き直す、無駄が多いタイプ。そういうの、この世界では生き残れないよ。
そう、先行きを考えた前置きが出来ないから。



81 名前:デフォルトの名無しさん [2009/03/06(金) 15:14:11 ]
64 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 22:30:57
高校数学レベルの知識が必要な問題になると逃げ出すアホが言っても説得力がないw

↑やたらと自分基準で、勘違いをして「アホ」とか罵詈雑言を平気で使う、
知能レベルの低い基地外。このスレが、生き甲斐、自分の縄張りだと思っているらしい。

66 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 23:19:37
とりあえず、コテハンを付けてもかまってもらえるぐらい大物にならないとな

↑必死に煽るくせに、自分がコテハンを名乗らない小心者。こいつの発言は、いつも無責任。
恐らく無職のニートで、社会に適合しないタイプ。

68 名前:デフォルトの名無しさん 投稿日:2009/03/05(木) 23:39:29
>剰余の問題で先を越されて
明らかに麻呂の方が後だったけどw

↑こいつは、我先にとコードの出来よりも、雑でも早く出すことが目的らしい。
恐らく、学生時代には、他人より先に答えることに集中してしまい、
間違っていても自分の答えは正しいと言い張って、周りから干されたタイプ。

82 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 15:15:58 ]
いったい何が起きてんだ?
剰余の件とか。
詳しく説明よろ

83 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 15:17:44 ]
まぁ、ここで陰湿な罵倒をしている、麻呂以外の人にも当り散らしている
精神障害の基地外は、恐らく本当の引きこもりなんでしょう。
まともなプログラマーが、いつまでもこんな場所にいるわけがない。
というか、日頃は商売のためのソフトウェアを開発しているしな。
暇な時は、油を売っていないで、自ら学習するし。無能な職員は
遊んでいて、他人任せで生きるんだろうけど、そういう役立たずは
すぐに首切りにされるからねw

84 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 15:20:06 ]
っつか、もう答えが分かりきっている、高校生だろうが大学レベルだろうが
その問題を解いたくらいで、得意気になっているこの必死なアンチ麻呂は誰?
第三者から見ても、必死すぎてキモイ。

85 名前: ◆.l3Q3ORut2 mailto:sage [2009/03/06(金) 15:53:55 ]
>>78
昔のNEC製PC9800シリーズに標準で付属してるコンパイラみたいです。
古すぎてこれぐらいしかわからなかったけど、後は>>79の通りなんじゃないかな


というか皆さん>>76を華麗にスルーなさってます・・・
どうかスルーしないでやってくださいお願いします

86 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 15:57:15 ]
>>85
getch( )ですべてだ
#include <conio.h>
がMSC 5.1で使えるかは知らないが

87 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 16:14:48 ]
>>84
丁度、春休みに入ったやつじゃね?

88 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 16:25:17 ]
剰余の問題なんて、中学校レベルだろ、ぎゃはははははwwwww
あの程度で、麻呂ごときに勝ったつもりか?w

89 名前: ◆.l3Q3ORut2 mailto:sage [2009/03/06(金) 17:05:19 ]
>>86
んーそうですか・・・自分が使ってる麻奈ちゃんの「やさしいC」って参考書には
getchar()しか載ってないようでして
しかも詳しく詳細が載ってるという訳でもなく、調べようにも今手元には参考書が
これぐらいしかなくお手上げ状態です(><

なもんで、申し訳ないんですけど簡単なコードでいいのでお手本書いて貰えませんか?
お願いします

>>87
はい、そうです

さっきからぐぐって調べてみてるんですけど、何分情報量が半端じゃなく
ありすぎるので、目的のサイトが中々見つからないんです

調べ方に問題があるような気もしてきてるのですが、どうしたらいいかも
具体的に思いつかなくて困りました

お助け下さい名人

90 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 17:37:57 ]
>>89
#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;
}




91 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 18:48:30 ]
なんで別人のふりしてんの?

92 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 20:17:12 ]
>>89
参考書とか要らないから
googleにgetchと入力してボタンクリックするだけ


93 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:59:15 ]
あなたたちが課題をやってくれなかったせいで留年しました。
本当にありがとうございました。

94 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 03:01:16 ]
>>93
来年も留年させてあげます。
おたのしみに。

95 名前:デフォルトの名無しさん [2009/03/07(土) 03:11:32 ]
麻呂トラウマで必死な引きこもりが痛すぎw

96 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 05:30:35 ]
>>93
言う事が朝鮮人みたいだな
自分のせいなのに人のせいにしやがって

97 名前:デフォルトの名無しさん [2009/03/07(土) 06:08:43 ]
トラウ麻呂w

98 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 13:22:37 ]
[1]C言語基礎
[2]麻呂と罵倒屋さんとの剰余うんぬんの経緯をも一度
詳しく教えてくれませんか?
[3] 日本語
[4]本日中

99 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:57:14 ]
[1] 授業単元:勝手にやってます
[2] 問題文(含コード&リンク):ばば抜きシミュレーターを作る
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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

以前配列をむちゃくちゃなことやってここでお世話になりました。
一応プレイをさせれるようなところまで言ったのかなと思ったら、スタックオーバーフローを起こすようになってしまったようです。
これを回避する方法を教えてください。

あいかわらずひどいと思いますが、よろしくお願いします。

100 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:09:45 ]
よく見てないし、関係ないけど、関数呼ぶたびにsrand()するな。



101 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:10:31 ]
スタックオーバーフロー?
0で割ってるだけじゃねーの

102 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:12:08 ]
>>99
本当にスタックオーバフロー?

VC++9.0で確認したら、関数choise()の中の

i = rand()%remain[N_plyer];

で、remain[N_plyer]の値が0になっている。



103 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:12:11 ]
>>99
大域でオブジェクトを宣言するな。
特にカウンタ。局所にしろ。

そんなことしてるから問題の絞込みができないんだ。
関数を分ける意味が薄れるだろうが。

104 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:14:00 ]
もう少し基本的なこと理解してから長いコード書いてくれ

105 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:26:42 ]
209 [main] baba 3536 _cygtls::handle_exceptions: Error while dumping state (
probably corrupted stack)
Segmentation fault (core dumped)

209や3536とかの値は毎回変わるみたいです。

Error while dumpingってのをググったらスタックオーバーフローだっていわれたのでそうだと思ったのですが、違うんですかね?

>101
減らしてみます。

>102
そこのあたり確認してみます。

>103
一回ずつよく使うのをローカルで宣言するの面倒だからと思ったんですが、やっぱり関数ごとに宣言したほうがいいですか?

>104
この前も同じようなこと言われました。
簡単な短いのは習ったんですが、こういう長いのを書くのは初めてな上に勘とgoogle先生に聞きながらやってるのでいろいろひどいと思います。

106 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:29:33 ]
>>99
main以外の関数はプロトタイプ宣言を書いて
そこに説明を書いた方が読みやすいソースになる

107 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:31:13 ]
この前あがってたシャッフルとか、理解するつもり全くないだろw

108 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:40:25 ]
ひどいのわかってて開き直るってw

109 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:48:15 ]
カードがなくなった人が出ると、その人から札を引こうとして0で割ってる。
カードがなくなった人は飛ばす処理が必要。

110 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:08:18 ]
>>105
ループの先で関数呼び出して、そこでも同じループカウンタを使うとあっという間にバグの出来上がり。
独りよがりで誰にもみせねぇってソースなら後でお前が困るだけだからどうでもよし。



111 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:17:04 ]
糞コードの添削するくらいなら1から書いたほうがよっぽど楽。

112 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:23:50 ]
見てたら頭が痛くなってきた・・・

113 名前:モデム接続 mailto:sage [2009/03/08(日) 00:32:46 ]
>>99
/*int*/void choice() の先頭で、リターンするといい事有るかも。
{
//int i, j, k;
  if(remain[N_plyer] == 0) return; // 上がっているので、1回パス
// srand(time(NULL));

114 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 06:08:26 ]
>>98って難しい?

115 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 06:19:54 ]
1^1 + 2^2 + 3^3 + ・・・ n^n を3で割った余りを求める、ような問題だったと思う。
nを指定して、それに応じて。また、発展で 1^1 - 2^2 + 3^3 - 4^4 ・・・ と
+と-が交互になった場合とか。結局、コードの中の定義を変えることで
nや3で割る部分を適当に変更できる使用にした麻呂に軍配が上がったわけだがw

116 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 06:21:27 ]
それで、後だししただの、麻呂のクソースも見てくれだのと言ったことに
腹を立てたこのスレの常駐引きこもり基地外がファビョって、麻呂は特定可能だからって
麻呂に当り散らしていたw 精神レベルが低いんだろうね、中学校レベルの数学なのに
麻呂では解けないとか、勝手なことを言い出したが、自分がその程度の問題を解いたくらいで
得意気になっているだけという、第三者から見たら滑稽な姿だと気づかないのが痛すぎるwww

117 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 06:25:00 ]
さらに、麻呂はクソースと題して、単方向、双方向リスト、それに
ファイルを用いる機能を追加、並び替えも独自のコードで実装したわけだが
これまた、後から後から訂正して、何がなんだかw
あの手の問題は、既に定石、ありきたりの手法があるわけだが
丸写しを他人の質問で出しても、答えが側の実力とは言えないしな。
そんなこんなで、ここを自分の縄張りだと思っている、社会では
まともに稼いでいないヘボプログラマーが、初心者が知識が乏しいことを良いことに
好き勝手なことを言っているわけだ。だから、こんなクソスレに成り下がっているわけで、
年々、大学や専門学校の先輩から後輩へ、このスレの存在が伝えられているのか
最近では過去に似た問題、あるいはまったく同じ問題と、同じ学校で同じ授業を受けている
生徒が鉢合わせになることもw

118 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 08:13:32 ]
このキチガイ長文連投の言うこと信じる奴なんていんのかよw

119 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 09:05:42 ]
信じる信じない以前に見る気しない。

120 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 09:13:29 ]
↓おまいは、ある整数を1で割った余りを求めるプログラムでも作ってろ、な?



121 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 09:47:39 ]
さすがにループ変数を自信満々でdoubleにして元のプログラムを間違ってると言ったアホ
は言うことが違うw

122 名前:デフォルトの名無しさん [2009/03/08(日) 17:33:07 ]
コマンドラインからいくつかの文字列を入力し、
文字列を逆さに出力するプログラムを作成。
ただし、入力する文字列の長さや個数に制限をつけないために、
以下のような仕様とする。

文字列毎にその都度メモリを動的に確保する
一度確保したメモリは次の文字列を処理する前に解放する。
malloc とか使うんですかね?
[動作例]
% ./a.out abcde fghijklmn opqr
edcba
nmlkjihgf
rqpo

123 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 17:47:17 ]
>>122テンプレ

124 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 19:16:11 ]
>>122
こんなんでどうでしょう?

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8956.c


125 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 19:33:33 ]
よく見るとメモリを確保する必要性がないな

126 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 19:41:38 ]
#include <stdio.h>
char *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);
}
}

127 名前:デフォルトの名無しさん [2009/03/08(日) 20:09:23 ]
麻呂のクソースに期待

128 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:25:05 ]
最近は<string.h>をincludeしないのでstrlen()を使うのがが流行り?

129 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:45:38 ]
>>127
いない奴に期待してどうすんだ?w

130 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:48:37 ]
#include <stdio.h>

void 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;
}



131 名前:130 mailto:sage [2009/03/08(日) 20:51:48 ]
ごめん問題文読んでなかった。メモリ確保がいるの。
でも別にこれで長さにも個数にも制限なくないですか

132 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:57:13 ]
mallocと麻ー呂っくを掛けたのか?w

133 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:58:33 ]
無意味な仕様であることは確かだな。

134 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:13:41 ]
>for(; p != s; putchar(*p)) p--;
なんでわざわざこんな記法をw

135 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 21:16:16 ]
p=sのときも表示させるための工夫なんだろ
while(p!=s) putchar(*--p)
でいい気もするが。

136 名前:122 mailto:sage [2009/03/08(日) 21:30:26 ]
>123-135
いろいろありがとうございました。
次回あれば、テンプレ忘れないよう気をつけます。

137 名前:モデム接続 mailto:sage [2009/03/09(月) 01:07:40 ]
> 最近は<string.h>をincludeしないのでstrlen()を使うのがが流行り?
実行ファイルが a.out だから、コンパイラは gcc ではないだろうか。

138 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 03:45:30 ]
Cygwinとかならgccでもa.exeじゃね?

139 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 07:01:44 ]
>>138
数学で逆は真ならずってならわなかったか
逆、裏、対偶ってあって真なのは対偶

140 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 08:24:46 ]
いや、それ、命題としてもどうかと。数学とかって話じゃないだろ。
実際に分かりきっている事実なんだから、調べれば良いだけ。



141 名前: ◆v/LK4luEPU mailto:sage [2009/03/09(月) 09:43:46 ]
>>90
遅くなりました、ありがとうございます。
おかげさまで望みのコード勉強が出来ました。

参考書みてるだけじゃ、このレベルのコードも書けないという
勉強にもなり、いい経験になりました。

>>92
なるほど、参考になります。

それと、先日の土日を利用して、図書館へ行きCの参考書を2点程借りてきて
みたのですが、どうやらその参考書にも「getch()」の記述が載ってないんですよね。
「getchar()」の方は載っているのですが、この二つは何か違いがあるのでしょうか?

スレ違いでしたらすみません。



142 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 10:40:23 ]
getchar と getch は挙動が全く違うし、getch は環境依存だから。
Windows の場合は getch でいいんだが、UNIX系OSの場合は termios (あるいは curses の getch) を使うことになる。

143 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 12:57:23 ]
>>142
win2kを使っててgetch()に酷い目にあわされたw

144 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:57:36 ]
[1] 授業単元:授業とは関係なし
[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] その他の制限: あまり深くは習っていません。あまり難しいと困ります。



145 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:17:18 ]
>>144
#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;
}

146 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:19:30 ]
>>144
www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

147 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:22:58 ]
FizzBuzzと言う名前、忘れてた
これができないというのは正直信じられん

148 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:29:29 ]
>>147
もう久しく紙に書く習慣がなくなってしまったので、cでも急に紙に書けといわれるとどうかな。

149 名前:144 mailto:sage [2009/03/09(月) 22:47:04 ]
FizzBuzzは書けました。ですが、3が付く数字がどう判定して良いかわかりません。

150 名前:145 mailto:sage [2009/03/09(月) 22:52:10 ]
>>144
3がつく数字忘れてた
#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;
}



151 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:56:17 ]
>>145
俺はお前のような漢になりたい

152 名前:規制解除したようす mailto:sage [2009/03/09(月) 23:56:00 ]
#include <stdio.h>
int 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;
}

153 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 02:52:49 ]
>>99
俺にはこれが限界だ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8959.txt

154 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 02:54:49 ]
>num = rand() % 53;
こう書くと偏るからダメだって言う奴がでるからダメ。

155 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 02:59:31 ]
>>154
randの偏りをなくすのは諦めたw
あと、カードを取ってあがった場合の処理もw

156 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 03:07:41 ]
num = rand() % (i + 1) もしくは num = i + rand() % (53 - i) にする。
または、
for(i=53; i>1; ) {
num = rand() % i--;
temp = allcard[i];
allcard[i] = allcard[num];
allcard[num] = temp;
}
にする。

157 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 03:42:25 ]
>>153見ずに>>154見て、下位ビットは云々という話かとおもた

158 名前:152 mailto:sage [2009/03/10(火) 10:24:48 ]
>>152 の6〜8行目。間違っていました。
訂正後:printf("%s%s%d ", (i%3==0 || i%10==3 || (i/10)%10==3 || (i/100)%10==3 || (i/1000)%10==3)

159 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 11:34:33 ]
>>144
嫌がらせのように見にくいコード
#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;
}

160 名前:デフォルトの名無しさん [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;
}



161 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 12:11:27 ]
>3が付く数字

162 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 12:12:41 ]
>>160
*30から*39も全部アホにならないといけないそうだ
300から399も

163 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 12:15:49 ]
1からnまでの間に3の倍数と3のつく数字がいくつあるか求める関数
int nabeatu(int n)
を作れ
というのを以前見たような気がする

164 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:32:53 ]
>>150に勝てる気がしなくてやめた

165 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:50:54 ]
倍数を求めるのは難しくないが、3の付く数字は
一度文字列に置き換えて、3が含まれるかチェキするとか。


166 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 13:51:44 ]
って、文字列に置き換える必要はなかったか。10で割った余りが3かどうかで
順に10で割っていけば良いか、すまそ。

167 名前:99 mailto:sage [2009/03/10(火) 16:11:22 ]
>>153

ありがとうございます。
今夜にでもゆっくりソースを読ませてもらいます。

今後の書き方の参考にもさせてもらいます。

168 名前:デフォルトの名無しさん [2009/03/10(火) 18:33:38 ]
>>161-162
あぁ読み間違えてた
俺もプログラミング習いたてだけど
一応できたわ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8964.txt

つうか、>>150みたいな短い書き方あるんだな
俺もそういう書き方してえわ

169 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:12:07 ]
生年月日を2000/01/01もしくは2000/1/1の形式で入力し、
誕生日から現在まで何日経過したか、現在の年齢の2項目を表示するプログラムをお願いします。

170 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:35:21 ]
>>169 かなり制約つき
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8965.txt
コンパイラ:VC++ 2005
日数;満日数
年齢:数え年齢(めんどうなので。満年齢は勝手にどうぞ)
誕生日:1970年以降
現在日付:2038年迄



171 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:52:00 ]
>>169
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8966.txt
投稿してみよう…

172 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:54:59 ]
おまえら優しいな…

173 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:04:04 ]
>>169
2行目が曖昧かな?誕生日からというのは、前の誕生日からなのか、
生まれたその日からのどちらか?

174 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:25:19 ]
>>173
お誕生日会と誕生日の違いだな。

175 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:29:37 ]
>>174
お誕生日”会” ???

176 名前:170 mailto:sage [2009/03/11(水) 09:50:29 ]
そもそも、生まれた当日は0日目なのか、1日目なのか。
それの方が悩んだ。

177 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:01:16 ]
年齢計算に関する法律について調べるべし。

178 名前:170 mailto:sage [2009/03/11(水) 10:26:20 ]
オッケー、日本語で。0日目で正しいようだ。
「年齢計算に関する法律」で検索した。

179 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:28:08 ]
法律を知らないとプログラムって書けないんだね><

180 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:44:12 ]
>>179
法律を知らないと書けないと言うか
作ろうとしてるプログラムの内容を知ってないと
作れない



181 名前:99 mailto:sage [2009/03/11(水) 19:19:39 ]
要求定義ってやつじゃないか?

182 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:34:42 ]
>>178
年齢ハ出生ノ日ヨリ之ヲ起算ス
初日不算入の例外が年齢だよ
出生日が1日目

183 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:19:05 ]
指定した年に、13日の金曜日があるか調べ、あるならそれが何月か表示せよ

184 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:54:30 ]
指定した年に、13日の金曜日があるか調べ、あるならその日を災いにせよ

>>182 例外に含まれるのを見落としてました。
なるほどしかし、法律的には4月1日に生まれた子女は翌年の3月31日
午後12時に1歳に成るとなっている。4月1日午前0時でなく。
満年齢はそれでいいとして、課題は"経過した"日数も…(2項目)だから生まれた日の
翌日が第1日目でいいじゃないかと思う。生まれた当日は何かとバタバタしてるし。
正確に言えば翌日も出生時刻までが0日目で、第2日目てことは無いと思う。

185 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:06:52 ]
>>183
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8967.txt


186 名前:185 mailto:sage [2009/03/11(水) 21:12:19 ]
間違えてた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8968.txt

187 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:39:41 ]
>>186
今年って3回もあるんだ
ジェイソンも大変だなw

188 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 02:21:34 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8969.txt
言語・コンパイラ:C・VC++ 2005
日数;満日数
年齢:数え年齢(めんどうなので。満年齢は勝手にどうぞ)
誕生日:1901年以降 <--- new
現在日付:2038年迄 <--- なんとか?

189 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 02:46:53 ]
>>188
struct tmからtime_tをつくるmk_time()つー関数がなんか便利だたよ

190 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 02:59:04 ]
× mk_time
○ mktime

tm構造体つくる→年月日時分秒メンバを書き換える→mktime()
→localtime_s()でstruct tmに変換
→曜日・日数が自動補完されてうまー



191 名前:デフォルトの名無しさん [2009/03/12(木) 11:27:49 ]
皆C言語で書いてるってことなのか?
よくわからないんだけどCとC++が微妙に構文違うのはなぜなの?

192 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 11:44:11 ]
>>191
struct tm 変数名; // C structが必要
tm 変数名; // C++ structをつけなくていい
C++は、変数の宣言が処理の途中で出来る。等々

193 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 15:13:21 ]
ttp://www3.uploader.jp/dl/akaiup/akaiup_uljp00797.zip.html

[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列なので)

194 名前:デフォルトの名無しさん [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

教えてください

195 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:08:15 ]
>>194
for ( i = 0; i < 100; i++)
{
乱数で0-9の数字を2個( p , q )作成
tmp = A[ p ];
A[ p ] = A[ q ];
A[ q ] = tmp;
}

196 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:34:59 ]
#include <stdio.h>
#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;
}

197 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:00:29 ]
>>196
偏りそうにも見えるが、上手くいくのかな?
誰か優しく証明して。

198 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:15:23 ]
なんでこう、乱数絡みの問題が定期的に湧くんだw

199 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:21:01 ]
偏りっていうのはrandをつかうからってことなの?
どれぐらい偏るもんなの?

200 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:24:01 ]
いやいや、randのせいじゃなく、
単純に処理としての話。

for(i=0; i < size; i++)だと分かるんだけど、
逆でも良いのかなってこと。



201 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:50:49 ]
>>200
> for(i=0; i < size; i++)だと分かるんだけど、
> 逆でも良いのかなってこと。

逆のほうが簡潔に書けるって話だな
デバッガで追っかけるとわかる

for(i=0; i < size; i++)で書いてみ
最終的に行き着くのが196になる

202 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:59:46 ]
なんで196に行くのかが全然わからないや。

203 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:32:48 ]
>>196
出来ました!
ありがとうございます
すごいですね

でも、randを使っているから同じ数字が入りそうなんですけど
なんで同じ数字が入らないんだろう?

204 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:38:04 ]
ああ、iだからrand減って行くんですね
分かりました
i=size-1と(i + 1)がまだ分かりませんが
なんとか分かるように頑張ります
ありがとうございます

205 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 22:40:21 ]
私の知能じゃ10年かかっても思いつきませんでした
ありがとうございますm(_;)m

206 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 23:35:10 ]
まず、全体の中から1個選んで一番後ろに入れる。
次に、残ったものから1個選んで後ろから二番目に入れる。
これを残り0個になるまで繰り返す。

簡単だろ?

207 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:30:49 ]
規則性はあるけど、乱数発生器をiで割っているのがいいよね

208 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:31:24 ]
要するに松田優作ってことだ

209 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 01:06:18 ]
>>201
>>156

210 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:17:51 ]
>>206
なるほど



211 名前:デフォルトの名無しさん mailto:sage [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] その他の制限: なし



212 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:10:44 ]
プリントキューの仕様が不明だな。

213 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:12:10 ]
vaioも不明

214 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:17:14 ]
頭が弱いと生きるの大変そうだね

215 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:17:56 ]
ちょww vaio?wwww

216 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:19:25 ]
失礼しましたvaioじゃなくvoidでした。
キューを利用して、プリンタのプリントキューを再現したプログラム(以下に要点を記載)を作成しなさい。
"1”を入力するとキューにデータが追加され"2"を入力するとキューからデータが取り出される
キューが満杯になったり、空になったりした際はその旨をメッセージで表示する。
また、以下の関数を作成し、使用しなさい。
void enqueue(int val)キューにデータを追加する
void dequeue() キューからデータを取り出す
void queue_print()キュー全内容を表示する

217 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:41:08 ]
学校の課題でどうしてもできないC言語があるのですかどなたか手伝ってください。
スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
お願いします。


218 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 17:42:22 ]
>>217
>>1

219 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:05:23 ]
[1] 授業単元: データ構造アルゴリズム
[2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。
[3] 環境
 [3.1] OS: (Linux/)
 [3.2] コンパイラ名とバージョン: (わかりません)
 [3.3] 言語: (C)
[4] 期限: [無期限]
[5] その他の制限: なし


220 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 18:56:32 ]
[1] 授業単元: データ構造アルゴリズム
[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [3/16]
[5] その他の制限: なし



221 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:03:19 ]
>>211
勝手に色々想像した。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8974.txt


222 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:08:53 ]
>>220 osはunixでした。

223 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 19:11:10 ]
>>219 私もosはunixでした。




224 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:01:14 ]
>>221
dequeue()の戻り値もvaioだぞw

225 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:14:08 ]
>>219
#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]);
}

226 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:19:18 ]
>>225ありがとうございます。


227 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:28:39 ]
osによってプログラムの違いってあるんですか?


228 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:56:28 ]
 for(i=0;i<N;++i)scanf("%d",a+i);
 for(i=0;i<N;++i)printf("%d ",a[i]);

なんか気持ち悪いな

229 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 20:57:42 ]
>>228
意図が読めないなんてピュアな方ですねw

230 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:09:19 ]
>>220 終了はCtrl+Z
#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]);
 }
}



231 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:12:19 ]
>>230dクス

232 名前:230 mailto:sage [2009/03/14(土) 21:13:38 ]
やべバグあるわ。今直す

233 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:17:42 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
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] その他の制限: ありません

よろしくお願いします

234 名前:230 mailto:sage [2009/03/14(土) 21:18:22 ]
>>220 少し短くなったかな
#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));
  }
}

235 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:24:11 ]
>>234さんたびたびdクスです。

236 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:27:49 ]
>>233
void PrintTreeRev(BinNode *p){
if (p != NULL) {
PrintTree(p->right);
PrintData(p->data);
PrintTree(p->left);
}
}
を追加してメニューから呼ぶようにしろ

237 名前:236 mailto:sage [2009/03/14(土) 21:28:40 ]
おーう、中のPrintTreeもPrintTreeRevだ
逝ってくる

238 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:33:53 ]
>>227
微妙に質問が質問として成立してないんじゃね?
OS自体がプログラムだから、プログラムとして違いがあるし、
OSの機能を使うプログラムの場合も、OSが違うからプログラムとして違いがある。

>>234
いい感じ
でも、"%98s"じゃなく、"%98[^\n]"じゃないとダメぽ


239 名前:234 mailto:sage [2009/03/14(土) 21:44:06 ]
>>238
すまん。なぜダメなのか教えてくれないか。
何が入力されたときにまずい?

240 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:48:53 ]
>>239
すんません。
勘違いしてました。
scanf一回で、式を全部持ってくるのかと思ってました。。。



241 名前:234 mailto:sage [2009/03/14(土) 21:51:32 ]
>>240おk。

242 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:12:01 ]
>>237
出来ました!ありがとうございます!

243 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:54:57 ]
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):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] その他の制限:なし

お願いします

244 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:23:05 ]
>>243
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8977.txt

245 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:37:13 ]
あるある

246 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:19:15 ]
osの違いでC言語に違いが出てくることってあるんですか?

247 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:19:53 ]
>>244
ありがとうございます

248 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:49:26 ]
[1] 授業単元: データ構造アルゴリズム
[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] その他の制限: なし
よろしくお願いします。

249 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:08:17 ]
>>248

>>220>>234を見ろ。
なんというか、まあ、お前らのところ本当にどうしようもないのしかいないんだな

250 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:18:35 ]
>>249 問題が同じでも細かいところが違うんですよ。




251 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:24:17 ]
確かにOSが違うな

252 名前:249 mailto:sage [2009/03/15(日) 02:51:34 ]
>>250
すまん、その細かいところってどこだ?

>>251
>>222見る限りOSも同じだが。


253 名前:デフォルトの名無しさん [2009/03/15(日) 03:22:19 ]
すみません、C初心者で、今課題をやってるのですが、入門書見ながらでもさっぱりです。
よろしくおねがいします。。

↓↓↓↓↓
以下のプログラムは、入力された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:}

254 名前:>>253 mailto:sage [2009/03/15(日) 03:34:52 ]
#include <stdio.h>
int 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;
}

255 名前:デフォルトの名無しさん [2009/03/15(日) 03:41:45 ]
>>254
すばやいご回答ありがとうございました。
私は問題の意味を勘違いしていたみたいでした。
自分一人だったら白紙で出すところでした。

本当にありがとうございました


256 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 03:52:02 ]
OSがunixって幅が広すぎるよな。

257 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 04:01:21 ]
[1] 授業単元: データ構造アルゴリズム
[2] 問題文: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] その他の制限:なし

258 名前:>>253 [2009/03/15(日) 04:18:12 ]
>>254さま
すみません、
今読んでいて疑問に思ったのですが、
6行目の
nt=10000;
とはどういう意味なのでしょう?
簡単に解説をしてくださると助かります

259 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 04:50:50 ]
>>252 問題はいっしょだが条件が追加されてる。

260 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 05:09:36 ]
>>259
どんな条件?

逆ポーランド電卓の説明が追加されているだけにしか見えんが?



261 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 09:48:42 ]
>>260
ようわからんが実行結果がちがったんじゃねーの?たぶん同じやつが書き込んでるとおもわれる。

262 名前:>>253 mailto:sage [2009/03/15(日) 09:58:05 ]
ntは引かれる数。10000は一万。

263 名前:デフォルトの名無しさん [2009/03/15(日) 13:42:22 ]
>>253
#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);
}

264 名前:デフォルトの名無しさん [2009/03/15(日) 13:45:44 ]
このスレ、己の描いた独自プログラムと簡単な問題文しか出さない人が多いけど
独自プログラムなんて出すよりも
詳しい問題文やどういったアルゴリズムにしようとしてるか描いてくるほうがありがたい
というのもプログラムなんざ千差万別だから、そんなもの提示されても
俺のプログラムと描き方の雰囲気が少しでも違ってたらいちいち面倒なことになる

265 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 14:12:06 ]
>>264
宿題スレに何を求めているの?

266 名前:デフォルトの名無しさん [2009/03/15(日) 15:55:22 ]
この世に存在するソフトウェアのソースが公開されているものなんて
ほんのごく一部だぞ?他人の猿真似でどうにかなるもんでもなかろう
定石なんて、書店に行けばいくらでも見つかるぞ

267 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:55:41 ]
osの違いでC言語に違いが出てくることってあるんですか?


268 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:56:24 ]
>>267
環境依存に関わるライブラリではあり得る。

269 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:16:48 ]
>>267
Cの規格上、差異を認めている部分(処理系定義)では起こりうる。
もちろんOSの値が以外の原因で起こることもあるけど。

型の大きさとか表現方法とか。

270 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:24:29 ]
>>264
所詮、ここはC系で一番バカな質問を受け付ける/受け流すためのハコだからな。
問題文の読み方も分からないって手合いが多数だし、「ここまで書きました」は大概読まないほうがいい。
動かないコードを見て、何のツモリか当て推量するのは不毛だしな。

・・・動いているコードでさえ、何のツモリ(仕様)かなんて、推量はあてにならないしな。




271 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:57:16 ]
>>248 parseあんま自信無いw
#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());
}

272 名前:271 mailto:sage [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());
}

273 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:03:04 ]
getchar()使うヤツって……

274 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:03:50 ]
いちいち言うくせに、指摘や適切なものを提示しないヤツって・・・口先だけのインポ野郎だなw

275 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:07:58 ]
>>272さんありがとうございます。


276 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:09:15 ]
こんなスレで偉そうにしているヤツって……

277 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:09:51 ]
>>273
普通につかうガナ

278 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:18:36 ]
>>270
初心者のコード見てこき下ろしたり、黒歴史を思い返したりするのもまた一興じゃないか。

279 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 20:03:56 ]
お願いします

[1] 授業単元: データ構造アルゴリズム
[2] 問題文: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] その他の制限:なし

280 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 21:55:22 ]
非再帰って自前でスタック使ったら、再帰アルゴリズムを
言語の再帰使わずに実装しているだけの様な。



281 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 22:37:11 ]
クソ課題だなあ

282 名前:自分が解けもしないくせに口だけは大きい馬鹿 [2009/03/15(日) 22:40:26 ]
281 名前:デフォルトの名無しさん 投稿日:2009/03/15(日) 22:37:11
クソ課題だなあ

283 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 22:55:57 ]
分割統治法を非再帰でやらせるとか
クソ課題以外の何者でもないだろ

284 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:02:32 ]
こんな感じかな?
void 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;
}
}

285 名前:自分が解けもしないくせに口だけは大きい馬鹿 [2009/03/15(日) 23:14:59 ]
283 名前:デフォルトの名無しさん 投稿日:2009/03/15(日) 22:55:57
分割統治法を非再帰でやらせるとか
クソ課題以外の何者でもないだろ

286 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:15:35 ]
オレが解けないのは課題が悪いからだ!

287 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:18:06 ]
>>281>>283
スレ違い。公開オナヌーは他所でどぞ。

288 名前:デフォルトの名無しさん [2009/03/15(日) 23:26:07 ]
口先だけのヤツは、いつも自分がそれに対してどう思うか?
という主観しか述べず、問題があるなら問題点を指摘するなり
客観性のある見解を示さず、自分が言ったことを反対されると
ファビョるだけの井の中の蛙なんだなぁ

289 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:15:42 ]
>>284さんありがとうございますm(_;)m

290 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:51:08 ]
>>289
間違っる。
最初のleftとrightを記憶し、
左側を絞り込み、記憶しておいたleftとrightで右側を絞り込むように
2回に分けないといけないみたい。



291 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:04:18 ]
>>283
再帰を反復に変換するのは普通の課題だろ。

292 名前:デフォルトの名無しさん [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;


これはあってますか?

293 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:19:08 ]
>>292
間違ってます。

294 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:25:59 ]
修正?
void 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;
}
}

295 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:16:47 ]
それじゃ無理だろ

296 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:09:37 ]
修正の修正?
void 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;
}
}

297 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:16:12 ]
>>294
>>295
>>296
重ね重ねありがとうございます

298 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:28:20 ]
>>296
無駄が多い

299 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:55:23 ]
>>298
模範解答をお願いします。

300 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:27:00 ]
クイックソート 非再帰でググればいくらでも転がってるだろ



301 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:35:25 ]
>>292
a,bに値が格納される前にcを計算しているので間違い。

302 名前:デフォルトの名無しさん [2009/03/16(月) 12:03:26 ]
>>298
指摘するくらいなら、自分がそれに応じたコードを示せよ?
ここんとこ、口先だけの役立たずw

303 名前:デフォルトの名無しさん [2009/03/16(月) 16:54:19 ]
>>301
ありがとうございます。

304 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:16:54 ]
[1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):要素数10個の整列配列を用意します。
要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。
[3] 環境
 [3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: qsortを使わないでお願いします。


305 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:24:06 ]
[1] 授業単元:データ構造アルゴリズム
[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] その他の制限:

306 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:26:47 ]
[1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):文字列から任意の文字を探索するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
よろしくおねがいします。

307 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:34:56 ]
>>304
>>219,>>225

308 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:41:24 ]
>>307
その問題はqsortを使っているので…

309 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:01:55 ]
>>306
#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;
}

310 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:25:04 ]
>>309さんありがとうございます。




311 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:26:40 ]
>>304
#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;
}

312 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:29:24 ]
>>309
strchr() に準じてだろうけど
const char* で受けた一部を char* で戻すのって微妙に気持ち悪いよね

313 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:34:35 ]
>>311
dクスです。


314 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:38:22 ]
>>308
>>279


315 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:56:12 ]
[1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク): "string"の先頭の三文字を入力した文字の三文字と比較して、
一致すれば0を一致しなければ1を出力するプログラムを作成しなさい。また、"XXXX"を入力すると終了するようにしなさい。

[3] 環境
 [3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
よろしくおねがいします

316 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:04:01 ]
[1] 授業単元:データ構造アルゴリズム
[2] 問題文 ある文の中に指定した語が見つかるとその場所を表示するプログラムをBM法を用いて作成しなさい。
[3] 環境
 [3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
おねがいします

317 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:13:43 ]
どんだけ宿題溜め込んでるんだよw

318 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:45:41 ]
>>315
#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;}

319 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:54:58 ]
>>318
短いっすね。ありがとうございます。


320 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:01:32 ]
>>318
これで出したらやり直しくらいそうだがな



321 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:16:21 ]
>>318
教員もこんな簡単な問題に対して,こんな大人げない解答出されたら疑問に思うわなw

322 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:54:37 ]
>>318
お前のような漢になりたい

323 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:17:48 ]
>>320-322
むしゃくしゃしてやった。反省はしていない。

>>316
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt

324 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:44:34 ]
>>323
これは信用していいんですよね?

325 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:47:51 ]
>>311
だからqsortは使っちゃだめ!

326 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:05:18 ]
>>315 ./a <ソース.c
#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;
}

327 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:19:52 ]
>>326
./a<ソース.cが意味不明なんですけど


328 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:26:25 ]
>>326
>>318の後にこれを貼る勇気に乾杯
とりあえずgetsはやめろ

329 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:36:55 ]
[1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、シェルソートを用いて昇順にソートするプログラムを作成しなさい。
今回は、比較幅を1,2,4,8…のような2のべき乗とする。
[3] 環境
 [3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C)
[4] 期限: ([21年3月16日まで] )
[5] その他の制限: なし
よろしくおねがいします

330 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:42:12 ]
2021年か、結構先だな



331 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:11:38 ]
>>315 ./a <ソース gets使ってしまった。
#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;
}

332 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:07:12 ]
>>329
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8982.txt

333 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:10:26 ]
>>329
比較幅って言葉の意味がわかんね。

334 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:17:02 ]
>>332さんありがとうございます。


335 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:54:07 ]
[1] 授業単元:データ構造アルゴリズム
[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] その他の制限:


336 名前:335 mailto:sage [2009/03/17(火) 00:58:08 ]
お願いします。この問題とかないと単位がやばいです。

337 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:01:11 ]
>>335
入力の形式が分からん。勝手に決めていいのか?

338 名前:335 mailto:sage [2009/03/17(火) 01:05:26 ]
いいです。レスください!

339 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:32:54 ]
>>335
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8983.txt

340 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 01:44:02 ]
>>339
修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8985.txt



341 名前:335 mailto:sage [2009/03/17(火) 06:18:57 ]
>>340ありがとうございます。


342 名前:335 mailto:sage [2009/03/17(火) 07:09:00 ]
すいません!ヘッダとしてが必要という条件が出ているのを忘れてました。どなたか
<stdlib.h>を使った>>335をレスお願いします!

343 名前:335 mailto:sage [2009/03/17(火) 07:10:59 ]
すいません訂正ですヘッダとして<stdlib.h>が必要という条件が出ているのを忘れてました。どなたか
<stdlib.h>を使った>>335をレスお願いします!


344 名前:335 mailto:sage [2009/03/17(火) 07:16:32 ]
>>340さんせっかくレスくれたのに申し訳ありません。

345 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:39:30 ]
>>1
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。

346 名前:335 mailto:sage [2009/03/17(火) 07:45:25 ]
そこをなんとか!せっぱつまってるんです。

347 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:48:51 ]
340の
void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void*));
の代わりに
#include <stdlib.h>
にすりゃいいだけだろw

348 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 07:51:12 ]
>>346
qsort()のプロトタイプ宣言を#include<stdlib.h>に置き換える

349 名前:335 mailto:sage [2009/03/17(火) 08:00:10 ]
>>347さん>>348さんありがとうございます。


350 名前:デフォルトの名無しさん [2009/03/17(火) 12:41:52 ]
論より証拠、言葉よりソースコード、日本語よりプログラム言語
分かったか?最近、口先だけの、新入りは?



351 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:02:20 ]
>>350
ソースでくれ

352 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:27:20 ]
>>351
ttp://www.bulldog.co.jp/products/home/

353 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:28:06 ]
いまどきそれかよw

354 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:34:08 ]
>>353
ttp://www.otafuku.co.jp/

355 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 13:48:04 ]
腹減るじゃんか。

356 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 15:06:26 ]
やっぱり今時はおたふくだよねー

357 名前:デフォルトの名無しさん mailto:sage [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] その他の制限: (なし)


358 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:31:22 ]
このプログラム./a.outしても%がでてしまうのですがどこを直せばいいですか?
ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt

359 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:45:20 ]
>>357張り付いてリロードリロード大変でしょ?
ネタ投下したらしばらく
本読むなりバイトするなり有意義に時間使いなよ

360 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:50:20 ]
 323 :デフォルトの名無しさん :2009/03/16(月) 21:17:48
 >>320-322
 むしゃくしゃしてやった。反省はしていない。

 >>316
 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
./a std <8981.c     <-- これでOK



361 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 17:53:11 ]
>>360
いやそれじゃだめなんすよ…

362 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:06:35 ]
ttp://tokyo-ct.net/usr/kosaka/for_students/jissen1/akiyojissen1/kougi17.html
BM法

363 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:10:50 ]
>>362 嫌そうじゃないだろう。
(実行例)
% ./a.out <8981.c
入力した文字列は:#include <stdio.h>
検索する文字列を入力してください:std
10 文字目で一致しました。(一致する文字列が見つかりませんでした。)
% でOK?

364 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:15:51 ]
>>357
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8986.c

365 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:17:52 ]
え?./a.out<8981.cって入力するんですか?


366 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:19:49 ]
>>364さん。ありがとうございます。

367 名前:360 mailto:sage [2009/03/17(火) 18:22:37 ]
>>361 以下のように入力すると答えが出る。
% ./a.ou std <8981.c
10
%

368 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:34:47 ]
>>357 364に先越されたorz...
#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));
}


369 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:38:53 ]
>>368さんありがとうございます。


370 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:39:00 ]
くせぇくせぇ、後だし麻呂の臭いがぷんぷんすんぜ



371 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 18:40:48 ]
こりゃ〜生粋のクソースだ、クソースを消毒だ〜

372 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 19:31:03 ]
>>357 オリジナルは>>368さんのソース。
#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);
}

373 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:19:37 ]
ネタ切れー?

374 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:35:51 ]
mallocしたあとfreeしなくていいのか?

375 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:37:47 ]
課題だから書かないとダメってぐらいのレベルじゃね?

376 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:39:26 ]
いまどきのハードウェアでfreeしなくちゃならんヤツなんて皆無だろ
freeとか気取ってやってるソース見たらデスクトップ破りたくなる

377 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 21:41:12 ]
>>376
好きなだけ破ってろよマヌケ

378 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:04:22 ]
>>377


379 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 23:50:49 ]
>>357 >>374free追加したぞ。>>376のデスクトップ破れ。
#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);
}

380 名前:今年度最高峰のレス [2009/03/18(水) 03:28:13 ]
>>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376

>>376 >>376 >>376 >>376 >>376 >>376 >>376 >>376




381 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:35:35 ]
ハードがどうとか言う前に、例えmainの最後だろうと、メモリの動的確保をしたら
それに対してfreeはセットで使うのが望ましいのだが

382 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:49:28 ]
struct P tいらんかった。
 for(;c=h.x;h=*c,free(c))printf("%s /%d\n",c->n,c->a);

383 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 12:58:14 ]
たまに、プログラムが異常終了して、跡が残ることはある。
自分は大学で、ネットワーク関連の管理に携わったことがあるが、
ユーザがログオフしても、まだログインしたまま残ることもあった。
そう、コンピュータやプログラムには完璧なんて無いんだよ。
だから、こうやって今も、昔から色々と改善がされているんだろ?
その改善の経緯をもとに、こういったものも作られていくんだよ。
ただ単に、電子計算機に数値を与えて、処理をすれば良いわけじゃない、
システムを運営するのは。

384 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:01:14 ]
どこを縦読み?

385 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:06:27 ]
ネットゲームでクライアントを終了してもキャラがサーバーに残って
再ログインしようとしても入れませんでしたw

386 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:19:57 ]
大学でUNIXを使っていたが、まぁそれは管理者が今も普通に使っている
OSの基本。学生がワークステーションからログインして、終了するときに
ログオフの手続きをせずに、接続、作業で使っているプログラムを
Windowsのウィンドウの右上にあるクローズボックスで閉じてしまう人もいる。
それ以前に、コンピュータの電源スイッチを押して起動は出来るのだが
終了する際に、OSの終了手続きを取らずに電源を切ってしまった人もいた。
それにおけるトラブルも体験したさ。そういった、管理者側の立場になれば、
エンドユーザの身勝手さや、それを阻止する手立てや仕組みを作るのも、
プログラマーには必要なのさ、ワトソン君。

387 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 13:51:52 ]
また、OSも完璧ではない。プログラムを作った側の措置が不十分だったのか、
あるいはハードウェアに問題があったのか?それに応じてデバッグされることもある。
ただ、それも本当は、プログラマーの思い違いにより、作り直せば解決するものもあるが、
巨大なプロジェクトでいくら個別にモジュールを改良できるとしても、根幹、組み合わせ方に
問題があれば、やり直すしかない。ただ、この世には既にある定石、常套手段を用いてやれば
特に余計なことをしなければ、問題は起きないもんだよ。
しかし、人間の行動までは、正直、予期できない。今もなお、過去から続く争い。
裁判、解決のための判例作り。そして、判例に基づいて、今後は処理される人間同士の
トラブル。PCのトラブルなんて、電子計算機をちょちょいと弄れば済むことが多く、
楽なものですね、ポワロ殿。

388 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:02:47 ]
>>386,387___
  / || ̄ ̄||   ∧∧
  |  ||__||  (   )
  | ̄ ̄\三⊂/ ̄ ̄ ̄/
  |    | ( ./     /

   ___    ゴキッ
  / || ̄ ̄|| <⌒ヽ ))
  |  ||__|| <  丿
  | ̄ ̄\三⊂/ ̄ ̄ ̄/
  |    | ( ./     /

   ___
  / || ̄ ̄||   ∧∧
  |  ||__||  (   )
  | ̄ ̄\三⊂/ ̄ ̄ ̄/
  |    | ( ./     /

   ___
  / || ̄ ̄||
  |  ||__||        ミ ゴトッ
  | ̄ ̄\三⊂/ ̄ ̄ ̄/ミ ,'⌒>
  |    | ( ./     /  l、_>

389 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 14:17:40 ]
それで、結局、例え初歩的だろうとプログラムを作る以上は、何かしら
そういったシステムに関わる部分の知識も必要になるわけだろ?
第一、APIを使っているだけでも、既に出来上がったその仕組みを知ることになるし。
麻ー呂っくの後に、振りーを忘れないで賜う。

390 名前:372 mailto:sage [2009/03/18(水) 15:41:13 ]
実体のコピーを省く。
P *t;
for( c=h.x; c!=0; c=t) printf("\n%s /%d", c->n, c->a), free((t=c->x,c));



391 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 15:49:31 ]
病気が進行してるw

392 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:02:20 ]
聞き方が悪いかもしれませんが

hairetsu[0] = 10
hairetsu[1] = 5
hairetsu[2] = 13
...
というようなものにたいして
rank[0] = 1
rank[1] = 0
rank[2] = 2
...
というような感じにしてくれる関数はありますか?

それとも,自分で作らないとないですか?

393 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:11:30 ]
>>392
無いです
multimap もしくは map
にいれてイテレータで取り出せばおk


394 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:14:41 ]
何がしたいのか訳わからん。エスパー検定?

rankと聞くと行列の階数を思い出す。
なんか、肝心な所を省略してません?

395 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:15:50 ]
hairetsuのそれぞれの要素の大小関係をrankに0から入れていると?
並び替えの応用でやってみ。

396 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:25:42 ]
>>392
#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の方をソートしても可

397 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:42:36 ]
>>325

398 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 17:59:18 ]
>>397
どした?

399 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:15:15 ]
>>398 やらないか?

400 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 19:19:17 ]
>>396 ん?んんんっ?



401 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:04:01 ]
struct{int hairetu; int rank;} data[10];
rankには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;
}

402 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 21:18:19 ]
stdio.h
同じ値でもrankの中の値が違う

403 名前:392 mailto:sage [2009/03/18(水) 23:24:12 ]
適当な聞き方をしてしまってすみません。

ただ配列の値がでかい順や小さい順で順位をつけられないかなと思ったので。

ありがとうございました。

404 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 23:37:12 ]
[1] 授業単元:プログラミング実習
[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] その他の制限: (なし)
よろしくおねがいします。



405 名前:デフォルトの名無しさん [2009/03/18(水) 23:50:24 ]
[1] 授業単元: アルゴリズム
[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] その他の制限: ライブラリ関数はサンプル以外使用しない。

406 名前:デフォルトの名無しさん [2009/03/18(水) 23:51:43 ]
>>405
サンプルはこれです。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8989.txt

407 名前:デフォルトの名無しさん mailto:sage [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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)


408 名前:407 mailto:sage [2009/03/19(木) 00:04:18 ]
すいません環境等書き忘れていましたosはUNIX、コンパイラはgcc期限無期限その他制限なしでお願いします。

409 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 00:56:43 ]
>>399何を?

410 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 01:56:56 ]
>>392 >>396への追加。
#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;
}



411 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 04:17:31 ]
>>410
人のコードに無駄なもの付け足すなw

for(i=0; i<10; i++) index[rank[i]] = i;

で十分だろうが

412 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 07:01:36 ]
ありがとうございます。それで、2回もソートする必要ないですね。
やってみます。

413 名前:407 mailto:sage [2009/03/19(木) 07:59:06 ]
すみません言語c言語で期限は今日のお昼までにお願いします!

414 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 08:42:42 ]
>>407
#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;
}

415 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 09:21:23 ]
#include <stdio.h>
#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

416 名前:407 mailto:sage [2009/03/19(木) 16:23:45 ]
>>415さんありがとうございます

417 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 01:16:32 ]
>>405
こうか?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8991.txt

サンプルにファイルを読む関数がないんだが、「読み込みなさい」とか「調べなさい」は手作業?
探索や削除が間違っとる気がして変えたが、間違ってなかったらマクロを両方とも100に戻しといてくれ。

418 名前:417 mailto:sage [2009/03/20(金) 01:48:36 ]
ごめん。寝付けん暇つぶしでやっとったら、期限見落としとったorz

419 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 17:59:26 ]
ネタ投下キボン

420 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 19:57:17 ]
問題出す方も大変だ。
[1] 授業単元:
[2] 問題文(含コード&リンク): 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回,さいころを投げることになります.
このことは,賭をしても儲からない,ことを意味していますね.
このことを確かめるプログラムを作成しなさい.



421 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:02:31 ]
入力した文字に対応するモールス信号を出力するプログラム、お願いします

422 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:12:20 ]
>>1

423 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:14:19 ]
>>421テンプレ嫁

424 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:17:15 ]
読んだけど課題じゃないし書くのめんどくさい

頼んだぜ

425 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:06:55 ]
>>424
・・・−−−・・・

426 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:39:28 ]
>このことは,賭をしても儲からない,ことを意味していますね.
ダウト。一部の人間が損をし(破産し)、一部の人間が儲かることを意味している。

427 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:46:19 ]
分散と試行回数による

428 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:51:43 ]
問題の問題点を指摘するルートに入ってるw

>問題出す方も大変だ。
本人も問題を出すつもりだったのだから,本望かw

429 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:54:33 ]
>また,勝ち負けまでに投げるさいころの回数の平均は,(B-A)×Aとなります.
マジで?

430 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:21:08 ]
[1] 授業単元:C言語
[2] 問題文: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関数以外に自作の関数を利用する

どなたかよろしくお願いします。




431 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:39:02 ]
>>430
最高に間抜けだな

432 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:41:04 ]
前スレにあった気がする

433 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:42:14 ]
スレと時刻的に8992だろ?

434 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 02:57:50 ]
>>430
8992で合ってんなら
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8993.txt

435 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:38:25 ]
>>420
#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;
}

436 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:08:02 ]
>>434
すみません、8992です
ありがとうございました

437 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:29:33 ]
[1] 授業単元:基礎演習
[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

考えれば考えるほどわからなくなっていましました…
良ければよろしくお願いします。

438 名前:437 mailto:sage [2009/03/22(日) 02:38:00 ]
437です。

[4]期限:4月1日12:00
[5]その他制限:特になし

改めてお願いします。

439 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:56:56 ]
>>437
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8994.c

440 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 02:58:58 ]
あ、printfに\n入れるの忘れてた



441 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:05:55 ]
>>437
#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;
}

442 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:06:27 ]
速いなorz

443 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:11:59 ]
i++を二箇所に書くくらいならi=1からはじめればいいのに。

444 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:23:14 ]
begin > endで抜けることを考えてi++2つとしたが、非常に頭悪いことをしてる気がする。

445 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:53:53 ]
こんなプログラムメンテしたくない。というか、プログラミングのセンスないね、チミ。

446 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:54:54 ]
>>445
先生のセンスをこのスレの奴らに見せ付けてやってください!

447 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 09:22:37 ]
>>445
うん、ないよ。でも、趣味でしかないし、1人でのんびりやれればいいから
下手の横好きでもいいかなー。

448 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:03:53 ]
>>445
メンテじゃなくて、先輩社員が作ったプログラムを触る仕事しかさせてもらえないんだろ?

449 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:32:16 ]
>>441
ぱっと見、無限ループの可能性有だな〜
問題10ではOKだけど、脱出条件組み込んだ方が吉
if(begin == end) break;見たいな

450 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:35:24 ]
>>449
へーそーなのかーwww



451 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:44:41 ]
scanfで値読んでるからマイナス入れれば終了するか・・・
>>450サンクス

それより、問題文だとファイルアクセスっぽいがコマンドラインでよいのか?


452 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 12:52:55 ]
何を言ってるのかわからない
>for(i = 0; begin <= end; i++){
で脱出条件とやらは十分だと思うが

453 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:02:46 ]
>>452
いや、外のWhile抜けないでしょそれじゃ。
While抜ける条件が、nのScanf or 値が同じ時のみ。
同値無し && 入力無し時のことを言ってる

454 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:06:44 ]
外のwhile抜けるのになんでbeginとendが出てくるんだよw

455 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:10:30 ]
>>454
441のプログラムを見れば分かると思うが、While(1)で無限ループしてんだぞ?
んで、beginとendで配列範囲を設定して、2文探索をしてる。
同値無し時にbeginとend判定しなくなるから、同値breakがキャンセルされ、あとはScanf()のbreakだけになる。

何を持ってbegin/endで煽るのか分かりかねる。

456 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:12:58 ]
二分探索で見つからなかった場合に終了なんて、問題文のどこを探しても書いてありませんがw

457 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:14:22 ]
終了しないとも書いてないなw

458 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:16:39 ]
もしかして、見つかった場合のbreakで外側のループ抜けるとか思ってないか?

459 名前:デフォルトの名無しさん [2009/03/22(日) 13:18:06 ]
>>417
返事遅くなってすいません。
期限が延びて明日までになりました。

サンプルでは読み込む関数はないので自分で作成せよと本日問題追加されました。


460 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:30:33 ]
>>455
begin/endはプログラムの終了と関係ないからだろ。
見つからなかった場合でも、終了するのはプログラムじゃなくて「探索」だぞ。
>探索の範囲がつきてしまった時に探索
>を終了します。



461 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:32:02 ]
>>453
> While抜ける条件が、nのScanf or 値が同じ時のみ。
値を見つけた時に抜けているのはforだぞ

462 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:32:47 ]
そもそも0を読み込んだら終了なのも理解できてないようだ

463 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:33:38 ]
WhileとかScanfとか書いてるからただのアホだろw

464 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 15:56:15 ]
>>441 さん
>>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;
}

465 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:01:02 ]
n==0のとき0返してどうすんだよw

466 名前:465 mailto:sage [2009/03/22(日) 16:12:54 ]
0はfalse、while(!false);で次のデータ。

467 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 16:42:40 ]
問題は0で終了なのに、また関数呼び出してscanf()失敗してからループ抜けるってのがどうなのかって話

468 名前:466 mailto:sage [2009/03/22(日) 16:48:42 ]
464が俺だ。どうすんだよd どうもしない。

469 名前:464 mailto:sage [2009/03/22(日) 18:28:13 ]
>>464 修正
#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)
}

470 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 18:56:59 ]
気持ち悪いマクロだw



471 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 19:09:48 ]
#define returnVal free(data); return
{returnVal 2;}
のほうがよかったかd

472 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 22:11:35 ]
いやそこじゃないだろw

473 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 02:02:49 ]
BinarySearch() で
nの入力
malloc
free
をやろうとする頭がキモイ


474 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 09:38:05 ]
>>437 負の値と零も検索出来るように。マクロ似のmainも外した。
#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;
}

475 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 09:46:38 ]
いつまでも引っ張るようなもんでもない

476 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:39:26 ]
char*型を引数にとる関数に
std::string型に格納されてる文字列を渡したいんですが、
c_str()の返す型がconst char *であるためうまく渡せません。
(char *)でキャスト変換するとコンパイルは通るのですが安全とはいえないです。
これを安全に渡すための方法があれば教えてください。
strcpyでコピーする方法はwarningが出てしまいます。
環境はVS2005です。

477 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:41:26 ]
>>476
(char *)でキャストで良いと思います。

478 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:43:38 ]
キャストを用いることはプログラマーが結果に関して責任を持つということ。
プログラマーが安全だと判断すればそれで良い。

479 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:50:04 ]
const_cast使えば?

だがスレ違いだ

480 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:51:15 ]
C++なら(char *)じゃなくconst_cast<char *>だろーと議論に資しないことを申し奉りさぶらわんと欲す



481 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:54:18 ]
[1] 授業単元:C言語
[2] 問題文: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] その他の制限:ユーザ定義関数を利用する

よろしくお願い致します。

482 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:11:37 ]
コラッツの問題だw
きっと誰かが剰余演算子を使わず,さらにはアクロバティックに書いてくれると期待w

483 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:16:06 ]
>>481
#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;
}

484 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 22:17:47 ]
>>477-480
本当にありがとう。参考になりました。


485 名前:デフォルトの名無しさん mailto:sage [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);
}

486 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 23:26:57 ]
>>483 さん
#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;
}

487 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:00:33 ]
>>483
ありがとうございました
助かりました

488 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 09:42:53 ]
>>476>>484
おいキャストするな。
c_strを元にコピーすることを薦める次第だ。

489 名前:デフォルトの名無しさん [2009/03/25(水) 20:07:37 ]


490 名前:デフォルトの名無しさん [2009/03/27(金) 04:12:17 ]
初歩的な問題だと思いますが、勉強し始めでわかりません。どうかよろしくお願いします

下記のソースを記述しコンパイルと実行を確認しなさい
/** データ型 */
#include<stdio.h>

void printDataType1();

main(){
printDataType1();
}
/**
* データ型の表示
* 単純に表示
*/
void printDataType1(){
int intData = 10;




491 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 04:21:13 ]
ごめん、難解すぎる

492 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:04:15 ]
printf("dec %d\n", intData);
printf("hex %x\n", intData);
printf("oct %o\n", intData);
}
と、後ろに追加する。コンパイルのしかたは、調べれば分かるので省略する。

493 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:09:41 ]
ソースの書き方とコンパイルの仕方を質問しているんじゃないかとエスパーする
どっちにしてもこれ以上のエスパーは無理だが

494 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 13:20:00 ]
一番下に"}"を付けるだけでいいんじゃね

495 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 15:59:32 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):ファイル出力で二つ以上の関数が同じファイルに続けて出力させるにはどうすればいいですか?
毎回file openさせてやってみたら、途中まで上書きになってしまいました。
[3] 環境
 [3.1] OS:Win xp
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:

496 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:11:04 ]
>>495
二回目はアペンドモード"a"で開くしかないよ
ただしXPならMS-DOSの系統なのでテキストモードだと
EOFが最後に入っているのでこれを1バイト切り詰めてから
アペンドしないといけない

497 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:13:52 ]
「途中まで上書き」と言ってるから、俺はfseekで解決と予測。

498 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:19:26 ]
>>495
ファイルポインタを関数で使いまわす
FILE* fp = fopen("***", "w");
func1(fp);
func2(fp);
fclose(fp);

499 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:25:10 ]
>>498
それあかんよ
FILE構造体にはデータも書き込むので

func1(&fp);
func2(&fp);

としておき

受ける側は

func1(FILE **fp)
func2(FILE **fp)

としないといけない
実際に実験してみればわかる

500 名前:495 mailto:sage [2009/03/27(金) 16:26:59 ]
みなさんありがとうございます。
やってみます。



501 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:40:12 ]
>>499
どういう実験か書いてみそ

502 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:56:08 ]
実験してないし流れも読めないが、
>>499の主張は間違っている気がする。
だって、FILE* fpなんでしょ?
> FILE構造体にはデータも書き込むので
FILEへのポインタの値を変えたりするつもりは無いはず。

503 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:00:09 ]
C++のifstreamとかofstreamのようなオブジェクトなら
リファレンス渡しまたはアドレス渡しをしなければいけないのは
わかるが、CのFILE*ってポインタなんだからそのまま渡していいと思う

504 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:14:38 ]
>>499 への容赦ない怒涛のツッコミにワロタww
本人ではないが、func1() や func2() の中で fopen する場合と
勘違いしたんじゃないか、とフォローしてみる。

505 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:53:06 ]
void foo(FILE *fp) {
fputs("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

506 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:31:46 ]
>>504
>>498にfopenも書いてあるからその勘違いは無いんじゃね?

507 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:57:18 ]
499> それあかんよ
あかんって何が?

508 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 02:35:51 ]
992 名前:デフォルトの名無しさん 投稿日:2009/03/26(木) 23:10:42
世界的には日本語を使う人よりも英語を使う人の方が多い

前スレのこいつが必死なんだろ。日本語よりと比較したら間違いでもないんだが。

509 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 10:52:35 ]
誤爆としてもワロた

510 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:28:32 ]
>>498
そらあかんわ
FILE *fp = fopen("***", "w");

FILE* fp, fl; は同じように見えるが2つの変数は型が違う。
FILE *fp, *fl; と書く。Javaではない。



511 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:33:19 ]
だれか>>501を翻訳してくれ

512 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 13:38:41 ]
どういう実験か書いてみてください

513 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 14:01:25 ]
ところでこのゴミ、
どこに捨てたらいい?
   ∧_∧
  (´∀`)
  /⌒  丶
 / /   \_M
( /|  |\__E)
 \/  | / \
  (  イ / ウワァァン丶
  | /|ハ( `Д)ノ|
  | / / 丶(>>510) ノ
  ( 丿丿   ̄ ̄ ̄
  |||
  |||
  / ト、\
 /_ノ  ̄

514 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 17:50:42 ]
>>513
pc12.2ch.net/test/read.cgi/tech/1179394713/
pc12.2ch.net/test/read.cgi/tech/1179424842/

515 名前:デフォルトの名無しさん [2009/03/29(日) 15:19:16 ]
初めまして。
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlに記載されている2006年の本選問題の
問7のヘビの問題と問8のバス路線の問題をお願いします。
お手数だと思いますが、よろしくお願いします。
単元;c言語
期限なんですがなるべく早めによろしくお願いいたします。
環境;os xp
コンパイル名;gcc



516 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:40:40 ]
>>515
C/C++の宿題片付けます 122代目
pc11.2ch.net/test/read.cgi/tech/1232029287/449

ヘビもあったな

517 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:58:17 ]
ヘビのは正規表現使えたらすごく楽なんだけどな…。

518 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 16:09:07 ]
問8
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8863.txt
どこが仕様を満たしてない!

519 名前:デフォルトの名無しさん [2009/03/29(日) 16:19:50 ]
いろいろ回答ありがとうございます。
問題文通りでお願いします。




520 名前:デフォルトの名無しさん [2009/03/29(日) 16:36:39 ]
すいません。追加なんですけど、2007年度の本選の問9、12をよろしくお願いします。
問題通りの出力、入力でお願いします。
後、先程の問題の回答も引き続きお願いします。
もし、何か質問で至らない点があったらこちらですぐに回答します。



521 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:19:24 ]
問題文どおりか、ありがと、蛇の問題は考えておく。ところで、問題のタイトルは
問題9 円に内接する多角形の面積
問題12 ブラックジャック・ゲーム

522 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 18:08:07 ]
>>520
#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;
}

523 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 18:37:10 ]
>>515 ヘビ
#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;
}

524 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:21:57 ]
>>520 あってるかどうか・・・
//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;
}

525 名前:521 mailto:sage [2009/03/29(日) 19:40:11 ]
>>523
短いコード!しかし、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');
}

526 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:43:02 ]
あみだくじを自動的に生成するプログラムをお願いします。

参加者の人数と当たりの数を入力し、当たり部分には◎ハズレには×
となるようにお願いします。

527 名前:デフォルトの名無しさん [2009/03/29(日) 19:43:46 ]
本当に助かります。ありがとうございます
申し訳ないですけど2007年本選の6と7、2007年予選10番もお願いします

528 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:54:30 ]
ってかもう全部の問題をお願いしますね

529 名前:デフォルトの名無しさん [2009/03/29(日) 20:02:14 ]
527番の者ですが
528番の回答は自分の発言ではありません

530 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:10:49 ]
>>529
言ってることは同じ



531 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:13:45 ]
後からちょこちょこ追加されるよりは>>528のほうがマシ

532 名前:デフォルトの名無しさん [2009/03/29(日) 20:23:27 ]
すいませんでした。しかし期限が詰まっているもので527番の回答なんですが、引き続き回答のほう
よろしくお願いします。今回はちょこちょこと付け加えてしまい迷惑をかけました。

533 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:28:01 ]
>>532
過去ログくらい読めカス

534 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:29:02 ]
解き方問題文中で丁寧に説明してるのになんで解けないのか理解できない

535 名前:527 mailto:sage [2009/03/29(日) 20:30:04 ]
お前らガタガタ抜かさんととっとと答えんかい!!

536 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:38:01 ]
527さん、偽者が現れ始めているのでfusianasanやった方がいいですよ

537 名前:IP address mailto:sage [2009/03/29(日) 20:40:22 ]
問題10 マトリョーシカ
問題6 有料道路料金
問題7 おはじき取り

>>蛇の模様
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9003.txt

538 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 21:21:48 ]
>>524
theta=3.14*in/180.0;
sum+=0.5*sin(theta);

じゃないかな?


539 名前:IP address mailto:sage [2009/03/29(日) 21:42:56 ]
#include <stdio.h>
#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;
}

540 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:07:53 ]
>>527 2007年本選の6 有料道路料金
#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;
}



541 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:25:36 ]
>>527 2007年本選の7 おはじき取り
#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;
}

542 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:43:14 ]
int main(void)
{ return 0; }

543 名前:デフォルトの名無しさん [2009/03/29(日) 23:01:52 ]
回答ありがとうございました。

544 名前:IP address mailto:sage [2009/03/30(月) 00:05:18 ]
>>539 問題文の読み違いがあったので、修正します。
printf("あたりの本数を入力:", 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) {

545 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 19:55:03 ]
>>526
#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;
}

546 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:40:37 ]
[1] 授業単元:C言語
[2] 問題文: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]その他の制限:ユーザ定義関数を利用する

どなたかよろしくお願いします。

547 名前:デフォルトの名無しさん [2009/03/30(月) 21:47:58 ]
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlにある2008年本選の
問1の三目並べの答えお願いします。
c言語 コンパイル gcc 

548 名前:デフォルトの名無しさん [2009/03/30(月) 21:49:07 ]
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlにある2008年本選の
問1の三目並べの答えお願いします。
c言語 コンパイル gcc 

549 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:00:29 ]
#include <stdio.h>
double 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);
  }
}

550 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 22:29:36 ]
>>547
#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;
    }
  }
}



551 名前:デフォルトの名無しさん [2009/03/30(月) 22:53:30 ]
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlに記載されている
2007年の本選の問12 ブラックジャックの問題よろしくお願いします。
あと、問題を解く上でどのようなアルゴリズム、データを利用したか。と何の
処理を関数としたのかを付け加えてお手数だと思いますがよろしくお願いします。
OS xp
C言語
コンパイル gcc


552 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 23:58:22 ]
春休みに宿題があるわけが無いとはいえ、
大学生ならともかく、高校生の問題を解くのは飽きた・・・

553 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:58:19 ]
>>552
マトリョーシカの問題が結構難しいよ

554 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:38:05 ]
>>551
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9006.c
説明ぐらい自分で見て考えろ。

555 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:09:51 ]
どなたか>>546をお願いできませんか?

556 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:20:48 ]
>>546

557 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 11:34:46 ]
#include <stdio.h>
#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;
}

558 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 12:18:18 ]
>>546
#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;
}

559 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:29:51 ]
>>558
>受付番号の小さい方を出力することとします。
忘れてた

560 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:39:46 ]
>>559

>>1
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。

そのくらいの修正は自分でやればいいとおもうんだな



561 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:03:22 ]
>>560
いや、問題文に書かれている文言で、
>>558は仕様を満たしてないってこと。

562 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:06:28 ]
>>561
ああ、失敬失敬
早計だった

563 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:58:12 ]
>>553
h優先とr優先の二系統で組み入れられる人形の多い方をとればいいよ。

564 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:31:37 ]
いちおー>>549>>546の回答なんやけどな。アンカ付け忘れたけど。
見て分からんのは、本人、問題読んでないんちゃうやろか?
読んでたらBMIって関数ある時点で判断できるやろ。すぐ下やし。

565 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:53:11 ]
>>564
C/C++系のスレで一番バカでやる気の無い質問者の溜まり場だからな

566 名前:デフォルトの名無しさん [2009/04/01(水) 04:35:17 ]
ここで描かれたプログラム甲子園の回答は不合格とします

567 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:28:50 ]
[1] 授業単元:ばば抜きの者です
[2] 問題文(含コード&リンク):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で読み込めるようにしていこうと思っています。


568 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:41:05 ]
宿題じゃないなら続きはこっちでやってくれ

C言語でトランプゲームを作りたい
pc12.2ch.net/test/read.cgi/tech/1189892773/

569 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 15:09:08 ]
C言語の問題なんですが、

n個の実数データ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'は平均値

お願いします。

570 名前:569 mailto:sage [2009/04/01(水) 15:10:44 ]
細く
↑のC言語のプログラムを教えてください。



571 名前:569 mailto:sage [2009/04/01(水) 15:12:05 ]
○補足
×細く

572 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 16:47:29 ]
>>569
#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;
}

573 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:04:53 ]
[1] 授業単元:基礎
[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


574 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:22:43 ]
>>573
それ以前に、そのプログラムは何をするプログラム?

575 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:49:45 ]
>>574
A君、Bさん、C君でバドミントンをします。
A君 VS Bさんの勝負をC君が記録しましたが、記録していたのはサーブの順番だけでした。
1セット3ゲーム11点先取で行い、デュースを適用しました。
C君が残した記録から得点を出力するプログラムを作成してください。
1ゲーム目は必ずA君から始まり、以降は最終ゲームの勝者からです。
また、1ゲーム中のサーブ回数は必ず100回以内です。

こういうものです。

576 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:37:29 ]
#include<stdio.h>
#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;
}

577 名前:569 mailto:sage [2009/04/03(金) 15:05:12 ]
>>572
ありがとうございましたm(_ _)m

578 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:53:55 ]
[1] 授業単元:C++
[2] 問題文:
C++ではvalidではないがCではvalidなプログラムを書きなさいというなぞなぞみたいな
宿題が出ました。普通に考えるとCで動くプログラムはC++で動くはずですが、そうでないものを
書けというものみたいです。ヒントは、「C言語の経験がなくても出来る」だそうです。
型にはまらない発想でシンプルなコードを書きなさいと言われました。問題文は以上です。
(validの意味がコンパイル可能を指すのか動作可能なのかを確認し忘れてしまい、今確認
できないのですが、それでも何かピンと来る方宜しくお願いします)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C++
[4] 期限:4月6日

579 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:01:10 ]
>>578
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/489

489 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/23(月) 09:24:50
char hoge[4] = "ABCD"; // これがエラーになるかどうか

580 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:40:46 ]
なそなぞではなく、C++ 優位
int main(void)
{
   char data;
   char pointer = &data;

   pointer = &data;
}



581 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:47:29 ]
>>578
関数プロトタイプのない関数の呼び出し
void* からの暗黙のポインタ変換

582 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:40:42 ]
[1] 授業単元:上級C++
[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] その他の制限:
初回の宿題から難しく全く理解出来ないのでよろしくお願いします
サンプルコードを使って書くのか、単純にこれは参考に使うものなのかすらわかっていませんがよろしくおねがいします

583 名前:578 mailto:sage [2009/04/04(土) 16:21:13 ]
>>579, 580, 581
ありがとうございました

584 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:25:51 ]
[1] 授業単元:C++
[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日

585 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:43:58 ]
>>584
ttp://www.geocities.jp/ky_webid/cpp/library/025.html

586 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:17:52 ]
>>582
使えってかいてあるからとりあえず使うだけのコード
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9014.cpp

587 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:30:19 ]
>>584
#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;
}

588 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:55:26 ]
>>586
助かりました!有り難うございました。

589 名前:584 mailto:sage [2009/04/05(日) 01:55:15 ]
>>587
ありがとうございました!これから解読します

590 名前:デフォルトの名無しさん [2009/04/05(日) 03:21:24 ]
解読する価値ねーだろ



591 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:23:05 ]
価値というか、問題文そのまま書き下しただけだな

592 名前:デフォルトの名無しさん [2009/04/05(日) 03:29:26 ]
お前引っこんでろ


593 名前:デフォルトの名無しさん [2009/04/05(日) 03:33:04 ]
>>589
あんまいじると可哀想だろ 
そのへんでやめとけ


594 名前:デフォルトの名無しさん [2009/04/05(日) 12:59:37 ]
#include <stdio.h>
【  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);
}
}



595 名前:デフォルトの名無しさん [2009/04/05(日) 13:00:24 ]
int passCheck(char *p)
{
static char *pass = "MissionC";
int flg;

flg = strcmp(pass,p);

if (【  4  】 )
return TRUE;
else
return FALSE;
}

596 名前:デフォルトの名無しさん [2009/04/05(日) 13:02:59 ]
1,2,3,4に入る解答を教えて

597 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:13:16 ]
>>595-596 3回もしなくても、1回で投稿できるだろう。
#include <string.h>
!fig
passCheck(buff)
!fig

598 名前:デフォルトの名無しさん [2009/04/05(日) 13:22:14 ]
回答群から選ぶ問題だった

1
#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

599 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:26:16 ]
>>598
>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
#include <string.h>
cnt<=3 && flg==FALSE
passCheck(buff)
flg == 0

600 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:08:13 ]
[1] 授業単元:C++
[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>>)

よろしるおねがいします



601 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:22:37 ]
>>600
ぐぐれ

602 名前:600 mailto:sage [2009/04/05(日) 15:38:41 ]
>>601
ぐぐると似た者はたくさんあるのですが制限事項を満たした者がありませんでした。
ttp://www.daniweb.com/forums/thread49939.html
とかは6行目くらいから正三角形が崩れて来るし、最終的に微妙な三角形になるし、
というわけでよろしるおねがいします

603 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:53:55 ]
あなたは、10とか1000の桁数偶数の場合は、5桁の中央にどう配置するのか?

604 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:36:04 ]
_1_0_
10_00

605 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:57:49 ]
>>604 OK. あと、STL使うみたい。
#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" ;
}

606 名前:600 mailto:sage [2009/04/06(月) 00:52:27 ]
↑こんな感じで表示出来ると助かるのですが
どなたかコンテナを使ったプログラムでお願い出来ないでしょうか

607 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:06:27 ]
これって正三角形じゃなくて二等辺三角形だよな

608 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:16:04 ]
教員の端末がプロポーショナルフォントだったら・・・

609 名前:600 mailto:sage [2009/04/06(月) 01:28:10 ]
「正」じゃなくて二等辺でもたぶん大丈夫です

610 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:42:20 ]
printf("%*d",WID,NUM);
WID 文字数の指定
NUM 値



611 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:43:05 ]
C++でも書式の指定ができるものがあったような・・・

612 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:44:52 ]
#include <vector>

typedef 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;
}

613 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:14:45 ]
#include <stdio.h>
#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");
}
}

614 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:16:20 ]
1,
1,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,

615 名前:600 mailto:sage [2009/04/06(月) 02:27:33 ]
毎行左端からスタートではない左辺と右辺の二等辺である三角形に出来ませんか?
(イメージ的に605みたいな)

616 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:33:38 ]
#include <stdio.h>
#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));
}

617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:35:52 ]
__5__
_5_5_
_555_
55_55
55555

一応、骨格と部品は用意したんで
適当に加工してちょ
もっと綺麗に書けたらなぁw

618 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 03:51:43 ]
>>600
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9015.cpp

619 名前:600 mailto:sage [2009/04/06(月) 04:00:09 ]
>>618
完璧です。。ほんとに感謝です!
ありがとうございました!

620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:00:45 ]
#include <stdio.h>
#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);
}



621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:02:04 ]
sprintf(acBuf, "%d", iMax);
iMaxLen = 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');
}
}

もう解答は上がってるけど、別解として

622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:30:13 ]
くせぇくせぇ、後出し麻呂の臭いがぷんぷんすんぜ
こりゃ〜クソースだぁ〜クソースは消毒だぁ〜

623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:38:04 ]
g++ だと、void main はコンパイルエラーになる。
#define __max(a,b) a>b?a:b
どれだけ花がいいんだ。

624 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 10:31:46 ]
ttp://www.dotup.org/uploda/www.dotup.org26594.zip.html

四つの引数をとるバージョンのaccumulateを使用して、26行目、27行目のtransformとaccumulate(三つの引数バージョン)
を合体するにはどうしたらいいですか?単純に繋いだらコンパイルエラーになりますた(28行目)
あっそれとinnerproductは使っちゃいけないみたいなのであくまでも4つの引数をとるaccumulateバージョンでお願いします

625 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 11:23:42 ]
template<class T>
struct 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>());

こんな感じにすればいいんじゃね?よく分からんが

626 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:49:20 ]
>>618 #define N 17 だと、なぜかダメ。

627 名前:デフォルトの名無しさん [2009/04/06(月) 15:25:28 ]
>>626
最大表示桁数が5桁を超えるからじゃないの?

628 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 15:28:48 ]
>>578
new delete 等の C++ キーワードを変数名に

629 名前:624 mailto:sage [2009/04/06(月) 16:10:26 ]
>>625
おぉ!すごいできました。
ありがとうございました。(^人^)感謝♪

630 名前:569 mailto:sage [2009/04/08(水) 19:10:27 ]
>>572のプログラムについてなんですが、
各行にコメントをつけなきゃなくて、さらに提出するときに説明しなきゃないんですけど、
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



631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:35:20 ]
while (n < 1024) {
if (scanf("%lf", &data[n]) != 1) { // 入力
scanf("%*s"); // 入力バッファ読み捨て
printf("error\n");
continue;
}
if (data[n] == 0.0) { // 0なら入力終了
break;
}
n++;
}

改良案

632 名前:デフォルトの名無しさん mailto:age [2009/04/08(水) 20:05:04 ]
[1] 授業単元: ファイルの入出力(fprintf文の高度な使用法)
[2] 問題文(含コード&リンク): 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] その他の制限: 特に無し


633 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:26:26 ]
問題文正確か?

634 名前:632 mailto:age [2009/04/08(水) 21:40:51 ]
>>633
一応正確ですよ
よろしくお願い致します。

635 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 22:50:27 ]
まだ4月初めなのにもう課題がでてるの?
どういう学校だろうか。

うちなんかこれから講義資料作りますよ。
自分が出した問題がここに出てくるかwktkしながら見ることにします。

636 名前:632 mailto:age [2009/04/08(水) 23:12:35 ]
>>635
専門学校ですのでカリキュラムがギュウギュウなんですよ
出来るようならお願い致します

637 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:15:23 ]
いったい何のために専門学校に入ったの?

638 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:17:29 ]
>>636
カリキュラムがギュウギュウって本当か?
卒業時にバブルソートがなんとかできるとかじゃないよな?

639 名前: ◆zQ5xe/OcaA mailto:sage [2009/04/08(水) 23:20:42 ]
>>632
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]);
  }
}

640 名前:632 mailto:age [2009/04/08(水) 23:21:05 ]
>>637
プログラムの勉強をするためです
>>638
卒業時には立派なプログラマー予備軍?になってるだろうと先生から言われています



641 名前:632 mailto:age [2009/04/08(水) 23:27:17 ]
>>639
このままだとエラーが結構出ますがこれを参考にしろってことですね
ありがとうございます。やってみます

642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:42:36 ]
プログラムの勉強をするために専門学校に入って、ここで宿題解いてもらうのか。

とりあえずうちの会社には来ないでね。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<195KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef