ダディクールがC/C++の宿題を片づけます 32代目
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ にC/C++の宿題を片づけて見せます。
/\___/ヽ
/'''''' '''''':::::::\ ――【注意点】――――――――――――――――――――――
. |(●), 、(●)、.:| + ・使用する言語(C/C++)や環境(CUI/GUIなど)は必ず書きましょう。
| ,,ノ(、_, )ヽ、,, .::::|. ・問題文は、ちゃんと解いてもらう方にわかりやすいように全文を
. | `-=ニ=- ' .:::::::| + 書きましょう。
\ `ニニ´ .:::::/ + ・計算問題は必ず数式自体をあげ、どのような計算をするのか
,,.....イ.ヽヽ、ニ__ ーーノ゙-、 ・エラーは、その行とエラーの詳細を書きましょう。
: | '; \_____ ノ.| ヽ i エラーメッセージが出た場合はそのままコピーしてください。
| \/゙(__)\,| i | ・後になって問題につけたしをするのはやめましょう。
> ヽ. ハ | ||. 解いてもらっている方に失礼になってしまいます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html 【歴代スレは
>>2-10】
3 :
ぼるじょあ ◆yBEncckFOU :04/10/13 00:00:03
今度はダディクールかYO!
>>1 何故真面目にスレ立てないかな
死んでしまえ
あぼーん
8 :
ぼるじょあ ◆yBEncckFOU :04/10/13 00:07:28
何か問題あるんだろうか。
終了
削除依頼出してきてくれ
自分でだせばー?口だけ野郎
さぁ毎度お馴染みの最悪な空気です
とりあえず、
>>1 氏ね
13 :
デフォルトの名無しさん:04/10/13 00:13:42
新スレが立つたびに荒らしにくる奴がいるな
エエーあらされるためにふざけたスレ立てしてるんじゃないのかよー
(@u@)
やっぱり前スレでネーミング批判しといた方が良かったかな…
このスレは放棄すべきだと思った。
削除希望
なんでおまいらスレタイに執着してんの?
>>17 スレタイによってスレッドのイメージが決まる。
ネタっぽいタイトルだと、やはりろくなレスを返さない。
殺伐としたスレにようかんマンが参上(AA略
21 :
デフォルトの名無しさん:04/10/13 00:27:02
なんで1が削除しろとわめくんだろう(笑)
今までずっとこうやってきただろ・・・
>>23 だから?この馬鹿らしいやりとりは何かの儀式?
>>24 は?
スレタイのことを言っているんだけど。
味も素っ気もないタイトルなんてなかっただろ(大昔は知らないが)。
>>25 だから?この馬鹿らしいやりとりは何かの儀式?
あぼーん
あ〜ら、大変!
ガーベッジコレクタ早く早く!!
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に答えるとなると
/\___/ヽ
/'''''' '''''':::::::\ 無駄に容量食ってしょうがないな
. |(●), 、(●)、.:| +
| ,,ノ(、_, )ヽ、,, .::::|. レスするたびにこの顔見なきゃいけないのか
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ + あまりこのAA好きじゃないんだがな
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i 1は回答者用のテンプレ作れや
| \/゙(__)\,| i |
> ヽ. ハ | ||.
━━━━━━━━━━━━━━━━━━━━━━━━━━
では、質問をどうぞ。
━━━━━━━━━━━━━━━━━━━━━━━━━━
31 :
. |(○), 、(○)、.:| +:04/10/13 00:52:03
クールに答えたい人は名前欄に . |(●), 、(●)、.:| +を入れるだけでいいよ。
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + 良くねえよ
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
次スレはヘーベルハウスきぼん
/|
|/__
ヽ| l l│<ハーイ
┷┷┷
34 :
デフォルトの名無しさん:04/10/13 01:04:19
この儀式は宿題が投下されるまで続行です
_, ,_ パーン
( ゜д゜)
⊂彡☆====== /|
__ |/
ヽ| l l│
┷┷┷
よくここまでたどり着いたな。それは誉めてやろう。
だが、すでに鐘は4回鳴らしている。あと一度鐘を鳴らせば、下の娘は死ぬのだ。
お前にこの儀式の意味を教えてやろう。
このイースにはかつての神官の子孫が存在する。これは彼らを見つけ出し、抹殺する為の見せしめの儀式なのだ。
さあ、最後の鐘の音をじっくりと味わうがいい。ハッハッハ…!
37 :
デフォルトの名無しさん:04/10/13 01:11:20
1.
単純選択法で、配列は一つでありながら9999のような数を使わないプログラムを完成せよ。
2.
上記のプログラムを参考にし、整列が終了している部分は次に小さな値を探す時にはもう一度なぞらなくてもすむような形に改良せよ。
ダディクールしか頼れる人がいません。助けてください。よろしくお願いします。
/\___/ヽ // ヽ
/'''''' '''''':::::::\ ,' ,' ,' ,:' / / ,:',:' ,:' ゙、 ゙、
. |(●), 、(●)、.:| + '‐'= '-'、_/ / ,' ,' ,' r--、ヽ ',
| ,,ノ(、_, )ヽ、,, .::::| ヾl -ミヽ,/_,' ,'ミ=L_,`冂二 ̄| !
. | `-=ニ=- ' .:::::::| + | `h、ヽ\ヾ>‐-‐ /7゙|`、  ̄ l
\ `ニニ´ .:::::/ + ___ノ ,リ );; ミ‐-‐/| | ', !
,,.....イ.ヽヽ、ニ__ ーーノ゙-、. まあ、なんて素敵な. .', ‐''- '⌒ヽ_| | | |
: | '; \_____ ノ.| ヽ i :ヽ//// ::::::...... (゙ノ ノ | | |
| \/゙(__)\,| i | 人なんでしょう・・・ } -‐' /  ̄ |
> ヽ. ハ | || /,,~、_ ,' / ',
,-( {__}、7゙ク ゙̄', ', ( ,' ヽ
∧_} ヽ { |--‐ \ ゙、 ( `ヽ
( ヽ, ゙、 r‐ノL__,,, 、-‐-、ヽ、 ヽ
/(゙" ノ /0/ / ヽ ヽ ゙、 ゙、
そして月日は流れ・・・
│ __〃 /  ̄/ /
│ / __ _/ ./ ―― / /
|/ / / _/ _/ /_/
/〃/| | l / /,/ l l | l `、
// / _,l-H、/| / l l /l_/l || l l
// | |_,!ュ=ト' | | | l'/´l/ト、ll l l
//)_/ '''''' ' l { |l/'''''' ト、l l l +
〈 / / / )(●), 、(●) .:::::、l` l | i l
∧i レ ハ ,,ノ(、_, )ヽ、, .:::::,ルド| l |l l
ヽ l ! | ト、 `-=ニ=- ' .:::::::'7 ! |l |l |l | +
ハト ` \ `ニニ´ .:::::::/ l || || |l ! +
ノノ| l\ \ ` .:::::,/ /l /i lト、 ll !
/ ノl/ノリ\ )__,,. -‐ ''" //イ| l| | ト、ヽヾ丶、
´ 〃/ノ//|l i> /_| 〃/ || || !| i \ーニヽ
ー=彡/〃 ___/ / \ ノ/-|| ||/ |l ト、\`ー-ニ二
歴代最悪な流れの予感 ていうかキモすぎ
よりによってダディクールかよ
だれか宿題うpしる
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + こんな時間に
. |(●), 、(●)、.:| + こんな時間に
| ,,ノ(、_, )ヽ、,, .::::|. 宿題やってる奴いんのかよ
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
コワイヨー
なんだこのスレw
このまま1000まで?
前スレの893が答え貰えなくて暴れてんだろ
宿題まだー?
ちんちん
そろそろ麻衣子に宿題してもらいたい
二つ前のスレとかなかなかネタが利いてたなあ、、、
51 :
デフォルトの名無しさん:04/10/13 12:40:14
なんかいってよ!
なんか
>>49 ,,. : ‐'' "´;;;;;``'ー- 、..,,_
/. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヽ,
,,./. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .\
〃. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヽ
, 彳. ;,;;;;;;;;;;;;;;;;;;;;;;;/バ;ヾメ;:`ミ_;;;;;;;;;;;;;;;;;;;;;;;,; .゙、
//. ;,;;;;;;;;;;;;;;;;;;;;;;;;;//:7- __ _ ヾ;;;;;;;;;;;;;;;;;;;;;,; .ヽ
´/. ;,;;;;;;;;;;;;;;;;;;;;;;;;//_/ ̄ ゙、;;;;;;;;;;;;;;;;;;;;;,; .',
〃. ;,;;;;;;;;;;;;;;;;;;;;;;;// / _,,._ i;;;;;;;;;;;;;;;;;;;;;;;,; .゙,
《, ;,;;;;;;;;;;;;;;;;;;;;;;;;;∧ヾ、 ,;ii〃"゙`ミ;.i;;;;;;;;;;;;;;;;;;;;;;;,; .i|
、{. ;,;;;;;;;;;;;;;;;;;;;;;;/ト〈、`゙,. , ´ ,._.,.,、,_ `゙|;;;;;;;;;;;;;;;;;;;;;;;;,; .゙,
i". ;,;;;;;;;;;;;;;;;;;;;;リヘソ,> Y! i〃 <.(;・),゙ゞノ;;;;;;;;;;;;;;;;;;;;;;;,; .《
((. ;,;;;;;;;;;;;;;;;;;;;;;;人"´`.:;;l l;.゙ `^''ーヾ`,リ!;;;;;;;;;;;;;;;;;;;;;;;;;,; .リ
ソ. ;,;;;;;;;;;;;;;;;;i r'(;. );:.. l |;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヾ,
ゞ. ;,;;;;;;;;;;;;;;;;;;i┘ ヽヘ、;ハ ,) /!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ゞ
ヾ". ;,;;;;;;;;;;;;;;;;;;;|ヾ;: ,:; 人;;;;;;;;;;;;;;;;;;;;;;;;;,; .((._ 呼んだ?
.`゙》. ;,;;;;;;;;;;;;;;;;;;| :;;i 、-‐‐:v.‐-:、_ 〃;: !;;;;;;;;;;;;;;;;;;;;;;;;;;,; .〃
.ノリ. ;,;;;;;;;;;;;;;;;;;;;゙、:;| `ヾニゞ‐;;;;ニフ j|;. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .{{
((. ;,;;;;;;;;;;;;;;;;;;;;;;;;;`、 - ̄ ,./;:. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ソ,
_.)). ;,;;;;;;;;;;;;;;;;;;;;;;;/ilヽ、._ ;,. ,.:-‐'"/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ノノ
彡. ;,;;;;;;;;;;;;;;;;;;;;;;;;;i;;》 \ニ ;`  ̄ . ::;〃─ン;;;;;;;;;;;;;;;;;;,; .'"<
んなもん探してくんな!
あぼーん
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
宿題手伝います
訂正です。暇なときに宿題手伝います
>>58 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + オレの邪魔するな
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
宿題あるのですがよろしいですか?
よろこんで
ありがとうございます、すごく初心的な問題なんです@@;
環境先に書いたほうがよいですか?おしえて君でモウシワケナイです
問題は「キーボードから値を入力し、入力された値を底辺とする中抜け二等辺三角形を底辺が右側になるように描画しなさい。
なお、入力された値は1ごとに*一つで描画しなさい。」です
C(LSI-C)コンパイラを使っています
エディッターはクールミントというのを使っています
次の質問どうぞ
>>64 描画する中抜け二等辺三角形ってのは、
*
**
***
****
*****
こういうのを指すのだろうか。
>>66 中抜けだから
*
**
* *
* *
*****
じゃないの?
<|
みたいなのを*で書けってことか?
*
**
* *
* *
* *
* *
* *
**
*
という風に書くとして、入力された値が偶数だったら
*
**
* *
* *
* *
* *
**
*
でいいのか?
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + よしオレが答えてやろう
| ,,ノ(、_, )ヽ、,, .::::|. #include <stdio.h>
. | `-=ニ=- ' .:::::::| + #include <stdlib.h>
\ `ニニ´ .:::::/ + int main(void)
,,.....イ.ヽヽ、ニ__ ーーノ゙-、 {int i,in,n;
: | '; \_____ ノ.| ヽ i scanf("%d",&in);
| \/゙(__)\,| i | for (i = 0; i < in; i++)
> ヽ. ハ | ||. {for( n = 0; n <= abs(in / 2 - i); n++ )printf("%s"," ");
printf("%s","*");
for( n = 0; n <= in / 2 - abs(in / 2 - i); n++ )printf("%s"," ");
printf("%s","*\n");
}
return 0;
}
あぼーん
>69さん
そうです、今まで作ったプログラムを参照にこっちでも組んでいたのですが
どうも中抜け以前のやつができなくて@@;
>>72 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + 貴様、答えたオレを無視しやがったな!!
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
>ダディ
モウシワケナイです@@;
USBケーブルで逝ってきます
んとコンパイルして実行したら結構いびつな感じになってます
これはソフトウェアや環境の違いなんでしょうか?
>>75 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + わかってねえなお前
| ,,ノ(、_, )ヽ、,, .::::|. 少し変更すればちゃんと出るようになる
. | `-=ニ=- ' .:::::::| + これはお前への宿題だ
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
っは!!!
確かに、このまま頼ってたら(´・ω・`)ショボーンのままですね
少し自分でいじくり倒してみます
ダディ、ありがとう
ずっとこの調子なのか?このスレ
このままAAスレになるのか・・・?
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + ダディクールスレでこのAA使って何が悪い?
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
やるのは構わんけど、もう少し小さいAAに仕様変更してくれないか。
>>83 いつから「ダディクールスレ」になったんだ?
宿題回答スレだろうが!
(・3・)エェー せめてぼるじょあサイズにしてくれYO
>>85 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + 違う!オレ様が宿題を片付けるスレだ!
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
むしゃくしゃして立てた。
まさかAAスレになるとは思わなかった。
今では反省している。
なんか暇そうだからここで宿題以外のこと聞いていい?
C言語でダディを書いてみました!
┏━†† ━━━†† ┏━┓ ┃┃
┃━┫ ━┳━ ┃ ┃ ━━ ┃┃
┃ ┃ ┳┛ ┃ ┃┃┃
┛ ┃ ┃ ┛ ━┛┗┛
┏━┓ ┏━┓
┃ ┗━━┛ ┃
┏┛'''''' '''''' ::::::┗┓
┃ (●), 、(●)、: ::::┃ ╋
┃ ,,ノ(、_, )ヽ、,, .::::::┃
┃ `-=ニ=- ' .::::::::┃╋
┗┓ `ニニ´ .::::::::┏┛ ╋
┃━ ━━┫
━╋┳┳┓ ┏╋┳┓
┃┗╋╋┳┳╋┫ ┃
┃ ┗╋┫┣┛┃ ┃
C言語で書くと線が太くなるのですか
最終的にC/C++使いたいんだけど一番最初はやっぱりBasicから入るのがいいの?
いきなりCから入るのってやばい?
板違いか、、、
Cからでいいよ
>>93 どちらからでも良いと思います。
というのも、どちらの言語も別に難しいところは何もないからです。
Cをいきなり覚えても差し支えはありません。
JAVA→C++→C
オブジェクト指向のセンスを身に着けたいならこの順だな。
BASICは必要になったときに勉強すればいい。
/\___/ヽ
/'''''' '''''':::::::\
. | (C), 、(C)、.:| +
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
100 :
89:04/10/13 22:45:13
ごめんダディだった・・・
BASIC も 30分くらいは勉強した方が、ときたま話題にあがったときに取り残されないで済むからいいと思われ
98のダディの中にC++が見えるぞ‥‥
103 :
デフォルトの名無しさん:04/10/13 23:22:47
あっちが埋まればこっちもいつも通りの宿題スレになるんだろうな。
原因を作ったお前が悪い
105 :
デフォルトの名無しさん:04/10/13 23:27:47
誰に言っているんだろう
1/10消費したが、ほとんどネタ書き込みとはな。
次からシンプルなスレ立てにしてくれよ・・・
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + 宿題片付けます
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
あぼーん
110 :
デフォルトの名無しさん:04/10/13 23:58:43
俺は思うんだか、何でC/C++なんだ。
CとC++の区別もできないのか。
>>110 俺は思うんだか、何で分けなければいけないんだ。
両方受けるという解釈もできないのか。
あぼーん
何で同じスレに両方扱うのか分からん。
CをプログラムするときはCで推奨するやり方を、C++をプログラムするときは
C++で推奨するやり方を使い分けられないのか。
>何で同じスレに両方扱うのか分からん。
頭が固いというか、悪いというか…
>>114 何故このスレが存在するのか考えろ
ここはCスレとC++スレに宿題持ってくる奴を隔離するためのスレだ
それだけのためだけに存在しているスレである
C++はCの拡張言語だから、まったくの別物ではない。
簡単なものはCで書いた方がわかりやすい場合と、
複雑な物はC++で書いた方がわかりやすい場合があり、課題によってどちらが
ふさわしいか判断するのに、それぞれ人の考えかたが違ったりするので、
同じスレでもっとも良いと思われる答えを議論できれば良いと思う。
アホか。馬鹿か。池沼か。
宿題なんだからCかC++か指定あるだろ。
テンプレにも指定しろと書かれてるし、ここは議論する所じゃ無い。
何を勘違いしてるんだこの阿保。
>>118 君は言語実習の宿題しか期待していないのか。
いや、言語実習レベルの宿題しか解けないのか。
120 :
デフォルトの名無しさん:04/10/14 00:48:53
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + C/C++の宿題片付けます
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
>>119 そんな論議したければ適切なスレ行けって事だろ。大馬鹿者。
123 :
デフォルトの名無しさん:04/10/14 00:58:38
scanf()を用いて以下の通り関数の値を出力するプログラムを作戦してください
1を入力したときにsin(x)の値
2を入力したときにcos(x)の値
3を入力したときにtan(x)の値
お願いします
>>123 scanf("%d",a);
if(a==1){printf("%f\n",sin(x));}
if(a==2){printf("%f\n",cos(x));}
if(a==3){printf("%f\n",tan(x));}
>>123 ./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\ x = 0.5
. |(●), 、(●)、.:| + scanf("%d",&a);
| ,,ノ(、_, )ヽ、,, .::::|. if(a==1){printf("%f\n",sin(x));}
. | `-=ニ=- ' .:::::::| + if(a==2){printf("%f\n",cos(x));}
\ `ニニ´ .:::::/ + if(a==3){printf("%f\n",tan(x));}
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i switch使うがな。普通。
| \/゙(__)\,| i |
> ヽ. ハ | ||.
普通を定義してくれ
>>126 ダディがクールに考えたことが普通なんだろ
128 :
123:04/10/14 01:15:31
ありがとうございました
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
ミ ,,ノ(、_, )ヽ、,, .:::ミ|. 普通という事にしたいのですね
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
130 :
デフォルトの名無しさん:04/10/14 01:58:49
*
* *
* * *
* * * *
* * * * *
C言語で↑を表示するプログラムを作りたいのですがわかりません。
お願いします
131 :
デフォルトの名無しさん:04/10/14 02:00:32
*
* *
* * *
* * * *
* * * * *
です。すみません
>>131 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + いくらクールなオレでも、お前は許せない
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
>>131 ./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
ミ ,,ノ(、_, )ヽ、,, .:::ミ|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
#include <stdio.h>
int main(void)
{
puts(" *\n * *\n * * *\n * * * *\n* * * * *");
return 0;
}
134 :
デフォルトの名無しさん:04/10/14 02:10:55
135 :
デフォルトの名無しさん:04/10/14 02:15:51
>>133 ありがとうございます。助かりました
for文使って作る方法ってありますか?
136 :
デフォルトの名無しさん:04/10/14 02:19:26
>>135 #include <stdio.h>
int main()
{
char *a[]={
" *",
" * *",
" * * *",
" * * * *",
"* * * * *"};
int i;
for(i=0;i<5;i++)
puts(a[i]);
return 0;
}
はいはい、そろそろ消えてね。
#include <stdio.h>
int main(void)
{
int i, j, n = 5;
for(j = 1; j <= n; j++)
{
for(i = 0; i < n - j; i++) putchar(' ');
for(i = 0; i < j; i++) printf("* ");
putchar('\n');
}
}
138 :
デフォルトの名無しさん:04/10/14 02:29:11
俺のは無視かい(-_-#)
140 :
デフォルトの名無しさん:04/10/14 02:31:13
137の方がマジレスなのになw
>>135 ./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
手伝ってあげようじゃないか
/\___/ヽ #include <string.h>
/'''''' '''''':::::::\ #include <stdio.h>
. |(●), 、(●)、.:| + int main(void)
ミ ,,ノ(、_, )ヽ、,, .:::ミ|. {
. | `-=ニ=- ' .:::::::| + int n,a=strlen(" "),b=strlen("* ");
\ `ニニ´ .:::::/ + char *s1=" ",*s2="* * * * *";
,,.....イ.ヽヽ、ニ__ ーーノ゙-、 for(n=0;n<5;++n){
: | '; \_____ ノ.| ヽ i printf("%s%s\n",s1+n*a,s2+(4-n)*b);
| \/゙(__)\,| i | }
> ヽ. ハ | ||. return 0;
}
/\___/ヽ // ヽ
/'''''' '''''':::::::\ ,' ,' ,' ,:' / / ,:',:' ,:' ゙、 ゙、
. |(●), 、(●)、.:| + '‐'= '-'、_/ / ,' ,' ,' r--、ヽ ',
| ,,ノ(、_, )ヽ、,, .::::| ヾl -ミヽ,/_,' ,'ミ=L_,`冂二 ̄| !
. | `-=ニ=- ' .:::::::| + | `h、ヽ\ヾ>‐-‐ /7゙|`、  ̄ l
\ `ニニ´ .:::::/ + ___ノ ,リ );; ミ‐-‐/| | ', !
,,.....イ.ヽヽ、ニ__ ーーノ゙-、. さすがダディクール、. .', ‐''- '⌒ヽ_| | | |
: | '; \_____ ノ.| ヽ i :ヽ//// ::::::...... (゙ノ ノ | | |
| \/゙(__)\,| i | なんて素敵なの・・ } -‐' /  ̄ |
> ヽ. ハ | || /,,~、_ ,' / ',
,-( {__}、7゙ク ゙̄', ', ( ,' ヽ
∧_} ヽ { |--‐ \ ゙、 ( `ヽ
( ヽ, ゙、 r‐ノL__,,, 、-‐-、ヽ、 ヽ
/(゙" ノ /0/ / ヽ ヽ ゙、 ゙、
そして月日は流れ・・・
│ __〃 /  ̄/ /
│ / __ _/ ./ ―― / /
|/ / / _/ _/ /_/
/〃/| | l / /,/ l l | l `、
// / _,l-H、/| / l l /l_/l || l l
// | |_,!ュ=ト' | | | l'/´l/ト、ll l l
//)_/ '''''' ' l { |l/'''''' ト、l l l +
〈 / / / )(●), 、(●) .:::::、l` l | i l
∧i レ ハ ,,ノ(、_, )ヽ、, .:::::,ルド| l |l l
ヽ l ! | ト、 `-=ニ=- ' .:::::::'7 ! |l |l |l | +
ハト ` \ `ニニ´ .:::::::/ l || || |l ! +
ノノ| l\ \ ` .:::::,/ /l /i lト、 ll !
/ ノl/ノリ\ )__,,. -‐ ''" //イ| l| | ト、ヽヾ丶、
´ 〃/ノ//|l i> /_| 〃/ || || !| i \ーニヽ
ー=彡/〃 ___/ / \ ノ/-|| ||/ |l ト、\`ー-ニ二
144 :
デフォルトの名無しさん:04/10/14 05:16:46
#include <stdio.h>
#include <stdlib.h>
#define STR_MAX 256
int main(void)
{
FILE*fi, *fo;
charfin[80], fout[80];
charbuff[STR_MAX], *pd;
int line = 0, select;
printf("入力ファイル名:");
gets(fin);
printf("出力ファイル名:");
gets(fout);
while(1){
if((fo = fopen(fout, "r"))!=NULL){
fclose(fo);
printf("ファイルが既に存在してます。上書きしていいですか?(1:Yes/0:No)");
scanf("%d",&select);
if(select == 1){
break;
}else{
exit(1);
}
}else{
break;
}
}
145 :
デフォルトの名無しさん:04/10/14 05:18:29
if((fi = fopen(fin, "r")) == NULL){
printf("入力ファイルがオープンできません\n");
exit(1);
}
if((fo = fopen(fout, "w")) == NULL){
printf("出力ファイルがオープンできません\n");
exit(1);
}
while(fgets(buff, STR_MAX, fi)){
++line;
pd = buff;
while(*pd != '\n'){
if(*pd == '*'){
*pd = '!';
}else if(*pd == '('){
*pd = '<';
}else if(*pd == ')'){
*pd = '>';
}else if(*pd == '%'){
*pd = '?';
}else if(*pd == '&'){
*pd = '@';
}
++pd;
}
fprintf(fo, "%d:%s", line, buff);
}
fclose(fi);
fclose(fo);
return(0);
}
146 :
デフォルトの名無しさん:04/10/14 05:21:18
144-145
上書き、select=1を選択した場合、出力されたファイルが真っ白になります。
今日のAM10:30までも回答頂ければ幸いです。
fclose()してないからじゃないの?
すまん、してたわ。
なんでだろ?
ちゃんと出来るぞ。
まさか入力ファイルと出力ファイルが同じってこたないよな?
>>149 >まさか入力ファイルと出力ファイルが同じってこたないよな?
よくわかりませんが上書き処理は入出力に同じファイル名を入れます。
>>150 fopen()の仕様を調べてらっしゃい。
おせーて
この宿題単位と進級掛かってるんで解決策10:30までになにとぞ!
解説もしていただけるとありがたいです。
読み込みファイルを一時ファイルに保存
↓
書き込みファイルとしてオープンしたあと一時ファイルから読み込み
>>153 メモリ内に全部読み込み、fclose()してから書き込みfopen()
156 :
デフォルトの名無しさん:04/10/14 09:57:06
ソース書いて
アホかい。
これだけヒントがあるのにそれでなんともならないなら素直に落第しとけ。
scanfが原因
落第しました
これくらいなら2chで聞くより教科書開いて考えたほうが早いと思うんだが・・・・・・
>>160 家に帰る最中に、雪をかぶっているお地蔵様に教科書をかぶせて帰ってきたので教科書がないのです
普段、勉強なんてしない奴がこんな時だけ必死になってる。畜生、氏ね
まあまあ、そんな鬼の首取ったかのように言わなくとも・・・
タイムリミットも過ぎたみたいだし彼の今後のためにも今回は煮え湯を飲ますと思って教えてあげては?
鬼首って、ダディクールの元ネタコピペ……
>>163 彼の今後のためを思うならスルーするべきだと思うが?
ヒントも出てるんだし。
>>154-155の書き込みで回答があって、これが的確
これが8:30
2時間あって出来てないということは、自分から動いていない
少なくとも俺は学ぶ意思があるが実力が伴っていない奴に教えてやりたい
その意思がない奴に教えてもそいつのためにはならん
167 :
146:04/10/14 11:48:46
同じ事だ
169 :
デフォルトの名無しさん:04/10/14 12:15:34
キーボードから入力された整数n(n>=3)が素数であるかを調べるプログラム。
判定方法は2からn-1までのすべての整数で割り算した結果、割り切れるものが1つもなければ
素数である。
{実行例}
n=7
素数。
n=12
素数ではない
>>169 判定方法まで教えてもらってそれ以上何を教えればいいのかわからん・・・。
171 :
デフォルトの名無しさん:04/10/14 12:24:18
そこをなんとか
おだまる!
>>169 やっほー、麻衣子だよ!
お兄ちゃんの宿題解いてあげるよ!
#include <stdio.h>
int main()
int n,pr;
do{
scanf("%d\n",&n);
}while(n<3);
for(pr=2;pr<n;pr++)
while(n/pr)n/=pr;
printf(n?"素数ではありません\n":"素数でーす\n");
return 0;
}
n-1までの全ての整数で割らなくても、それまでに判明した全ての素数で割るだけでよい。
>C/C++の宿題を片づけます
あれ?おっかしーなあ
何度見てもスレタイは宿題を片付けると書いてあるよ・・・
なのに既に別の意味で二人斬り
176 :
デフォルトの名無しさん:04/10/14 12:32:51
>>173 ありがとうございました!
すごいです!!
177 :
デフォルトの名無しさん:04/10/14 12:34:16
現バージョンでは、旧形式の関数定義は対応していませんってでたよ
えへへ、しっぱいしちゃった!
#include <stdio.h>
int main()
{
int n,m,pr;
do{
scanf("%d",&n);
}while(n<3);
m=n;
for(pr=2;pr<n;pr++)
while(m%pr==0)m/=pr;
printf((m==n)?"素数でーす\n":"素数ではありません\n");
return 0;
}
#include<stdio.h>
main()
{
intn,
i;
charstr[100];
do {
printf("かまん>>");
sscanf(str, "%s", fgets(str, 100, stdin));
n = atoi(str);
puts("");
} while(n <= 2);
for(i = 2; i < (n / 2); i ++) {
if(n % i == 0) {
break;
}
}
printf("n = %d\n%s\n", n, n % i ? "素数" : "素数じゃない");
return 0;
}
ごめんこれが俺のせいいっぱいだ
まちがってるかm
181 :
デフォルトの名無しさん:04/10/14 12:44:47
doってなんですか?使わずにできませんか?
何回もごめんね麻衣子ばかだから
m=1;
for(pr=2;pr<n;pr++)
if(n%pr==0){m=0;break;}
printf(m?"素数でーす\n":"素数ではありません\n");
sscanf(str, "%s", fgets(str, 100, stdin));
???
ワラタ
あぼーん
キニシナイキニシナイ
>>180 sscanf(str, "%s", fgets(str, 100, stdin));
何の意味も無いことするな。エラーでぬるぽだ。
すぐ下で
n = atoi(str);
やってるんだから
fgets(str, 100, stdin);
で充分
入力時のスペース類を消したくて書いた。
まさかぬるぽだと思わなかった。
今ではガッしている。
つーか、sscanfで読み取り元と格納先が同じって大丈夫だっけか
ヘルプひくのマンドクセ
この宿題をお願いします↓
まず,ファイルにデータの個数nと,その個数分のデータ(整数データ)を保存する.
プログラムshell.cは,まずファイルからnを読み込み,その数だけデータを読み込み,シェルソートを実行する.そして最後にソート結果を表示する.ただし,シェルソートのhの系列として,
hm=1,
hk-1=3hk+1, k=m,m-1,...
とし,nを超える直前にh1となるように mを定めるものとする.
データ例↓
10
6
4
1
2
7
5
0
9
8
3
ちなみにC++です。
fgets(str,sizeof(str),stdin);
num=atoi(str);
定石なりよ
>>192 fgets使っておきながらatoi使うのは愚の骨頂
普通は以下の感じかな。
if(fgets(str, sizeof(str), stdin) == NULL) {エラー処理}
if(sscanf(str, "%d", &num) != 1) {エラー処理}
※2つの変数に入れるなら != 2
atoi使うなら、以下の感じかな。結果は同じだけど、
改行かなんかがひとつ余分についているから、取った方がいいらしい。
if(fgets(str, sizeof(str), stdin) != NULL) {エラー処理}
if(sscanf(str, "%s", str2) != 1) {エラー処理}
num = atoi(str2);
>>194 2つ目のfgetsの戻り値のチェックが逆です。すまそ。
196 :
通りすがり@Cで。。:04/10/14 18:13:33
円周率小数表示すると 3.1415926…となるが、小数第 500位までに
各数字が何回登場するのかを表示するプログラムを作成せよ。
例:小数第 7位までなら
1… 2回 2… 1回 3… 1回 4… 1回 5… 1回 6… 1回 9… 1回。
>>196 πはどこから持ってくる?それの計算まで含むのか?
198 :
通りすがり@Cで。。:04/10/14 18:18:28
…で、
結果は各数字の登場回数がはぼ等しくなるのだと。。
不思議だよねぇ(・.・;)。二重レススマソデス
できた。
どうもありがと
質問しといて「通りすがり」と称する根性が気に入らない
201 :
デフォルトの名無しさん:04/10/14 18:21:58
(・.・;)
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + こやつめ!
>>197を無視しやがって!!!
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
203 :
通りすがり@Cで。。:04/10/14 18:23:00
>>197 実際に何にもない所から出した方がいい。
現実問題として、スパコンで以下数億桁までやってるって言うし…
自分で計算しないとそういう問題に対処できなくなるから
205 :
本気の質問@Cで。。:04/10/14 18:25:27
>>200 ごめんよぅ。。名前変えた
>>202 あまりにもレス早かったから。。
無視してないですょ
>>205 小数点以下500出せるソースがどんなものかわかってるのか?
207 :
デフォルトの名無しさん:04/10/14 18:31:59
>>202 このきもいオッサン何者?
なんかモデルとかあるのか?
>>207 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + オレはお前だ。お前はオレだ。
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
211 :
本気の質問@Cで。。:04/10/14 18:35:50
>>206 うまく頭を使って。。各値の分布状況が分かればいいから…
213 :
207:04/10/14 18:40:29
まぁpai=πは計算されたとしてですよ
int cmp,i;
double pai;
for(i=0;i<=9;i++){
cmp=pai-i;
if(data==0){
swich (i){
case 1:cnt1++;
case 2:cnt2++;
以下略
}
pai=(pai-i)*10;
}
}
本気の質問@Cで。。 さんのいう
>うまく頭を使って。。
ならば、↑のような感じでやるほかになんかあるわけですよね?
その方法をはげしくきぼんぬ
少なくともdoubleで少数以下500桁のpiは無理だな
アメリカンジョークの意味がわかんねえ。畜生、何がおかしいんだ、氏ね。
218 :
デフォルトの名無しさん:04/10/14 19:15:10
おれの肉を食いやがって。畜生撃ち殺してやる。
>>214 switchなんか使うなくても、配列でカウントすりゃいいだろ、畜生氏ね
printf(m?"素数でーす\n":"素数ではありません\n");
これをif文で表すにはどうすればいいですか
>>220 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + オレにとってその答えを書くのはたやすい
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| + だが、それをやってしまうとお前は自分で調べ、考える
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、 事ができない人間になってしまう
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
ダディクール!
>>220 簡単じゃないか。
if (printf(m ? "素数でーす\n" : "素数ではありません\n"));
224 :
本気の質問@Cで。。:04/10/14 20:16:53
>>214 やっぱそんな形になるよねぇ(汗)。。
>>>うまく頭を使って。。
>>ならば、↑のような感じでやるほかになんかあるわけですよね?
ごめん。。先見の明なしで(謝)それに各値の登場回数を求めるよりも
π の小数表示求めるほうが難しいんだねぇ (@_@。無知でごめん。。
>>224 πの計算は幾つも論文が出されているほどだ
それと、
>>214のような浮動小数点で計算するような形では論外だし、その下の
書き込みも見てないだろ?
226 :
デフォルトの名無しさん:04/10/14 20:32:11
VBの宿題どうかお願いできないでしょうか?
掛け算の99を表すプログラムを書きなさい
どうかよろしくお願いします
m?って数式にかえれないの
mが条件式、真の場合は ? の後が、偽の場合は : 以降が評価される。
230 :
デフォルトの名無しさん:04/10/14 20:42:43
すみませんが、どなたか教えてください。
1.
単純選択法で、配列は一つでありながら9999のような数を使わないプログラムを完成せよ。
2.
上記のプログラムを参考にし、整列が終了している部分は次に小さな値を探す時にはもう一度なぞらなくてもすむような形に改良せよ。
教えて君ですみません。どなたかお願いいたします。
>>230 /\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + そんなネタはいらねえんだよ
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
こっちの宿題お願いできないだろうか?
#include <stdio.h>
#define PI_MAX 2000
extern char *pi;
int main(void)
{
int count[10];
int i, n;
printf("(%%)\n");
for(n = 100; n <= PI_MAX; n += 100){
for(i = 0; i < 10; i++){
count[i] = 0;
}
for(i = 0; i < n; i++){
count[pi[i + 2] - '0']++;
}
printf("- %4d:", n);
for(i = 0; i < 10; i++){
printf("%7.2f", 1000.0 * count[i] / n);
}
printf("\n");
}
return 0;
}
static char *pi = "3.\
14159265358979323846264338327950288419716939937510\
58209749445923078164062862089986280348253421170679\
82148086513282306647093844609550582231725359408128\
48111745028410270193852110555964462294895493038196\
44288109756659334461284756482337867831652712019091\
45648566923460348610454326648213393607260249141273\
72458700660631558817488152092096282925409171536436\
78925903600113305305488204665213841469519415116094\
33057270365759591953092186117381932611793105118548\
07446237996274956735188575272489122793818301194912\
98336733624406566430860213949463952247371907021798\
60943702770539217176293176752384674818467669405132\
00056812714526356082778577134275778960917363717872\
14684409012249534301465495853710507922796892589235\
42019956112129021960864034418159813629774771309960\
51870721134999999837297804995105973173281609631859\
50244594553469083026425223082533446850352619311881\
71010003137838752886587533208381420617177669147303\
59825349042875546873115956286388235378759375195778\
18577805321712268066130019278766111959092164201989\
\
38095257201065485863278865936153381827968230301952\
03530185296899577362259941389124972177528347913151\
55748572424541506959508295331168617278558890750983\
81754637464939319255060400927701671139009848824012\
85836160356370766010471018194295559619894676783744\
94482553797747268471040475346462080466842590694912\
93313677028989152104752162056966024058038150193511\
25338243003558764024749647326391419927260426992279\
67823547816360093417216412199245863150302861829745\
55706749838505494588586926995690927210797509302955\
32116534498720275596023648066549911988183479775356\
63698074265425278625518184175746728909777727938000\
81647060016145249192173217214772350141441973568548\
16136115735255213347574184946843852332390739414333\
45477624168625189835694855620992192221842725502542\
56887671790494601653466804988627232791786085784383\
82796797668145410095388378636095068006422512520511\
73929848960841284886269456042419652850222106611863\
06744278622039194945047123713786960956364371917287\
46776465757396241389086583264599581339047802759009\
";
ほほー、ほんとに100%に近づくんだなー面白い。
理屈はわからんが。
e の場合偏りがある
1000 までの場合 5 が若干少ない
|__/ヽ
| '''''':::::::\
| 、(●)、.:| +
|_, )ヽ、,, .::::|
|-=- ' .:::::::| +
|ニ´ .:::::/ +
|__ ーーノ゙-、.
|_____ ノ.| ヽ i
|(__)\,| i |
| ハ | ||
円周率なんて約3でいいんだYO!
あぼーん
麻衣子COOL!!
>>244 マジで気持ち悪いから。貼り付ける奴の気が知れない。
>>244 麻衣子クールはC++の宿題を片付けてくれないの?
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
,,. : ‐'' "´;;;;;``'ー- 、..,,_
/. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヽ,
,,./. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .\
〃. ;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヽ
, 彳. ;,;;;;;;;;;;;;;;;;;;;;;;;/バ;ヾメ;:`ミ_;;;;;;;;;;;;;;;;;;;;;;;,; .゙、
//. ;,;;;;;;;;;;;;;;;;;;;;;;;;;//:7- __ _ ヾ;;;;;;;;;;;;;;;;;;;;;,; .ヽ
´/. ;,;;;;;;;;;;;;;;;;;;;;;;;;//_/ ̄ ゙、;;;;;;;;;;;;;;;;;;;;;,; .',
〃. ;,;;;;;;;;;;;;;;;;;;;;;;;// / _,,._ i;;;;;;;;;;;;;;;;;;;;;;;,; .゙,
《, ;,;;;;;;;;;;;;;;;;;;;;;;;;;∧ヾ、 ,;ii〃"゙`ミ;.i;;;;;;;;;;;;;;;;;;;;;;;,; .i|
、{. ;,;;;;;;;;;;;;;;;;;;;;;;/ト〈、`゙,. , ´ ,._.,.,、,_ `゙|;;;;;;;;;;;;;;;;;;;;;;;;,; .゙,
i". ;,;;;;;;;;;;;;;;;;;;;;リヘソ,> Y! i〃 <.(;・),゙ゞノ;;;;;;;;;;;;;;;;;;;;;;;,; .《
((. ;,;;;;;;;;;;;;;;;;;;;;;;人"´`.:;;l l;.゙ `^''ーヾ`,リ!;;;;;;;;;;;;;;;;;;;;;;;;;,; .リ
ソ. ;,;;;;;;;;;;;;;;;;i r'(;. );:.. l |;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ヾ,
ゞ. ;,;;;;;;;;;;;;;;;;;;i┘ ヽヘ、;ハ ,) /!;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ゞ
ヾ". ;,;;;;;;;;;;;;;;;;;;;|ヾ;: ,:; 人;;;;;;;;;;;;;;;;;;;;;;;;;,; .((._ マイコー
.`゙》. ;,;;;;;;;;;;;;;;;;;;| :;;i 、-‐‐:v.‐-:、_ 〃;: !;;;;;;;;;;;;;;;;;;;;;;;;;;,; .〃
.ノリ. ;,;;;;;;;;;;;;;;;;;;;゙、:;| `ヾニゞ‐;;;;ニフ j|;. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .{{
((. ;,;;;;;;;;;;;;;;;;;;;;;;;;;`、 - ̄ ,./;:. /;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ソ,
_.)). ;,;;;;;;;;;;;;;;;;;;;;;;;/ilヽ、._ ;,. ,.:-‐'"/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,; .ノノ
彡. ;,;;;;;;;;;;;;;;;;;;;;;;;;;i;;》 \ニ ;`  ̄ . ::;〃─ン;;;;;;;;;;;;;;;;;;,; .'"<
250 :
デフォルトの名無しさん:04/10/15 00:50:23
238はC素人
もう1/4も消費してるのに
あぼーん
あぼーん
ここはAAスレでつか?(つД`)
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:|
. |(●), 、(●)、.:|
. |(●), 、(●)、.:|
. |(●), 、(●)、.:|
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
/\___/ヽ
/'''''' '''''':::::::\
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
麻衣子をCOOLにしないで!
>>169 do{scanf("%d",&n);}while(n<3);
これは
n=0;while(n<3){scanf("%d",&n);}
こうなるね
printf(m?"素数でーす\n":"素数ではありません\n");
は
if(m){
printf("素数でーす\n");
}else{
printf("素数ではありません\n");
}
こうだよ
258 :
デフォルトの名無しさん:04/10/15 15:13:46
>>258 とりあえず avg=total/5; を
avg=(float)total/5;
に変更しよう。その上で、avg を表示した後に
total=0;
for(i=0;i<5;i++){
total+=ten[i][j]*ten[i][j];
}
avg=(float)total/5-avg;
で、avg に標準偏差の2乗が入っているはず。平方根求めるには
#include <math.h>
をインクルードして
avg=sqrt(avg);
で求まる。後は任せた。
名無しくーる!
あぼーん
あぼーん
あぼーん
このままだと、歴代で一番
回答数の少ないスレになりそうだな。
ちゃんと責任とれよ
>>1
そもそも質問がない、ここに限らず他の質問スレも今日は閑散。
266 :
デフォルトの名無しさん:04/10/15 19:33:01
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
. |(●), 、(●)、.:| +
. |(●), 、(●)、.:| +
. |(●), 、(●)、.:| +
| ,,ノ(、_, )ヽ、,, .::::|. 宿題答えてやれよ
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
スレタイが悪いせいだよ。
次からは気を付けてね。
>>261-263 あーあれだなとりあえずその三人が自分の娘だとしたら
262を男として育てるな俺
270 :
デフォルトの名無しさん:04/10/15 21:19:06
【問題】
英文、プログラムなどの半角英数字のテキストデータを使い、
母音(aeiou)の出現頻度を調べ、出力するプログラムを作りなさい。
入力データは、各自独自のものを用意してeibun.datと名前をつけること。
また、余力あらば、Rubyでも同じことを試みてみよ。
Rubyはどうでもいいので、C言語のほうをよろしくお願いします。
当方の環境はUNIXです。Emaxを使ってます。
出力フォーマットはぁ?
つか、Emaxだから何やねん。
272 :
ぼるクール ◆yBEncckFOU :04/10/15 22:06:13
>>270 要はa,e,i,o,uの個数を調べればいいのか?
だんまりかよ
#include<memory.h>
#include<stdio.h>
#define INPUT_PATH "eibun.dat"
int main() {
int table[0xff];
FILE *file;
int c;
file = fopen(INPUT_PATH, "r");
if (!file)
return 1;
memset(table, 0x0, sizeof(table));
while((c = getc(file)) != EOF)
++table[c];
fclose(file);
printf("あ %d\n", table['a'] + table['A']);
printf("い %d\n", table['i'] + table['I']);
printf("う %d\n", table['u'] + table['U']);
printf("え %d\n", table['e'] + table['E']);
printf("お %d\n", table['o'] + table['O']);
return 0;
}
,. - ─── - 、
/ , `ヽ.
/〃//,. ,ィl/|l ト、 !、 、 ヽ
ー'´| | l |1 | !l. l| ! | l.|ヽ ! !、 ',
YレV!ヒエ「! |l.「_ト!Ll」| l l l
! lハ(●), 、(●)| リ,! ! l. l |
|l |l.} ,,ノ(、_, )ヽ、_,ハl.lトl l. | l ごめんね、麻衣子クールうっかりさんでごめんね
|l ilト、`-=ニ=- ' ,1l|ィ| |l l | table[]の型はsize_tとかunsignedの適当な型に置き替えてね♥
_ 二,ニ^tュ--ェ_t1」l.|l !リ|_lノ 文字数がその型の範囲を超えた場合はダディが責任とってくれるよ
r7´ f r┐| 〔/ミヽ>,-、 ̄´
Y ー个‐'t ハ-、_'ゝ、
ヽ ._・ rく ̄ヽト-'丿 ヽ l
/ (・__,)ゝi┬'´ハ` '`|
|ヽ, イ ノ┴くヽヽ、 /
`´ ゝ┬ヘ`ヽ | `ー‐1
あぼーん
あぼーん
277 :
デフォルトの名無しさん:04/10/15 23:36:22
270です。すみません。風呂入ってました。
>>272 そうです。ただ単に文章中のaeiouの個数を調べるだけです。
【例】
a;9
e;0
i;2
o;3
u;1
>>273 ありがとうございます。
tableとかはわからないのですが、参考にして頑張ってみます。
(当方、本当に単純なプログラムしか教えられてないので。)
278 :
デフォルトの名無しさん:04/10/15 23:46:50
いっそのこともう33代目を立ててしまうか。賛成の人!
>>277 回答例のtable[]は文字数をカウントする為の配列だよ、パパ
switchを誰も使わないのは何故だろう…
>>279 ありがとう。
よーし、パパがんばっちゃうぞー。
>>280 かたじけない。
ありがたく頂戴するでござる。
283 :
デフォルトの名無しさん:04/10/16 01:06:10
宿題片付けてください。
入力した文字の順番を入れ替えるというやつで
例:abcdeの場合eabcdを表示させる感じです。
ポインタ使ってお願いします。ダディ。
#include <stdio.h>
#include <string.h>
int main()
{
int i, length;
char str[] = "abcde";
puts(str);
length = strlen(str);
for(i = length; i > 0; i--) str[i] = str[i - 1];
str[0] = str[length];
str[length] = '\0';
puts(str);
return 0;
}
しまった
誤
for(i = length; i > 0; i--) str[i] = str[i - 1];
str[0] = str[length];
str[length] = '\0';
正
for(i = length; i > 0; i--) *(str + i) = *(str + i - 1);
*str = *(str + length);
*(str + length) = '\0';
>>285 不快だから1と名乗るのは止めていただきたい
彼が
>>1だとすると、人の神経を逆撫でする天才だ。
おまえらカルシウムたりなすぎ
牛乳飲んどけ
あぼーん
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + ここはひとつ、オレの顔に免じてさやをおさめろ
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
>>290 ( ゚Д゚)ハァ?
てめーこそ小魚くっとけ
かっぱえびせん
>>293-294 おまえら、これでも喰っとけ!
ト-、___
_,,-‐‐‐‐‐‐t-:、_ `‐、、_
__,,,-‐'´ .:. ,,:.:``‐、;:;:;ヽ_
,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´ ............:.:/: .:. ````ヽ、_
〈=__,,,,__,,,,,,,,,,,,..::::::::::... ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::. `‐、、
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:..... 、 ヽ、
ヒ;-'´ ````:‐:‐:-:-.:__,,、、、、、 ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、ヽT (●)ヽ、
````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:.:.:.:.:.ヽ、__ `-==,
````‐‐:-:-:-:-:‐"
>>296 てめーがオチかよっ!
さっさと宿題もってこねーとCa論争つづけっぞ!
>>298 あたしを食べて♥
ト-、___
_,,-‐‐‐‐‐‐t-:、_ `‐、、_
__,,,-‐'´ .:. ,,:.:``‐、;:;:;ヽ_
,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´ ............:.:/: .:. ````ヽ、_
〈=__,,,,__,,,,,,,,,,,,..::::::::::... ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::. `‐、、
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:..... 、 ヽ、
ヒ;-'´ ````:‐:‐:-:-.:__,,、、、、、 ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、ヽT (●)ヽ、
````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:.:.:.:.:.ヽ、__ `-==,
````‐‐:-:-:-:-:‐"
カルシウム食っても日光に当たらないとビタミンDが活性化されずに
体に吸収されにくいらしいぞ
>>299 ト-、___
_,,-‐‐‐‐‐‐t-:、_ `‐、、_
__,,,-‐'´ .:. ,,:.:``‐、;:;:;ヽ_
,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´ ............:.:/: .:. ````ヽ、_
〈=__,,,,__,,,,,,,,,,,,..::::::::::... ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::. :::`
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:..... 、:::
ヒ;-'´ ````:‐:‐:-:-.:__,,、、、、、 ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、::::
````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:::::
`:::`::
今日は頭だけ食っといてやる!
ドコサヘキサエン酸が多そうだ
小魚のカルシウムは吸収されにくいし
牛乳はカルシウム溶かすし。
どうすりゃいいんだ?
どうせ人間は死ぬんだよ
俺天才だからDHAいらね
>307
ブラックライトでも浴びとけ。
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子はブラック {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
ライト浴びるから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
310 :
デフォルトの名無しさん:04/10/16 16:00:16
ブラックライトでシリコン光りまくり
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
| ,,ノ(、_, )ヽ、,, .::::|
.| ´トェェェイ` .:::::::| +
\ `ニニ´ .:::::/ +
_/,⌒ヽ/ヽ____ノ゙\ ̄]]
( 」 入 (^ヽ / ) TT
,/ ̄ ̄ ̄ ̄ ̄ ̄了 ̄ ̄ ̄P ̄ ̄ ̄三| ̄ ̄ ̄.|
(○), 、(○) / | | .|
| ,,ノ(、_, )ヽ、,, | | | .| (´´
| `-=ニ=- ' | ./⌒ヽ | ./⌒ヽ | (´⌒(´
| ____ | _| ( 0) |_____|_| ( 0) |_/⊃≡3≡≡(´⌒;;;≡≡≡3
 ̄ ヽ人_ノ ̄ ̄ ̄ ヽ人_ノ ヽ人_ノ (´⌒(´⌒;;
前スレのCASL アセンブラを作成せよってのは
CASL IIじゃなくてCASLだよな…。
やっぱり資料少ない…。
情報技術試験の本にないの?今ってCASL IIのみになったのかな
あぼーん
なんだこのスレw
>>315 笑うな!真面目に回答しようとする人間もいるんだ
推奨NGワード
(●)
./  ̄/〃__〃 ./  ̄/ ./
―/ __ _/ ./ ―― / /
_/ / / が _/ _/ /_/ に
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + というスレの趣旨にのっとって
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| + 真面目にクールに行こうじゃないか
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
真面目に次スレたてないか?
あぼーん
>>321 AA貼りまくってるのはお前か!
何故そんなに宿題スレ潰したいのか?
@ノハ@
( ‘д‘)<あいぼんがC/C++の宿題を(ry
AA系のスレ立ては勘弁してくれ
あぼーん
あぼーん
330 :
デフォルトの名無しさん:04/10/16 21:57:28
次スレに質問テンプレを付け加えたほうがいいと思うんだが、次の他に
何かあるか?あれば要望を希望。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:
[3.2] コンパイラ(バージョン):
[3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで/無期限 のいずれか
[5] その他の制限:
質問者は1も見ないのにテンプレ見るとは思えないな
>>331 テンプレに従わない質問に対しては「
>>1嫁」というテンプレに
従うという方向で。
あぼーん
授業単元は消してもいいんじゃね?本質ではあるまいて
335 :
デフォルトの名無しさん:04/10/16 22:12:17
ほんとに新スレ立っちゃうんだね。。
ダディよ… ((+_+))
なんでカリカリしてるんだ?
質問があるなら書けよ、無いなら無関係だろうに。
「次スレ立てないか」はただの煽り
重複スレで削除対象と分かってるから、自分では立てない
このスレも、質問にはちゃんと答えてるからな・・・
ダディが多いのは
>>1のせいだが。
あーぁ、新スレ立っちゃったよ。。
ダディ支援してたのに…
普通は100前後で荒れ終わるのがこのスレでは最後まで
荒れっぱなしだったからなぁ…
良くも悪くも、これでどちらのスレも落ち着きそうだ
340で最後にされとるw
うめうめ
あぼーん
プログラム板は数ヶ月の書き込みが無くてもDAT落ちは無い
ここは、次スレよりも長く残ってしまうかもしれない
次を立てるのが早過ぎたのだよ
こちらを使い切って次を使うほうが利口というものだが、どうだろう
346 :
デフォルトの名無しさん:04/10/16 23:03:09
それがいいね。
あっちはこっちを使い切るまで放置。どうせ落ちないし。
' @ノハ@
( ‘д‘)<あいぼんがC/C++の宿題を 34代目
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
ずーっと風呂ばっかじゃねーかっ!
あぼーん
あぼーん
あぼーん
質問しづらい雰囲気なんですけど・・・
質問した方が収まる気がしないでもない.
355 :
デフォルトの名無しさん:04/10/17 09:48:01
>>5や
>>9が荒らしているんだと思うけど、よほど嫌だったんだな。
スレタイなんて
それが一体何なのさ
麻衣子のはスレ立てないの?
358 :
デフォルトの名無しさん:04/10/17 12:35:07
359 :
258:04/10/17 15:23:36
以前ここで質問して
>>259の方のアドバイスで頑張ってみたんですけどダメでした。
avg=(float)total/5;はtotalをfloatにしろってことですよね?
人間別と科目別のtotalは文字を変えた方がいいのかな?
どなたか宜しくお願いします!
ト-、___
_,,-‐‐‐‐‐‐t-:、_ `‐、、_
__,,,-‐'´ .:. ,,:.:``‐、;:;:;ヽ_
,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´ ............:.:/: .:. ````ヽ、_
〈=__,,,,__,,,,,,,,,,,,..::::::::::... ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::. `‐、、
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:..... 、 ヽ、
ヒ;-'´ ````:‐:‐:-:-.:__,,、、、、、 ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、ヽT (○)ヽ、
````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:.:.:.:.:.ヽ、__ `-==,
````‐‐:-:-:-:-:‐"
こんな感じ?
float avg[3];
float stdevp[3];
/* 略 */
for(j = 0; j < 3; j++){
total = 0;
for(i = 0; i < 5; i++){
total += ten[i][j];
}
avg[j] = total / 5;
stdevp[j] = 0;
for(i = 0; i < 5; i++){
stdevp[j] += (avg[j] - ten[i][j]) * (avg[j] - ten[i][j]);
}
stdevp[j] = sqrt(stdevp[j] / 5);
}
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
そのまま買い物 {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
に行くから待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
━━━━━━━━━━━━━━━━━━━━━━━━━━
(@u@) ダディがクールにC/C++の宿題を片づけて見せます。
━━━━━━━━━━━━━━━━━━━━━━━━━━
では、質問をどうぞ。
━━━━━━━━━━━━━━━━━━━━━━━━━━
もうこのやりとり飽きた。
こんなクソスレにした
>>1も十分こりただろう。
おまえらAAはやめにしないか。
367 :
常識人:04/10/17 19:40:16
>>366 AAを止めろというのが理解できません。
AAは2ちゃんねるの文化の一つであり、なぜ2ちゃんねるにて、AAを否定するのでしょうか?
それは単なるあなたの好みではないですか?
勝手なあなたの我がままを私たちに押し付けないで下さい。
本当に腹立たしいことです。
問題:「常識人」と名乗る人は、例外なく常識が無いような気がするのは気のせいですか?
_,,-‐‐‐‐‐‐t-:、_ `‐、 _ |
__,,,-‐'´ .:. ,,:.:``‐、;:;:;ヽ_ |
,,,_____,,..、_,,,,,-‐‐‐-、、_,,-'´ ............:.:/: .:. ````ヽ _ |
〈=__,,,,__,,,,,,,,,,,,..::::::::::... ;.:.:.:.:.:.:.:.:.:.:.:.:.:.:,;ノ::. `‐、、 |
/ .._____.. .. . `````ヽ- '--‐‐'''''~~~'`::::ヽ:.:.:..... 、 ヽ、 |
ヒ;-'´ ````:‐:‐:-:-.:__,,、、、、、 ....:.:.:.:.:.:.`:.:.:.:,;,;,;,;.:.:.;,;...........ヽ、ヽT (○)ヽ、 ノ
````‐--:-:‐:':´:`:`´:: :::``:..、_:.:.:.:.:.:.:.ヽ、__ `-=ノ
````‐‐:-:-:-:-:‐"
>>367 >AAを止めろというのが理解できません。
本来このスレはC/C++の宿題を片づけるというのが目的であって
AAでレスしていくというのが目的ではないです。
目的の履き違えというのを指摘することはなんら間違っていないと思います。
常識人?名前を読んであきれるわ
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
__
,,r‐''"~~´:::::::::::::゙~''''‐-、,
,,r''´::::::::::::::::::::::::::::::::::::::::::::::::::゙丶、
/:::::::::::::::::::::::::::::,r、::::::::::::::::::::::::::::::::\
/ ......::::::::::::ィ::::::::// ヽ:::::ト、::::::::::::::::........ヽ
/:::::::::::,r::::::/ |:::::/ / ゙、::l ヽ:::::::::、::::::::::::::゙、
/:::::::::::/i::::/,,,,l:::/ / ヽト‐-、:::::|',::::::::::::::::i
i::::::i:::::/'|::/ |/ / ! ヽ::|ヽ:::::i:::::::::l
l:::::::|:::/ .i/ ヽ:| ゙、::::i:::::::::|
|:::::::|/ ゙'! ヽ,!:::::::::|
|::::::;;;;i ━┳ ━┳ |;;;;::::::::|
|::::::;;;;;| |;;;;:::::::::|
|::::::::;;;;l l;;;;:::::::::|
|:::::::;;;;;| |;;;;::::::::|美貴がC/C++の宿題をかたづけるよ 34代目
_,,,r-┴、::;;;;ヽ、 ノ;;;:::::-‐-、
/ 、 、 ヽヽ-,;;;゙ヽ、 \/ ,,,イr/´/ ,r ゙'ヽ、
 ̄ ̄\,,,ヽ、,,i、,,,i、ノ' ̄ ゙゙̄'''‐- ...,,,,,,,,,,,,,,,,,,.... -‐'''~  ̄(,,しL,/,,,r'~,,,-‐' ̄ ̄
このスレAAと雑談取ったらすごい圧縮率
374 :
デフォルトの名無しさん:04/10/17 19:57:29
お願いします。
C++を使い。BorlandC++コンパイラー5.5を使っています。
結果はDOS窓に表示させるヤツです。
問
金銭出納帳クラスを作成せよ。
金銭出納帳は、収入と支出の記録をとる帳簿で、1件の記録の項目は、
「日付」、「費目」、「収入」、「支出」、「残高」、「備考」である。
機能としては、「入金登録」、「支払い登録」、「一覧表出力」、
「費目検索」、「日付検索」、「残高確認」がある。
内部のデータ構造は問わないが、1年分の(366)日以上の記録ができること。
それを使った簡単なサンプルプログラムも作ること。
どうかよろしくお願いします。
会計関連の用語がよくわからないー
もう少し具体的に
376 :
デフォルトの名無しさん:04/10/17 20:07:56
>>375 日付…When?
費目…何に使ったか。
収入…入ってくるお金
支出…出て行くお金。
残高…残ったお金。
備考…メモ
この6つを入力と出力する機能と
一覧を出力する機能が欲しいのです。
また1年(366回)分以上の作業を記録させることができるようにしたいです。
銀行にお金預けた場合は収入?それとも支出?
いや、機能の方、「費目検索」、「日付検索」とか
379 :
デフォルトの名無しさん:04/10/17 20:16:43
>>377 預金の機能はないです。
出納帳とか立派な名前がついてますが用は家計簿です。
>>378 その項目は無視して頂いて結構です。
実はこの問題の後に
「問1と参考に…」という派生問題がいっぱいあるのですが、それは自分で挑戦してみたいので
>>374というより
>>376みたいな感じでお願いします。
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
>>379 全部自分でやりなさい。
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
>>381 ベクトルの大きさ(ユークリッドノルム)
学校で習わなかったのか?
>376
基本構造は、そういう構造体を作って、STL::VECTORに投げ入れるだけでいいと思うよ。
後は必要に応じて全検索すれば、目的のものは近いと思う。
あと、ロードとセーブもね。
384 :
デフォルトの名無しさん:04/10/17 20:48:37
385 :
デフォルトの名無しさん:04/10/17 20:50:18
>>366 糞スレにしたのは1じゃなくて荒らした奴だろ
>387
なんか間違ったこといったけ?
設計が狂ってるとかならわからんでもないけど、
それともvectorがまずいなら、listでも何でもいいよ。
おかしいなぁ・・・。
std::vectorじゃないの?
390 :
デフォルトの名無しさん:04/10/17 21:22:41
お願いします。
初心者です。
C++でBorlandC++Compilerです。
CUI環境です。
問1
※四角形の領域を表すクラスを作成せよ。
っていう問題なんですけど。
まずある1個目四角形の縦と横の長さを決めて、
次に2個目の四角形の縦と横の長さを決めます。
それで1個目が2個目より大きかったら大きい。小さかったら小さいと出力させたいのです。
問2
※円の領域を表すクラスを作成せよ。
これも上と同じような内容です。
お願いします。
>389
あ、ネームスペースか。
これはうっかりしてた。
ごめんなさい。
>390
問題両方とも面積を計算しましょう。
次に比較しましょう。
あとは、なすがままですよ。
393 :
デフォルトの名無しさん:04/10/17 21:44:32
>>392 ただ比較をして出力すらならば、分かるんですが
クラスを作成せよってのが分からないんですよ。
正直、クラスが何者なのかすらわかってないです。
template<class T> class Point {
private:
T m_x;
T m_y;
public:
Point(T a_x = 0, T a_y = 0) : m_x(a_x), m_y(a_y) {
return;
}
T distance(const Point& a_point) const {
T dx = m_x - a_point.m_x;
T dy = m_y - a_point.m_y;
return sqrt(dx * dx + dy * dy);
}
};
template<class T> class Quad {
private:
Point<T> m_point[4];
public:
Quad(const Point<T>& a_p1, const Point<T>& a_p2, const Point<T>& a_p3, const Point<T>& a_p4) {
return;
}
T area(void) const {
/* ('A`)マンドクセ */
}
};
ごめん、面積マンドクサくなった('A`)
四角ってのが長方形、円が真円で回転無しなら簡単だけど
>>391 大文字と小文字を区別するC/C++で「VECTOR」はないだろ。
あ、Quadのコンストラクタもマンドクサです
>395
あ、なるほど。
それは気づかなかった。
ごめんなさい。
class rect{
public:
rect(int w,int h){
width=w;
height=h;
}
int menseki(){
return width*height;
}
int width,height;
};
int main(){
rect r1(100,100),r2(10,10);
if(r1.menseki()>r2.menseki()){
puts("一個目の方が大きい。");
}else{
puts("一個目の方が小さい。");
}
return 0;
}
>390
こういうの??
399 :
デフォルトの名無しさん:04/10/17 22:16:17
>>398 そうゆうのです。
それで一つ目と二つ目を自分で入力したいのです。
rect r1(100,100),r2(10,10);
この行を、
int x,y;
scanf("%d",&x);
scanf("%d",&y);
rect r1(x,y);
scanf("%d",&x);
scanf("%d",&y);
rect r2(x,y);
に変えるだけ。簡単ですよ。
>>390 #include <iostream>
class rect_field {
private:
double height_;
double width_;
public:
rect_field()
: height_(0), width_(0) {};
rect_field(double height, double width)
: height_(height), width_(width) {}
~rect_field() {};
void set_value(double height, double width) {
height_ = height;
width_ = width;
}
double calc_rect() {
return height_ * width_;
}
bool operator < (rect_field r) {
return calc_rect() < r.calc_rect();
}
bool operator>(rect_field r) {
return calc_rect() > r.calc_rect();
}
bool operator==(rect_field r) {
return calc_rect() == r.calc_rect();
}
bool operator<=(rect_field r) {
return calc_rect() <= r.calc_rect();
}
bool operator>=(rect_field r) {
return calc_rect() >= r.calc_rect();
}
bool operator!=(rect_field r) {
return calc_rect() != r.calc_rect();
}
};
int main() {
rect_field r1(1, 5);
rect_field r2(2, 4);
if (r1 <= r2) std::cout << "r1 <= r2" << std::endl;
if (r1 >= r2) std::cout << "r1 >= r2" << std::endl;
if (r1 == r2) std::cout << "r1 == r2" << std::endl;
if (r1 < r2) std::cout << "r1 < r2" << std::endl;
if (r1 > r2) std::cout << "r1 > r2" << std::endl;
r1.set_value(2, 2);
r2.set_value(3, 1);
if (r1 <= r2) std::cout << "r1 <= r2" << std::endl;
if (r1 >= r2) std::cout << "r1 >= r2" << std::endl;
if (r1 == r2) std::cout << "r1 == r2" << std::endl;
if (r1 < r2) std::cout << "r1 < r2" << std::endl;
if (r1 > r2) std::cout << "r1 > r2" << std::endl;
return 0;
}
404 :
390:04/10/17 23:38:51
みなさん、出来ました。
どうもありがとうございました。
なんかスレタイが赤字で表示されてるんですけど・・・
こちらjane dow style 040829
問題無いですけど・・・
navi2ch 1.7.5
http://pc5.2ch.net/test/read.cgi/tech/1097034002/560-562 ここで質問したのですが、宿題スレへ誘導されましたのでこちらでお願いします。
a=11.2 b=9.3 c=7.2 d=6.3 という4つのレートがあったとします。
これらを組み合わせて、規定した値にもっとも近い組み合わせを出したい
のですが、いくら考えてもアルゴリズムが出てきません。
解は複数出て問題ありません。よろしくお願いいたします。
例:基準値を103とした場合、
11.2×4=44.8
9.3×2=18.6
7.2×2=14.4
6.3×4=24.2 で合計がぴったり103となります。
基準値が22の場合は、
9.3×1=9.3
6.3×2=12.6 で合計21.9が最も近い数字となります。
(7.2×3=21.6は最も近い組み合わせでないので不可)
これは・・・ヤツのニオイがプンプンするぜ!
「ナップサック問題」と同じニオイだ!
やってみなきゃわからんというやつだな。
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
>>379 やせた?
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
411 :
デフォルトの名無しさん:04/10/18 01:17:54
他方にも書いたのですが、レスがなかったのでこちらにも書かせていただきます。
Linux 2.4.23 SCHED.C を修正してFair Share Schedulingにしなさい。
というものです。どうか、よろしくお願いします。
おれっち、Linuxの事詳しくないんだけど、
それって作業のボリューム凄くね?
>407
a,b,c,d それぞれの数に制限はないと思っていいの?
あと、複数でて問題ありませんっていうけど、1つだけでもいいの、全部ださなきゃいけないの?
414 :
379:04/10/18 02:08:01
>>410 やせてないよ。
まだ、出来てないよ。
終わらないよ。
415 :
デフォルトの名無しさん:04/10/18 02:54:28
>412 そんなに多くはないはずです。多分、goodness()の一部を変えるだけだと
思うのですが。。。
416 :
デフォルトの名無しさん:04/10/18 04:18:19
>>415 weight += 20 - p->nice;
を
weight += 20;
に書き換える。
417 :
デフォルトの名無しさん:04/10/18 06:44:27
>>416
/* .. and a slight advantage to the current MM */
if (p->mm == this_mm || !p->mm)
weight += 1;
weight += 20 - p->nice;
/* egid modifier */
/* group egids by priority */
if (p->egid >= 0 && p->egid <= 20) weight = weight * 10;
else if (p->egid >= 21 && p->egid <= 40) weight = weight * 5;
else if (p->egid >= 41 && p->egid <= 80) weight = weight * 2;
else weight = weight;
goto out;
こういう、感じでしょうか?ってこれは、他のクラスメートが書いたもので
これを、そのまま写して提出することも出来ないのですが、。
この、アルゴリズムがよくわかっていないのです。
egidのナンバーは、どこから取得するのでしょうか?上下のリミットは
あるのでしょうか?3つのグループに分けているのは??
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
>>417 全部自分でやりなさい。
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
419 :
デフォルトの名無しさん:04/10/18 11:38:44
お願いします。
int a=5, b=10;
int *p[4] = {NULL,&a.&b};
int **x = &(p[2]);
上のように変数が宣言され初期化されている時、次の値はどうなるか答えなさい
**(x-1)
*(*(x+1)+1)
*(++x)
ポインタ全然わっかんねぇ…
>>419 **(x-1) → 5
*(*(x+1)+1) → ?
*(++x) → ?
マンドクサがらずに図を書いてみなはれ
p[4]: | NULL | aへのポインタ | bへのポインタ | 不定 |
x: p[2]へのポインタ、p[2]はbへのポインタ
**(x-1): p[2]の前、つまりp[1]で、aへのポインタだから、aの値
*(*(x+1)+1): p[2]の次、p[3]は不定じゃねぇかこのヤロウ
*(++x): 不定だっつーのこのヤロウ
>420-421
ありがdでした!!
下つはやっぱり不定ですよね?
私も「??」となってたんですが
2つも不定なのはアリかYO!と思いまして…
誤植じゃなかったらいいんですが…
423 :
407:04/10/18 12:17:01
>413
解は全部ほしいです・・・
その中で、a,b,c,dの×(掛ける)いくつ の数の和が一番少なくて済むものを
選ぼうと思っているので、解は全部出してほしいです。
407の基準値103の場合はaが4、bが2、cが2、dが4なので計12です。
複数解がある場合、この合計値が一番小さくなるものを選びたいです。
a,b,c,d それぞれの数に制限はありません。
>>423 >a,b,c,d それぞれの数に制限はありません。
負数もあり?
Cの課題です。
任意の文字列で初期化した文字列の中から、指定された文字列の数を数えるプログラムを作成。
ただし、文字列の指定はコマンド引数を使うこと。
例
文字列を"market share"で初期化
>./a.out ar
"market share" - ar : 2
>./a.out e
"market share" - e : 2
>./a.out data
"market share" - data : 0
おねがします!
#include <stdio.h>
#include <string.h>
int main(int ac, char *av[])
{
char text[] = "market share", *t;
int n = 0;
if (ac == 2) {
for (t = text; (t = strstr(t, av[1])) != NULL; t++)
n++;
printf("\"%s\" - %s: %d\n", text, av[1], n);
}
return 0;
}
428 :
407:04/10/18 19:45:09
>>425 負数はないです。小数点以下は1桁だけです。
また、種類も最大4種類(abcd)のみです。
std::stringで中身を空っぽにするときはどうすればいいんですか?
そういうメソッドってありますか?
resize(0)とか空のオブジェクトか空文字列代入するとか
>>430 DP(動的計画)法使えばもっと早く解けるだろ
434 :
デフォルトの名無しさん:04/10/18 21:03:08
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *fp;
char buf[256], fname[256], sstr[256];
printf("検索されるファイル名 : ");
if (fgets(buf, sizeof buf, stdin) == NULL ||
sscanf(buf, "%s", fname) != 1) return 1;
fp = fopen(fname, "r");
if (fp == NULL) {
printf("ファイル %s が見つかりません\n", fname); return 1;
}
for (;;) {
printf("検索文字列 : ");
if (fgets(buf, sizeof buf, stdin) == NULL ||
sscanf(buf, "%s", sstr) != 1) break;
while (fgets(buf, sizeof buf, fp) != NULL)
if (strstr(buf, sstr) != NULL)
fputs(buf, stdout);
rewind(fp);
}
fclose(fp);
return 0;
}
このプログラムの検索文字列を入力した時に、検索ファイルに文字列が見つからなかった場合に、該当する文字列は存在しませんと出力するにはどうしたら良いのでしょうか?教えてください。
>>434 if (strstr(buf, sstr) != NULL)
fputs(buf, stdout);
↓
if (strstr(buf, sstr) != NULL) {
fputs(buf, stdout);
} else {
fputs("該当する文字列は存在しません\n", stdout);
}
>432
ありがとう。
>>431 std::basic_string<>::clear()
英語の辞書をアルファベット順にソートするプログラムなんですけど
僕が作ってみた↓のプログラムでは全然ソートできましぇん
エラーや警告もなくわからんちんです
ちなみに辞書のデータはCドライブのdata.txtに入っていて
英語 品詞 日本語の順で
z z z
a a a
y y y
b b b
x x x
という感じになっています
どうやったらうまくソートできるでしょうか
誰かやんわりと教えてくださいお願いします
#include<stdio.h>
#include<process.h>
#include <string.h>
struct dictionary
{
char english[15],pos[10],japanese[15];
};
void main()
{
int i=0;
struct dictionary item[100],work;
FILE *fp;
if((fp=fopen("c:\\data.txt","r+"))==NULL)
{
printf("辞書のファイルが見つかりません。");
exit(1);
};
while(fscanf(fp,"%s %s %s\n",&item[i].english,&item[i].pos,&item[i].japanese)!=EOF)
{
i++;
};
int strcmp(const char *string1,const char *string2);
for(i=0;i<99;i++){
if(strcmp(item[i].english,item[i+1].english)>0){
work=item[i];
item[i]=item[i+1];
item[i+1]=work;
}
}
fprintf(fp,"%s %s %s\n",item[i].english,item[i].pos,item[i].japanese);
fclose(fp);
printf("ソート完了");
}
442 :
デフォルトの名無しさん:04/10/18 21:58:54
>>441 ありがとうございます
小一時間ほど考えてみます
全然わからない・・・
445 :
デフォルトの名無しさん:04/10/18 22:39:09
>>435さんお答えいただきありがとうございました。
435さんの言われたとおりにプログラムを変えてみたんですが、
文字検索を成功した時にも該当する文字列は存在しませんと出ました。
どうすればいいのでしょうか?教えてください。
447 :
デフォルトの名無しさん:04/10/18 23:04:25
ガウスの消去法ヒントな。
for(k=0;k<n-1;k++)
for(i=k+1;i<n;i++){
w[i][k]=w[i][k]/w[k][k];
m=w[i][k];
for(j=k+1;j<=n;j++)
w[i][j]=w[i][j]-m*w[k][j];
}
x[n-1]=w[n-1][n]/w[n-1][n-1];
for(k=n-2;k>=0;k--){
for(sum=0,j=k+1;j<n;j++)
sum+=w[k][j]*x[j];
x[k]=(w[k][n]-sum)/w[k][k];
}
まぁガンバレや。
449 :
デフォルトの名無しさん:04/10/18 23:26:33
450 :
デフォルトの名無しさん:04/10/19 02:55:24
ageageageage
451 :
449:04/10/19 03:04:00
すみません、マルチしてしまいました。
>>146 >上書き、select=1を選択した場合、出力されたファイルが真っ白になります。
if(select == 1) の break で抜けるのは while(1){ だろ?
当たり前だ。
>>445 見つかったかどうかを示すフラグを用意しろ。
>>453 何が問題なの?
同名のファイルがない場合でもbreakでwhile(1)を抜ける、
つまりselectに1を入れるのも上記の場合も全く同じ条件でしょ?
fclose(fo)に問題が?と思ってselectのelseの方に移動させたけどやっぱり真っ白。
456 :
デフォルトの名無しさん:04/10/19 09:06:44
>>456 なにがどう、うまくいかないんです?
エラーが何なのかわからないけど、とりあえず
> complex(complex &c);
> complex &operator=(complex c);
> complex operator+(complex c);
このへんは引数をconstの参照にしとけ
complex(const complex &c);
complex &operator=(const complex &c);
complex operator+(const complex &c);
>>456 ふつう Foo & operator=(const Foo & foo); とか?
>>457-458 レスありがとうございます。
エラーはこんな感じででました。
complex.cpp: function 内の `int main()':
complex.cpp:31: error: no matching function for call to `complex::complex(
complex)'
complex.cpp:11: error: candidates are: complex::complex(complex&)
complex.cpp:31: error: initializing argument 1 of `complex&
complex::operator=(complex)'
言われたとおり引数をいじくるとエラーを出さなくなりました。
operator=()とかを参照にしなかったのはc=c1+c2*c3みなたいなことを
するときにまずいかなと思ってしたのですが。
思っただけで試してないので、今から試してみます。
constをつけた時の参照は、そうでない時の参照と動作が異なる。
例のソースだと加算結果の一時オブジェクトを参照で渡せなくてエラーになってるのかな。
# 代入演算子の引数が実体なんで、それを作る為にコピーコンストラクタが呼ばれてる
const付けとけば一時オブジェクトでもOK。
このへんはややこしい所だけど覚えとかないと後々エライ目にあう。
complex &complex::operator=(const &c)
complex complex::operator+(const &c)
complex complex::operator*(const &c)
にしてやるとc=c1+c2*c3もコンパイルが通りました。
operator+()やoperator*()は一時的なオブジェクトを返すので、
それをoperator=()の引数に参照として渡すのはまずいと思った
のですが、コンパイルが通ったと言うことはまずくはないのですか?
461にもあるがエラーになったのはoperator=()じゃなくcomplex(complex &c)の方。
正確には一時オブジェクトを引数にしてcomplex(complex &c)を呼べなかったわけだが。
const付きの参照が基本、実体だと代入の度にコピーコンストラクタがセットで呼ばれる事に。
>>461 すごくややこしいですね。。
じつは行列のクラスを自作しててオペレータオーバーロードしたところが
妙な動作をする事があって収拾がつかなくなりまして。
それでまずは簡単なclassを作ってオペレータオーバーロードを
理解しようと思ったのですがconstやら&を引数に付けたときの動作が
いまひとつわかんないですね。。
>>464 とりあえずプログラミング言語C++第3版のvalarrayの解説でも読んだほうがいいと思うが。
いいとっかかりになる。
constだからok
>>463 なるほど。complex(const &c)とするとほかのオペレータは値渡しでもいけました。
なんつーか、C++ってびみょーすぎ。。まぁC++始めて間もないからってのもあるでしょうけど。。
>>464 今ちょうど図書館から借りてきてるので読んでみます。
>>453 何が問題なの?
同名のファイルがない場合でもbreakでwhile(1)を抜ける、
つまりselectに1を入れるのも上記の場合も全く同じ条件でしょ?
fclose(fo)に問題が?と思ってselectのelseの方に移動させたけどやっぱり真っ白。
>438
遅くなったけど、ありがとう。
1/2
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define size 3
int func(int a[][size], int b[][size]) {
int i, j, k, s, c[size][size];
for(i = 0; i < size; i++) {
for(j = 0; j < size; j++) {
s = 0;
for(k = 0; k < size; k++) {
s+= a[i][k] * b[k][j];
}
c[i][j] = s;
}
}
for(i = 0; i < size; i++){
for(j = 0; j < size; j++) {
printf(" %d ", c[i][j]);
}
printf("\n");
}
printf("\n");
return c;
}
2/2
int main(int argc, char*argv[]) {
int i, j, k;
int a[size][size], b[size][size], c[size][size];
srand(clock());
for(i = 0; i < size; i++){
for(k = 0; k < size; k++) {
a[i][k] = rand()%10;
b[i][k] = rand()%10;}
}
for(i = 0; i < size; i++){
for(j = 0; j < size; j++) {
printf(" %d ", a[i][j]);
}
printf("\n");
}
printf("\n");
for(i = 0; i < size; i++){
for(j = 0; j < size; j++) {
printf(" %d ", b[i][j]);
}
printf("\n");
}
printf("\n");
c = func(a, b);
for(i = 0; i < size; i++){
for(j = 0; j < size; j++) printf(" %d ", c[i][j]);
printf("\n");
}
}
二次元配列に適当な値を入れて積を計算するプログラムなんですけど、コンパイルすると関数の
returnの所と、mainのcに関数の戻り値を入れる所でエラーが出ます。なぜでしょうか
すみません、括弧の区切り方とか変になってしまいました
・エラーは、その行とエラーの詳細を書きましょう。
エラーメッセージが出た場合はそのままコピーしてください。
申し訳ないです
clock.c 28: Warning: illegal pointer combination(return)
clock.c 58: l-value required (=)
28行目は return c; で、58行目は c = func(a, b); の所です。
>>474 funcにa,b,cを渡して処理するように作りかえれ。
何故かというなら、どっちもcがintの二次元配列だから。
28行目の警告は、int型を返すべきfunc()で配列(ポインタとみなされる)を返そうとしているから。
58行目は、配列にintを代入しようとしている、型が違うしそもそも配列への代入はできない。
l-value required : left-value、 左辺値、代入式で左側に置ける式が必要、というエラー。
ありがとうございます。
度々すみませんが、
>>471-472のプログラムでfuncの中のcを
戻り値として返すにはどうすればいいのでしょうか。
479 :
デフォルトの名無しさん:04/10/19 21:23:25
#include <stdio.h>
int main(void)
{int i;
int na=0,nb=0,nc=0;
char letter[100];
while(gets(letter)!=NULL)
for(i=0;i<strlen(letter);i++)
switch(letter[i])
{ case 'a':na++;break;
case 'b':nb++;break;
case 'c':nc++;break;
}
printf("a:%3d,b:%3d,c:%3d\n",na,nb,nc);
}
上記はデータを読み込んでa,b,cの文字の出現回数を調べるプログラムです。
例えば、aaaaaaabbbbbbbbbccというデータを読み込んだとすると、
出力例は a:7 b:9 c:2となります。
このプログラムを、aからzまでの文字を数えるプログラムに書き換えたいのですが、
このままだと case 'a':na++;break; が z まで繰り返されて見栄えが悪くなります。
どうにかして短くしたいのですが、どんな風にすればいいでしょうか?
480 :
デフォルトの名無しさん:04/10/19 21:30:42
int array[26];
array[letter[i]-'a']++;
arrayは各文字のカウンタになっていて、出現した文字のカウンタを数え上げる.
>>478 配列を戻り値とする場合、関数のデータ型は何にすればいいんですか?
>>481 だからaとbとcのポインタ渡してそこで処理しろよ!
戻り値なんていらねえだろ!
>>480 入力が標準入力で何入力するか分からんから、
if(letter[i] >= 'a' && letter[i] <= 'z') array[letter[i]-'a']++;
の方がいいんじゃない?
484 :
デフォルトの名無しさん:04/10/19 21:58:47
>>480 ついでに
int array[26]={0}; もね
486 :
デフォルトの名無しさん:04/10/19 22:25:39
#include<stdio.h>
#include<conio.h>
void main(void) {
charkey;
for(;;){
key = inp(0x60);
printf("%x\n",key);
if(key == 0x01){ /*ESCで終わります */
break;
}
}
}
外部シンボル'_inp'が未解決、と出ます。
お願いします。教えてください。(´Д`)
488 :
デフォルトの名無しさん:04/10/19 22:29:51
>>486 inp(0x60)?
inp()を消したらどうなる?
int?
>>486 その本と同じOS/言語/PC環境使ってるか?
>>486 inp()を_inp()にしてみろ。
非標準の関数だから、_で始まる名前になってる可能性。
つか、使ってる環境くらい書けー
492 :
486:04/10/19 22:39:47
インストールしないといけないとしてなかったみたいです(´Д`)
すいませんでした。
493 :
486:04/10/19 22:40:33
>インストールしないといけないとしてなかったみたいです
の
訂正です。(´Д`)
>>192 使ってるのがMSのコンパイラなら、_inpだけど?
なに怒ってるの?
>>496 使ってるのがMSのコンパイラなら、inpでも_inpでも動くけど?
なに言ってるの?
>>482 どうしても配列を戻り値として返したい場合はどうすればいいんでしょうか
>>500 mallocで配列を確保してそのポインタを返す
呼び出し元でfree忘れるとリークするけど
struct HOGE {
int hage[size][size];
};
HOGE func(〜) {
HOGE c;
〜
return c;
}
int main(int argc, char*argv[]) {
HOGE c;
〜
c = func(〜);
}
>502より>504の方が奥が深いと感じるのは俺だけですか?
すぐスタックが終わりそうだけどな
スタックが終わる?なんで?
別に再帰使うわけじゃないだろ。
現状、すでに配列で確保してるソースを置き換えるんだろ?
>>504 (・∀・)ソレダ!!
ありがとうございました
512 :
359:04/10/20 02:23:24
>>512 ちっとは考えたの?
一人ずつの全科目の得点の合計が計算できて
一科目ずつの全員の得点の平均が計算できないわけがないと思うが。
自分で考える人がここで聞くわけ無い
平均って合計を人数で割るだけじゃん・・・
517 :
デフォルトの名無しさん:04/10/20 07:32:49
#include <stdio.h>
#include <string.h>
int main(void)
{
FILE *fp;
char buf[256],sstr[256];
fp = fopen("検索するファイル名","r");
if (fp == NULL) {
printf("ファイルが見つかりません\n");
return 1;
}
for (;;) {
printf("文字検索?");
if (fgets(buf, sizeof buf, stdin) == NULL ||
sscanf(buf, "%s", sstr) != 1) break;
while (fgets(buf, sizeof buf, fp) != NULL)
if (strstr(buf, sstr) != NULL)
fputs(buf, stdout);
printf("\n");
rewind(fp);
}
fclose(fp);
return 0;
}
このプログラムの検索文字列を入力した時に、検索ファイルに検索文字列が見つからなかった場合に、該当する文字列は存在しませんと出力するにはど
うしたら良いのでしょうか??(該当する文字列は存在しませんと出力後、また検索文字列を入力に戻る)どうぞ教えてください。
>>500 たとえばA関数からB関数を呼び出して、A関数に配列を返したい時、
A関数で配列を作っておき、B関数からその配列を操作する、という形になります。
テスト用に.cファイルを作って、以下のようにやってみてください
#include <stdio.h>
#include <stdlib.h> //for calloc
void test(int *hairetu);
void main()
{
int *hairetu = calloc (sizeof(int),5);
test(hairetu);
//output result
printf("[0]=%d,[1]=%d,[2]=%d,[3]=%d,[4]=%d\n",
hairetu[0],hairetu[1],hairetu[2],hairetu[3],hairetu[4]);
}
void test(int *hairetu)
{
int i;
for (i=0;i<5;i++)
{
hairetu[i]=i*i;
}
}
この場合、
>int *hairetu = calloc (sizeof(int),5);
で、hairetuと言うint型の(5つの箱を持つ)配列を確保しています。。
気持ち的にはint hairetu[5]; に近いです。。
もしchar型にしたいなら
char *hairetu = calloc (sizeof(char),5);
とすればいいです。ただし、test関数の宣言を
void test(char *hairetu);
とすることに気をつけてください。
長レス失礼しました。。
>>517 while~fputsの3行を、
while (fgets(buf, sizeof buf, fp) != NULL)
if (strstr(buf, sstr) != NULL)
fputs(buf, stdout);
else
printf("該当する文字列は存在しません");
とするといいのではないですか?
>>518-519 callocする意味がまったくわかんね。
testの中で要素数きめ打ちしちゃってるし。
なんか最近質問者が粘着するケースが多いな。
少しは自助努力してみようとは思わんもんかね。
>522
なんかもーね、趣味でプログラムやるんじゃなくて
授業でやらされてる感が漂ってくる。
すれたいが宿題を片づけますだからな。
質問者でも回答者でもない奴がバカやってんだろ
526 :
デフォルトの名無しさん:04/10/20 10:23:05
527 :
526:04/10/20 10:24:40
char s[]="abcdefghij";
int t[10],n=6;
void check(void)
{
一致判定
}
void loop(void)
{
char *p;
--n;
p=s;
while(*p){
if(islower(*p)){
t[n]=*p-'a'+1;
*p=toupper(*p);
}
if(n){
loop();
}else{
check();
}
*p=tolower(*p);
}
p++;
}
n++;
}
528 :
526:04/10/20 10:25:55
main()
{
loop();
printf(結果出力)
return 0;
}
誰か>506の言っている意味を教えてくださいな!!
あまりにも大きいサイズの型値渡しで戻り値とするのは好ましくないとゆうことですか?
みすった。
>サイズの型値渡しで戻り値
サイズの型を値渡しで戻り値
自動変数、関数の引数や戻り値はスタックって領域に積まれる
>>531 ん〜。なんていうか、当たり前のことだね。ボケてたわ。ごめん。
このボケが!
534 :
デフォルトの名無しさん:04/10/20 13:04:01
sinの逆関数ってasin()でいいんですよね?
rを求めたくて
r=asin(x*PI/180);
としたんですが計算機で求めた答えと違ってしまいます。
ちなみにx=0.107127で計算機だと6.14972、
プログラムの結果は0.00187になってしまいます。
>>534 おいおい、asin()呼んでから角度変換するんだよ。
536 :
534:04/10/20 13:25:05
>>535 なるほど〜、早速直してみたらうまくいきました。
ありがとうございました。
☆保守性の良いプログラミング☆
条件テーブル名:「table.txt」とする
データは空白で区切られている
====================
(実行画面)
>プログラム名↓
点数?75↓
評価:良
点数?35↓
評価:不
点数?^Z
>
===================
(内容)
下限〜上限 評価
0 59 不
60 69 可
70 79 良
80 100 優
===================
#inculde<stdio.h>
#inculde<process.h>
void main(void)
{
FILE *fp;
/* 以下をコーティングしてください */
なんでprocess.hが要るのかと。
539 :
デフォルトの名無しさん:04/10/20 14:39:15
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::|
>>537 氏ね
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
全角数字使わないと駄目なのか
めんどくさいからやめた
このスレで教える側の人は日曜プログラマー?
それはC/C++の宿題なのか?
>>500 mainの戻り値はintしかできない。(voidなんて言うなよ)
549 :
547:04/10/20 18:29:08
/|
|/__
ヽ| l l│<ハーイ
┷┷┷
_, ,_ パーン
( ゜д゜)
⊂彡☆====== /|
__ |/
ヽ| l l│
┷┷┷
ちょっとエスーパーになってみる。
おそらく>547は>471のソースでmain関数がreturnを記入していないから
戻り値が無いぞと言いたいのでは。
でも、結局間違ったことを言ってるけど。
悩んでるんですが、C++で任意の個数の配列に入った数字を並べ替えたものを
全パターン出力したいんです
例えば3つの1,2,3なら9パターンを出力したい。
4つの1,2,3,4なら16パターンを
この場合2元配列の方がいいんですか?
いや、今ひとつ書き方がわからず悩んでます。
どうやって任意の個数に対応させるもんでしょうか
123
132
213
231
312
321
のこり3パターンは・・・
>>553 #include <iostream>
#include <algorithm>
template <typename T>
void print_array(const T& t){
for(int i = 0; i < sizeof(t) / sizeof(t[0]); ++i) std::cout << t[i] << ' ';
std::cout << std::endl;
}
int main(){
int a[] = {1, 2, 3, 4};
do{
print_array(a);
} while(std::next_permutation(a, a + sizeof(a) / sizeof(a[0])));
return 0;
}
for文を用いて
*
***
*****
とアスタリスクをピラミッド状に作るプログラムお願いします
できれば解説も含めて。特にFor文の制御部分
>>559ではうまく表現できませんでしたけど
*
***
*****
散々概出だし
じゃあヒント
□□□■
□□■■■
□■■■■■
■■■■■■■
三重for文ですか・?
暇だから作ってみよう
>>559 #include <iostream>
#include <string>
#include <iomanip>
int main()
{
static const int n = 3;
for (int i = 1; i <= n; ++i)
std::cout << std::setw(n + i - 1) << std::string(std::string::size_type(2 * i - 1), '*') << std::endl;
}
568 :
123:04/10/20 23:59:02
標準入力からAij(i=1,2,j=1,2,3),Bjk(j=1,2,3,k=1,2)の値を読み込み下記の行列x,yの席を求めるプログラムを作成する。ただし、Aij,Bikは正整数とする
a11 a12 a13
x=a21 a22 a23
b11 b12
y=b21 b22
b31 b32
お願いします
#include<stdio.h>
main() {
int n, i, j;
printf("enter the steps : ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
for(j = 0; j < n-i; j++) {
printf(" ");
}
for(j = 0; j < i*2+1; j++) {
printf("*");
}
printf("\n");
}
}
571 :
デフォルトの名無しさん:04/10/21 00:51:28
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:winXP
[3.2] コンパイラ(バージョン): Microsoft Visual Studio .NET 2003 のMicrosoft Visual C++
[3.3] 言語:C
[4] 期限:今日中
[5] その他の制限:特に無し
C言語初心者です。課題で迷っています。
strcmp関数(文字列の比較する関数)と同じ働きをする関数αを作りたいですがどのように作れば良いのか分かりません。教えて下さい。
>>571 お前!あっちこっちで聞いてんじゃねえよ!
573 :
デフォルトの名無しさん:04/10/21 00:55:08
標準入力からAij(i=1,2,j=1,2,3),Bjk(j=1,2,3,k=1,2)の値を読み込み下記の行列x,yの席を求めるプログラムを作成する。ただし、Aij,Bikは正整数とする
a11 a12 a13
x=a21 a22 a23
b11 b12
y=b21 b22
b31 b32
お願いします
間違えて名前に番号入れちゃったのでもう一度
テンプレ使った質問はじめて見たな・・・
ここまで酷いマルチも久々だが。
577 :
571:04/10/21 01:00:51
int 関数名(const char *p)
{
return strlen(c);
}
はひょっとしたら利用不可能だったかも知れません。(うる覚え)
578 :
571:04/10/21 01:02:12
↑今回の課題での制限です。
FreeBSDあたりからstrcmpのソースパクってくれば?
>>571 int strcmp(const char *str1, const char *str2)
{
const char *p1 = str1, *p2 = str2;
unsigned char c1, c2;
while ((c1 = (unsigned char)*p1++) == (c2 = (unsigned char)*p2++)) if (!c1) return(0);
return c1 - c2;
}
int alpha(const char *a, const char *b)
{
if (*a == 0 && *b == 0) {
return 0;
}
if (*a == 0) {
return -1;
}
if (*b == 0) {
return 1;
}
if (*a > *b) {
return 1;
}
if (*a < *b) {
return -1;
}
return alpha(a + 1, b + 1);
}
585 :
512:04/10/21 01:23:57
>>513 のように言われたので頑張ってみたんですけど
いくらやっても縦方向の集計が上手くいきません。。
二次元配列の方は簡単だったのに、、、
どなたか力をお貸し下さい!
一日考えて出来ないなんて・・・致命的・・・
俺答え直書きするの好きじゃない人だから答え教えてあげられないけど。
とりあえず。
例の横方向の合計のプログラムは完璧に理解してる?
seiseki[i].ten[j]
で i 人目の j 科目目の得点を取ってこれるよね?(変数名のつけ方が腐ってるけど)
i を固定して j を 0<=j<3 の範囲で動かせば、横方向の統計が取れるわけだ。
んじゃ j を固定して i を動かせば縦方向の統計が取れるよね?
for(j=0;j<3;j++){
goukei=0;
for(i=0;i<5;i++){
seiseki[j].total += seiseki[j].ten[i];
}
printf("%8d\n",seiseki[j].total);
}
ってのはずっとやってるんだけど
上手くいかないです
goukei=0;じゃなくてtotal=0;でした
それじゃ j 人目の i 科目目の得点を取ってきてるだろ。
変動させる変数を逆にしたって、添え字も逆にしたら元に戻っちまう。
相変わらず横方向の統計を取ってきてる。
# しかもインデックスはみ出て強制終了の危険すらある。
一行ずつ、何をやってるのか考えながら自分のコード読んでミソ?
出来ればそのときの変数の値とかもノートにメモりながら。
ループとかも、わかった気にならないで一文字も見逃さないつもりでしっかり解読してみ。
592 :
571:04/10/21 02:35:41
このプログラム目的?は文字列の比較です。
このソースの合わしたいですが苦戦しています。
#include <stdio.h>
#include <string.h>
int strlen(char*);
void main(void)
{
/*文字列の構造体*/
char str1[81]; //str1の領域確保
char str2[81]; //str2の領域確保
int c;
printf("文字列を入力して下さい。\n");
scanf("%s",str1); //str1に文字列入力
printf("入力した文字(文字列)は『%s』です。\n",str1);
printf("文字列を入力して下さい。\n");
scanf("%s",str2); //str2に文字列入力
printf("入力した文字(文字列)は『%s』です。\n",str2);
if(strlen( str1, str2 )){
printf("入力された文字(文字列)は一致しませんでした。\n");}
else{
printf("入力された文字(文字列)は一致しました。\n");}
/*strlen関数の定義*/
いいかげんstrlenという名前やめりゃいいのに
>>592 int strlen(char*);なのか、int strlen(char*, char*);なのか、どっちだ?
そのソースの中に両方混じってるじゃないか。
いつからstrcmpからstrlenにかわったんだ?
>>598 納豆またキタ━━━━ヽ('∀`)ノ━━━━!!!!
あきらかに悪戯だろ
#define alpha strcmp
たんにスタックオーバーなのかも?しれないですけど。
>>602 あのー(´・ω・`)ショボーン
↑
なんですか、これは。
のっけから(´・ω・`)ショボーンなんてしてたら、みんな読む気もなくなってしまいますよ。
ここは(´・ω・`)ショボーンという顔文字が嫌いな人が多いのですから。
なぜならここは顔文字が目的ではなく宿題をとくのが目的だからです。
思わず噴飯してしまいそうな論理ですが、実際にこんなことを言うやからがいるのです。(
>>369、ここではAAですが)
わかりますか、あなた?
あなたのパソコンスペックでは無理であるとおっしゃっていますが、では、スペックを教えていただきたい。
私は、本当にスペック不足なのは、パソコンじゃなくて、あなたの頭だと思っていますので。
>>602 ・斜めの計の求め方に間違いあり。
・計を求めたら、fに積まずにその場で分岐せよ。
#つまり、fは要らない。
・論理値はbool型を使うべし。
606 :
デフォルトの名無しさん:04/10/21 16:24:17
常識人さん。
私はあなたの態度が気に入りませんね。
確かに、あなたの言うことも一理ありますが、
だからといって、あなたがここで自演して(・∀・)イイ!!
道理はないでしょう。
常識人さん。
私にはあなたが、優れた才能を持っていて、これまで
数々の、無能なプログラマの宿題を手伝ってきたという
のは、あなたのレスからもよくわかります。
しかし、あなたのようなケンカごしのレスでは、誰も
幸せになれません。あなただって、そんなレスするのは
気分が悪かったはずです。もう止めましょうそういうのは。
皆さん。スレタイに関係ない内容のレスをだらだらしてしまってすみません。
立て読みとか、ネタとかじゃなくて、これは私の本心なんです。
常識人さんには一度きちんと、話しておかなければならないと思ったので。
AA飽きたらコピペネタか
512KBって、、PC98ですか?
>>608 斜めの計算、直ってるじゃん。
どっちみち、そのロジックだとちょっとやそっとじゃ終わらないと思うけどね。
処で、スタックオーバフローを懸念していたようだけど、有り得ないから大丈夫。
#何故有り得ないかは自分で考えてみよう。
>>609 ごめん512MBです。
>>610 >どっちみち、そのロジックだとちょっとやそっとじゃ終わらないと思うけどね
そうですか。でもハイスペックな最近のPCだと答えはすぐでるのでしょうか。
>処で、スタックオーバフローを懸念していたようだけど、有り得ないから大丈夫。
再帰が自身も入れて高々26回コールぐらいじゃ大丈夫ということですね。
>>611 N=5でPen4 2.53GHz&DDR SDRAM 1GBでCPU時間を10分かけても無理。
見ていて思うんだが、みな「strcmpは不等を-1または1で表す」と
勘違いしてないか?ISO/IEC 9899:1999で正(負)の数としか
規定されてないんだが。
>>611 試しに判定ロジックを改良してみたけど焼け石に水。
メモリ使用量も大したことないけど、反復回数がN=3でも187769回だそうだから、
N=4だととんでもないことになるんでないかな?
#しかし、10万回オーダーの再帰突入が0.01秒か…時代は変わったなw
見ていて思うんだが、既定されていないからと言って1や-1を返しちゃいけないと勘違いしてないか?
>>612 あわわ。まぢ。
試していただきありがとう。
でもちょっと気になったので計算してたらとんでもない数になった。
9^9では387420489回転を必要で
25^25では88817841970012523233890533447265625回転にも上る
処理数ですか。この差はでかいですね。
さっさと計算してみれば速かったみたい。
他スレの回答も含めて見ていたら、わざわざ引き算しておきながら
三項間演算子使って-1か1にしていた輩が多かったもんでね。
>>614 >#しかし、10万回オーダーの再帰突入が0.01秒か…時代は変わったなw
ほほぉー。そんなに速いのか。ふむふむ。
それは、その当該スレで言わんと意味不明なんでは?
>>613 これでどう?
int mystrcmp(const char *s1, const char *s2)
{
int c, d;
while (!(c = *s1++ - (d = *s2++)) && d)
;
return c;
}
>>618 ってことで、もっとましなアルゴリズムを実装するようにw
#つーか、アルゴリズム辞典見れば答えが出てたような。
全部詰め込んでからチェックするから遅いんだろうな。
詰め込み方を工夫するか、詰め込みながらチェックするか……
623 :
デフォルトの名無しさん:04/10/21 19:46:27
問題文は「2つの配列namae[20],gyaku[20]を定義し、配列namae[20]に"abcdefghijklmn"と、初期化しなさい。次の配列namae[20]に格納したデータを逆から配列gyaku[20]に格納するプログラムを、ポインタアドレスの設定を利用し、作成しなさい。」
で未熟な私が作ったのは↓↓↓↓。当然だめぽです。はい。
#include <stdio.h>
void main(void)
{
char namae[20]={"abcdefghijklmn"};
char gyaku[20];
char *pd;
int i;
for(i=15;i>=0;i--){
*pd=namae[i];
printf("ナハハ%c\n",namae[i]);
*(pd+i)=namae[i];
}
for(i=0;i<15;i++){
printf("%%\n");
printf("牛%c",*(pd+i));
}
for(i=0;i<20;i++){
gyaku[i]=*pd;
printf("%c",gyaku[i]);
}
}
どうかお願いします
> ポインタアドレスの設定を利用し
って、どっかにそんな設定項目あったっけ?
>>553 「順列組み合わせ アルゴリズム」とかでgoogle検索してみ。
ちなみに最速アルゴリズムは最少順序変更法。
>>623 #include <stdio.h>
char *func(char *a, char *b)
{
if (*a) {
b = func(a + 1, b);
*b++ = *a;
}
return b;
}
int main(void)
{
char namae[20] = "abcdefghijklmn", gyaku[20];
*func(namae, gyaku) = '\0';
printf("%s\n", gyaku);
return 0;
}
627 :
デフォルトの名無しさん:04/10/21 20:31:02
626様、本当にありがとうございます。
本当に失礼と思いますが「 *func」や「if (*a)」を使わないで作っていただきたい。。
あと、「char namae[20]={"abcdefghijklmn"}; char gyaku[20];」は使わないといけないのですが。。。
お願いします
本 当 に 失 礼 だ な
基礎の基礎もわかってないやつにこんな宿題出すなんてどうかしてる・・・できるわけねぇじゃん。
>>629 講義ずっとサボってて課題が出たの知って
課題点だけもらおうって腹積もりだろ
将来プログラマなんて低賃金で酷使される奴隷以下のやつらにならなくて済むからいいじゃないか
632 :
デフォルトの名無しさん:04/10/21 20:48:15
>>627 というか、解らないなら 理解しようとしてくれよ。
俺は、文字列系の制御経験ないから あんま得意じゃないから
作ってといわれてもパッとは出来ないけれど、理解位はすぐにできるぞ。
というか、本当に丸投げだな。
>>630 何しにこのスレに着てるの?
ああ、プログラムオタクのお前が唯一神になれるスレだもんな
たっぷり優越感に浸って明日も徹夜でのデバック頑張ってね^^
>>632 >>626 は、かなりひねくれたコードだと思うが、
>俺は、文字列系の制御経験ないから あんま得意じゃないから
>作ってといわれてもパッとは出来ないけれど、
なんていっている奴でも、直ぐに理解できるのか?
>>623 条件が不明瞭だから、こっちとしてもとりあえず書いて出してみるしかない罠
#include <stdio.h>
#include <string.h>
int main(void)
{
char namae[20], gyaku[20];
/* 問題文によると定義した後に初期化しなければいけないらしいから */
char *src, *dst;
strcpy(namae, "abcdefghijklmn");
src = namae;
dst = gyaku + strlen(namae);
*dst-- = '\0';
while(*src)
*dst-- = *src++;
/* 結果確認 */
printf("namae: %s\n", namae);
printf("gyaku: %s\n", gyaku);
return 0;
}
string.hは使うなとか言われそうだが
>>634 あのひねくれ方と文字列制御の経験はたぶん無関係じゃないかな。
C/C++グラマにはこういうコードに快感を覚える変態が多いから理解は簡単かと。
637 :
デフォルトの名無しさん:04/10/21 21:02:32
>>634 できますが?ようするに、C言語を理解していれば
扱うデータが異なっていようともあまり関係はありません。
関数って何? ポインタって何?
という事を理解していれば、後はソート方法の理解だけでしょう?
理解力と作成する能力って「=」じゃないでしょ?
俺は作れないけど理解はできる!
ガキかよ…
637の脳内理解
/* char *a, char *b を受け取って char * を返す関数 func の定義開始 */
char *func(char *a, char *b)
{
/* *a が 0 でなかったら */
if (*a) {
/* func に a+1 と b を渡して、結果を b に代入する */
b = func(a + 1, b);
/* b をインクリメントして、
インクリメント前の b のポイント先に a のポイント先の値を代入する */
*b++ = *a;
}
/* b を返す */
return b;
}
断片的には理解しているがなぜこれで目的の作業が出来るのかは理解していない。
640 :
デフォルトの名無しさん:04/10/21 21:17:18
>>639 これを理解するのに、mainの解説が抜けている時点で
完全に勉強不足じゃないの?
人の理解力測る前に、結局は自分の理解力の範囲でしか物語れてない時点で
よく、こういうの書けるな。
付き合ってられん。
必死だなw
642 :
デフォルトの名無しさん:04/10/21 21:26:49
年を入力するとその年の年間カレンダーを表示するプログラムをC言語で
記述せよという問題です。(ただしある1年に注目した時、その年がうるう年か
どうかを調べる。)だれかお願いします
プログラムを実行すると以下のように結果を表示する。(例2004年)
1月 2004
日 月 火 水 木 金 土
1 2 3
4 5 6 7 8 9 10
・
・
2月 2004
・
・
注:ある1日に注目した時その日が何曜日であるかを調べる関数
int youbi(int year, int month, int date)
引数 int year 年 int month 月 int date 日にち
返戻値 int dow year年のmonth月のdate日の曜日(a day of the week)
0:日、1:月、2:火、3:水、4:木、5:金、6:土、とする
643 :
デフォルトの名無しさん:04/10/21 21:28:11
642ですがなんか表示がおかしいですね・・・すいません
>>642 括弧書きの「ただし・・・」と注がよくわからん。
そういう関数はすでに提供されているということか?
1752年9月はどう表示すればいいんだ?
>>645 ( ・∀・)つ〃∩ ヘェーヘェーヘェーヘェーヘェー
man cal くらいしないのか?
C:\>man cal
'man' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
650 :
デフォルトの名無しさん:04/10/21 22:11:46
>>644 すいません。書き方が下手で。
関数はすでに提供されているということです。
括弧書きのところは、うるう年の年は2月の表示を29日にするということです。
>>651 Microsoft Windows2000 ServicePack4
だからテンプレを使えと。
簡単すぎたり面白みの無い宿題は食いつき悪いよね
面白い宿題ってあんのか?
656 :
デフォルトの名無しさん:04/10/21 23:34:54
嬉しい祝代
Cの宿題です。
1.rand()関数を用いて1〜100までの乱数列をディスプレイ上に表示させよ。ただし、乱数列の種(seed)はキーボード上から読み込むものとする。
2.配列に格納されている乱数列をポインタを利用して昇順にソートし、ソート結果をディスプレイ上に表示せよ。ここで、ソート手法は特に問わない。
3.上記1〜2でディスプレイ上に表示した結果と同様なものをファイルに出力せよ。
>>642 某古き良きホームページに感謝と追悼の念を込めて。
#include <stdio.h>
int days_of_month(int year, int month){
static const int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month < 1 || month > 12) month = 1;
if (month == 2) return days[1] + (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
else return days[month-1];
}
void calendar(int year){
int i, k, month, days;
for (month = 1; month <= 12; month++){
printf("\n %d年%d月\n", year, month);
printf("日 月 火 水 木 金 土\n");
k = youbi(year, month, 1);
days = days_of_month(year, month);
for (i = 0; i < k; i++) printf(" ");
for (i = 1; i <= days; i++){
printf("%2d ", i);
if (++k % 7 == 0) printf("\n");
}
printf("\n");
}
}
int main(){
int year;
printf("何年?:");
scanf("%d", &year);
calendar(year);
}
>>657 int main() {
int i,n,seed;
scanf("%d",&seed);
srand(seed);
for(i = 0; i < n; i++)
printf("%d\n",(int)(100.0*rand()/(RAND_MAX+1.0)));
}
%
%sort -n
>>657
グローバル変数宣言だけのファイルを作るにはどうすればいいのですか?
>>660 ファイルを新しく作ってグローバル変数宣言だけ書く
どもです。
Cの初心者なんで分からなかった。
分割コンパイルとかが詳しく書いてあるオススメ本ってありませんかね?
>>662 ISBN: 4900900605 とかか?
664 :
デフォルトの名無しさん:04/10/22 02:12:36
次のプログラムを得点と名前を入力すると、名前のアルファベット順にソートして出力するように改良したいのですが、どうしたら良いのでしょうか?教えてください。入力件数は最大10件とする。名前はローマ字表記とし、半角大文字で入力する。
名前入力の時に改行のみ入力するか、10件入力されたら、入力を打ち切る。
入力したデータは構造体の配列に記憶しておく。
構造体タグは
struct data {
char namae[21]; //名前
int tensu; //得点
};
#include <stdio.h>
#define size 10
void input(int*a)
{
int i;
for(i=0;i<size;i++){
printf("%d:",i+1);
scanf("%d",&a[i]);
}
}
void output(int*a)
{
int i;
printf("\n");
printf("\n");
printf("\n");
for(i=0;i<size;i++){
printf("%d ",a[i]);
}
printf("\n");
}
下に続きます。
665 :
デフォルトの名無しさん:04/10/22 02:13:27
上の続きです。
void swap(int*a,int*b)
{
int w;
w = *a;
*a = *b;
*b = w;
}
void insert_sort(int*a)
{
int i,j,ichi;
for(i=1;i<size;i++){
ichi =a[i];
for(j=i-1;j>=0 && ichi>a[j];j--){
a[j+1] = a[j];
}
a[j+1] = ichi;
}
}
void main(void)
{
int a[size];
input(a);
insert_sort(a);
output(a);
}
先ずはアップローダを使うことを覚えよう。
>>662 コンパイルやリンク関係の記事でも読めば解かるだろうね。
/*hoge.h*/
/* #ifndef,#define,#endifのセットは何回もhoge.hを呼び出されないようにするための対処 */
#ifndef __HOGE_H_
#define __HOGE_H_
int hoge(int a);
#endif /* __HOGE_H_ */
/* hoge.c */
#include "hoge.h"
int hoge(int a) {
return a;
}
/* foo.h */
#ifndef __HOGE_H_
#define __HOGE_H_
int foo(int a);
#endif /* __HOGE_H_ */
/* foo.c */
#include "foo.h"
int foo(int a) {
return a;
}
/* main.c */
#include "hoge.h"
#include "foo.h"
int main(void) {
int a, b;
a = hoge(1);
b = foo(2);
printf("%d, %d", a, b);
return 0;
}
こんなコードが有ったとすると、
gcc -c hoge.c
gcc -c foo.c
gcc -c main.c
でそれぞれのオブジェクトファイルを生成する。
オブジェクトファイルはgccの場合*.oの形式である。
gcc main.o foo.o hoge.o
でそれぞれのオブジェクトファイルをリンクする。
オブジェクトファイルやリンクの意味はWEBで調べるとよろしい。
2つの関数
double hoge(double a, double b){
return a+b;
}
double sage(double c, dboule d, double e){
return c+d-e;
}
をコマンドライン引数で任意にどちらか一方を呼び出すにはどうすれば
いいのですか?
main()の引数argvを見て条件分岐
(1)学籍番号、氏名、年齢の三つのメンバから構成される構造体(gakuseki)を定義しなさい。
メンバ名はそれぞれ学籍番号がno、氏名がname、年齢がageとし、noが大きさ7の文字配列、
nameが大きさ20の文字配列、ageが整数型としなさい。
(2)次に、定義した構造体の各メンバに対してキーボードから入力する次の仕様の関数を作成して
実行しなさい。
gakuseki input_data(void);
引数:なし
戻り値:gakuseki型データ
(3)次に入力したデータをディスプレイに表示する次の仕様の関数を追加して実行しなさい
void output_data(gakuseki);
引数:gakuseki型データ
戻り値:なし
(4)次にgakuseki型の配列を用いて複数人数分扱えるようにメイン関数を改変しなさい。
(5)次に入力したすべてのデータを年齢の昇順に出力する次の仕様の関数を追加して実行しなさい
void sort_data(gakuseki[],int);
第一引数:gakuseki型の配列
第二引数:配列の全要素数
戻り値:なし
(1)〜(5)をひとつのプログラムにまとめる。
誰かやってくれませんか?お願いします。
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| +
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| よんだ?
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
struct gakuseki{
char no[7];
char name[20];
int age;
} gakuseki;
__declspec(dllimport) gakuseki input_data(void);
gakuseki input_data(void);
void output_data(gakuseki);
「構造体渡し」に「構造体返し」か。
カッコイイな。
>>676 何か文句あるんですか?
文句あるなら、率直にいったらどうです?
そんな遠まわしに人をバカにするようなやり方はフェアじゃないと
私は考えますね。
もう(・∀・)イイ!!かげん、そういうのに飽き飽きしてるんだ私は。
>>677 >文句あるなら、率直にいったらどうです?
では言う。
「前途有望な学生の将来を潰すな」
2chに聞いてる時点で有望も何もない
>>679 それは言いすぎだと思うが…
まぁこのスレに丸投げしてる香具師はそれに当てはまるだろうけどね
51,52行目のtmpをnかmに変えて。
#include <stdio.h>
#include <stdlib.h>
#define STR_MAX 256
main(void){
int res = 0, num = 0, nokori = 0;
char ans[1000000];
while(1){
gets(ans);
if(ans == NULL){
goto
>>144-146;
}else{
break;
}
}
>>677 あなたは常識人さんですね?
あなたの仰ることは常に、正論だと思います。
だけど、あなたはどう考えても、このスレでは荒しであると認定せざるを得ません。
もし、あなたが本当に常識を持った人間であるなら
もう二度とこのスレに来ないで下さい。
私たちが、ある種の罪を抱えていることは解っています。
宿題の丸投げに喜んで解答を教える私たちは、確かに
あなたのような、常識を持った人からすれば、大変遺憾なことなのでしょう。
だけど、私たちはこのまま罪を背負って、スレを進めていきたいと思います。
いつか、きっと、その先に、私たちが欲しい真実(ほんとう)の答えが得られると信じて。
我丸投げす、ゆえに我あり。
継続は丸投げなり
688 :
デフォルトの名無しさん:04/10/22 19:28:09
掲示板というものを 理解できていない人は ここに常識を持ち出すが
そもそも、一方的な投げあいなんだよ。
嘘も本当もない。正義も悪もない、カオスなんじゃあああ。
馴れ合いは好きじゃないから
誤解されてもしょうがない
それでも、漏れは君(常識人)のこと
いつだって思い出すだろ。
"常識"なんて、人の数ほどあるんだから。
月日が流れても「お互い変わらないね」って
笑いあえる仲になりたいね。
今正直に伝えたい。この気持ちを。
ビクッ. ∧ ∧ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Σ(゚Д゚;≡;゚д゚) < うおっ、なんかすげえ所に迷い込んじまったようだぞ、ゴルァ!
./ つ つ \_________________________
〜(_⌒ヽ ドキドキ
)ノ `Jззз
今の情報社会では、刻一刻と変わり続けるのが情報であって、
人は変わらない、人のアイデンティティは変わることはない、
と考える様になってしまったね。
本当は、情報こそ変わらないものなのに。
関が原の戦いで家康が勝ったということは変わらないことなのに。
#include <stdio.h>
#include <stdlib.h>
#define STR_MAX 256
main(void){
int res = 0, num = 0, nokori = 0;
char ans[1000000];
while(1){
gets(ans);
if(ans == NULL){
goto
>>144-146;
}else{
break;
}
}
そろそろstdio.h使うの止めてくれ。
なんでよ?
「構造体渡し」と「構造体返し」は何で駄目なんですか?
>>696 C/C++だと関数の引数と戻り値は値渡しだから構造体を直接渡す/返すとサイズが大きいからいちいちコピーする時間が掛かかる。
だからポインタとか参照とかにしろと言っている。
>>696 まず、そんなことをやる奴は、プログラムの動作を
根本的に把握していないから駄目。
・・・と言うと、「こんなの Java なら普通の記述だよ」
なんて言い出す奴は、Java すら理解していないから
もっと駄目。
>>696 どちらも動作を理解していれば何の問題もない。
Win32API などでも普通に POINT 構造体を渡す。
問題ない と言い切るのはどうだろ…?
C/C++のメリットが無になってしまう
Basicにすれば?
ま、その構造体があまり大きくなくて、speed-criticalな部分でもなければ、
そこまで神経質になることもないんじゃないか?
const参照/ポインタ渡しにすると、その値の逆参照にコストがかかる。
POINTのような小さな構造体の場合値渡ししたほうが良い場合が多い。
構造体返しはコンパイラが最適化してくれるかもー。
「最適化は解析の結果がそうしろと言った時だけしろ」
706 :
デフォルトの名無しさん:04/10/22 23:42:49
また無理難題を…('A`)
>>706 名前の漢字に複数の読み方があるときはどの読み方を採用してアルファベットに変換すればよいのでしょうか?
>>709 「名前はローマ字表記とし」とあるので心配ご無用。
おおほんとだ、問題よんでねぇのばればれw
test.cppとmoge.cpp の2つのソースファイルからhogehoge.exeを
作成するmakefileの記述方法を教えてください。
環境は必ず書きましょう
>712
まあ何事にも「とっかかり」は欲しいもんだからなあ。
CC = gcc
CFLAGS = -O2 -Wall
LDFLAGS =
all: test.o moge.o
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o hogehoge.exe
%.o: %.cpp
$(CC) $(CFLAGS) -c $< -o $@
"$(CC)" の前の空白は必ず TAB ね。
記号の意味は自分で調べーな。
あと、正解はこれ一つじゃないし。
Makefileって汚いよね〜いつも思うけれど。
スペースじゃなくてタブとかw
普通、
# hogehoge依存部
PROGRAM = hogehoge.exe
SOURCES = test.cpp moge.cpp
#hogehoge非依存部
OBJECTS = $(SOURCES:%.cpp=%.o)
$(PROGRAM) : $(OBJECTS)
$(CC) -o $(PROGRAM) $(OBJECTS) $(LDFLAGS) $(LDLIBS)
で充分だろ。
CC/CFLAGS/CPPFLAGS/LDFLAGSはお好みで。
#>714だと毎回リンクする罠。
#include <stdio.h>
#include <stdlib.h>
#define STR_MAX 256
main(void){
int res = 0, num = 0, nokori = 0;
char ans[1000000];
while(1){
gets(ans);
if(ans == NULL){
goto
>>144-146;
}else{
break;
}
}
あんまり続くとつまらんね。
>>144 --- 32-144.c2004-10-23 13:22:47.632338400 +0900
+++ 32-144.c2004-10-23 13:52:42.194838400 +0900
@@ -5,7 +5,8 @@
int main(void)
{
- FILE *fi, *fo;
+ FILE *fi, *fo, *ft;
+ int len;
char fin[80], fout[80];
char buff[STR_MAX], *pd;
int line = 0, select;
@@ -37,6 +38,17 @@
printf("入力ファイルがオープンできません\n");
exit(1);
}
+ ft = tmpfile();
+ while (!feof(fi) && (len = fread(buff, 1, sizeof(buff), fi))) {
+ len = fwrite(buff, len, 1, ft);
+ if (len == 0 && ferror(fi) !=0 || ferror(ft) != 0) {
+ perror("Error");
+ return 1;
+ }
+ }
+ fclose(fi);
+ rewind(ft);
+ fi=ft;
if ((fo = fopen(fout, "w")) == NULL) {
printf("出力ファイルがオープンできません\n");
exit(1);
30分掛けてそれか。
大学で課題が出たんですが
さっぱりもっさりです・・・
課題
a b c d 四つの整数を入力して
下記のような
行列の行列式を計算して
行列を画面に表示するプログラムを作りなさい
|a b|
|c d|
です!
誰か助けて!!!
下のルールに従って、部外者1人とm(>0)人の人がじゃんけんをして、
勝ち残るn(<m)人が決定するまでのじゃんけんの回数とその確率などを知りたいのですが、
どうプログラムを組めばいいのかわからないので教えてください。
計算を実行するパターン確率の最低値PL(たとえばPL=0.001と入力すると
P(10,10)やP(10,9)など0.001以下の値は、1回目の確率の計算に使用した後は値が0になる)と
m,nを入力すると、出力として
じゃんけんの回数 確率
1 0.1366
2 0.2151
… …
順位 パターン パターン確率(値の大きい順)
1 P(10,5) 0.1366
2 P(10,3)*P(7,2) 0.0799
… … …
と表示されるものをお願いします。
ルール
1回目のじゃんけんで、部外者に勝った人数がnより少ない(勝った人数をa(<n)とする)場合、
勝ったa人は勝ち残りが決定し、残りのm-a人で、n-a人が勝ち残るまで部外者とじゃんけんを続ける。
2回目以降も勝ち残る人数がn人に満たない場合、これと同じ規則を当てはまる。
つまり、m-a人のうち、勝った人(a'人とする)は決定し、勝てなかった残りの人(m-a-a'人)で残りのイス(n-a-a'人)を争う。
何回目かのじゃんけんで、部外者に勝った人数がnより多い(勝った人数をb(>n)とする)場合、
n人が勝ち残るまで、勝ったb人が部外者とじゃんけんを続ける。
>>722 行列式の定義も知らないの?
2×2だからとても単純。
|A| = |a b| = ad-bc
|c d|
例えば、部外者1人とm=10人の人がじゃんけんをして、勝ち残るn=5人を決めたいときに、
その5人が1回目で決定する確率は、PL=0.001、x人中y人が勝ち残る確率をP(x,y)とすると、
P(10,5)=(1/3)^5*(2/3)^5*10C5=0.1366となります。
5人が2回目のじゃんけんで決定するには、
1回目で10人が勝ち残り、2回目で5人が勝ち残る確率→ P(10,10)*P(10,5)=0 (P(10,10)は0になっているため)
…略
1回目で6人が勝ち残り、2回目で5人が勝ち残る確率→
P(10,6)*P(6,5)=0.00094 (←PL以下なので3回目以降では0と見なす。)
1回目で4人が勝ち残り、2回目で残りの6人のうち1人が勝ち残る確率→ P(10,4)*P(6,1)=0.060
…略
1回目で0人が勝ち残り、2回目で残りの10人のうち5人が勝ち残る確率→ P(10,0)*P(10,5)=0.0024
の10パターンだから、それらを合計して、2回目で決定する確率は0.2151となります。
>724
いや、それはわかるんですけど
C言語初心者なもんで・・・
どんなプログラムかわかんないんすよ・・・
>>725で
P(10,6)*P(6,5)=0.00094 (←PL以下なので3回目以降では0と見なす。)
としたのは間違いでした。
P(10,6)*P(6,5)=0.00094は、そもそも2回目で終わるパターンなので、
3回目以降の計算に現れないです。
>>726 行列式を求めて行列を表示するの意味がわからない。
>>726 こんなかんじ?
#include <stdio.h>
#include <math.h>
#define max(x,y)((x)>(y)?(x):(y))
int main()
{
char buf[257], name[] = "abcd";
int a[4], i, c, w1, w2;
for (i = 0; i < 4; i++) {
do {
printf("%c? ", name[i]);
if (fgets(buf, sizeof(buf), stdin) == 0) {
printf("stdin: もうだめぽ.\n");
return 0;
}
c = sscanf(buf, "%d", a + i);
if (c < 1)
printf("入力が間違っています。再入力してください.\n");
} while (c < 1);
}
w1 = max(log10(a[0]) + 2, log10(a[2]) + 2);
w2 = max(log10(a[1]) + 2, log10(a[3]) + 2);
printf("\n| %*d %*d |\n| %*d %*d | = %d",
w1, a[0], w2, a[1], w1, a[2], w2, a[3],
a[0] * a[3] - a[1] * a[2]);
return 0;
}
コマンドライン引数でa,b,cを取得するにはどうすればいいのですか?
a,b,cの順でお願いします。
double mogemoge(double a, double b, double c){
return a + b - c;
}
int main(){
double a, b, c;
double AA = mogemoge(a, b, c);
printf("%f\n", AA);
]
mainの形式を変えないと無理だが?
>>730 $ a.out 1 2 3
int main(int argc, char* argv[]) {
double a;
double b;
double c;
a = atof( argv[1] );
b = atof( argv[2] );
c = atof( argv[3] );
}
733 :
デフォルトの名無しさん:04/10/23 20:38:22
734 :
デフォルトの名無しさん:04/10/23 20:43:24
>728
プログラムを実行した時に
|a b|
|c d|
このように表示されれば良いと思うんですが・・
なにぶん低脳なもんで(´・ω・`)・・・
>729
見た感じ違うような・・・
もうだめぽ・・・
738 :
デフォルトの名無しさん:04/10/24 01:15:02
>>722 >>729のどこが違うんだ?しっかりa〜dを聞いてきて、整数を入力したら
行列も行列式も、しかもご丁寧に行列をきちんとそろえて表示してくれるが?
>>738 すいません!家にソフトがないもんで・・・
もうだめぽとか書いてあるから違うのかと・・・
>>729 マジでありがとうございますm(__)m
大変失礼なんですが、
自分が取ってる授業がC言語入門って授業なんで
ここまで難しいプログラムになるのかな?
と思ってるんですが・・・
740 :
デフォルトの名無しさん:04/10/24 02:12:56
>>739 もしかしてこんなレベルのものを望んでいるのか?
こんなんだとa〜dの桁数があっていないとズレまくりになるが。
#include <stdio.h>
int main(void){
int a, b, c, d;
printf("aは?:");
scanf("%d", &a);
printf("bは?:");
scanf("%d", &b);
printf("cは?:");
scanf("%d", &c);
printf("dは?:");
scanf("%d", &d);
printf("|%d %d|\n|%d %d|=%d", a, b, c, d, a * d - b * c);
}
>>741 かなり近い物を感じます!
月曜に提出なんで朝一で入力して平気そうだったら出しちゃいますわ(`∀´)
マジで感謝ですm(__)m
色々と考えて、以下のような手順で出来るのではないかと思ったのですが、
知識、経験がなくて、どうプログラムを組めばいいのかわかりません。
宿題ではないのですが、少し興味があることなのでいつでも構いませんのでどなたかお願いします。
準備 P(m,k)をP(m,k)=(1/3)^k*(2/3)^(m-k)*mCkと定義する。m(mは2以上),n(nは1以上m-1以下の値)を入力する。
パターン確率の最低値PLを入力する。 "じゃんけんの回数" "確率" と画面に出力する。
(0.0) P(m,k1=0),…,P(m,k1=m)を計算する
(0.1) P(m,k1=0),…,P(m,k1=m)のうちで値がPL以下のものを0でおきかえる
(1.0) "じゃんけんの回数" の下に "1" と表示する
(1.1) P(m,k1)のうち、k1=nのものは、一時的にとっておく
(1.2) P(m,k1)のうち、k1>nのものには、各P(m,k1)に対してP(k1,k2=0),P(k1,k2=1),…,P(k1,k2=k1)を掛ける
(例 m=10,n=5の場合、P(10,k1=10), P(10,k1=9), …, P(10,k1=6)のそれぞれに対して
P(k1,k2=0),P(k1,k2=1),…,P(k1,k2=k1)を掛ける)
(1.3) P(m,k1)のうち、k1<nのものには、各P(m,k1)に対してP(m-k1,k2=0),P(m-k1,k2=1),…,P(m-k1,k2=m-k1)を掛ける
(例 m=10,n=5の場合、P(10,k1=4), P(10,k1=3), …, P(10,k1=0)のそれぞれに対して
P(10-k1,k2=0),P(10-k1,k2=1),…,P(10-k1,k2=10-k1)を掛ける)
(1.4) (1.1)で一時的にとっておいた値を、"じゃんけんの回数" の下の "1" の右("確率"の下)に表示する
(1.5) (1.2),(1.3)で計算された各値のうちで値がPL以下のものを0でおきかえる
(続く)
(2.1a) (1.2)で k2=n のものは、一時的にとっておく
(m=10,n=5の場合、P(10,10)*P(10,5), P(10,9)*P(9,5), …, P(10,6)*P(6,5)がこれに当たる)
(2.2a) (1.2)で k2>n のものは、各P(m,k1)*P(k1,k2)に対してP(k2,k3=0),P(k2,k3=1),…,P(k2,k3=k2)を掛ける
(2.3a) (1.2)で k2<n のものは、各P(m,k1)*P(k1,k2)に対してP(k1-k2,k3=0),P(k1-k2,k3=1),…,P(k1-k2,k3=k1-k2)を掛ける
(2.1b) (1.3)で k2=n-k1 のものは、一時的にとっておく
(m=10,n=5の場合、P(10,4)*P(6,1), P(10,3)*P(7,2), …, P(10,0)*P(10,5)がこれに当たる)
(2.2b) (1.3)で k2>n-k1 のものは、各P(m,k1)*P(m-k1,k2)に対してP(k2,k3=0),P(k2,k3=1),…,P(k2,k3=k2)を掛ける
(2.3b) (1.3)で k2<n-k1 のものは、各P(m,k1)*P(m-k1,k2)に対してP(m-k1-k2,k3=0),P(m-k1-k2,k3=1),…,
P(m-k1-k2,k3=m-k1-k2)を掛ける
(2.4) (2.1a),(2.1b)で一時的にとっておいたものを合計し、"1" の下の "2" の右にその値を表示する
(2.5) (2.2a),(2.3a),(2.2b),(2.3b)で計算された各値のうちで値がPL以下のものを0でおきかえる
以下これを繰り返し、最後に(1.1),(2.1a),(2.1b),…で一時的にとっておいた値を降順にソートし、
パターン パターン確率(値の大きい順)
1 (10,5) 0.1366
2 (10,3)(7,2) 0.0799
… … …
というように表示する。というものです。
746 :
848:04/10/24 12:53:30
お願いします。
・c++
・入出力ストリーム
・配列
・反復 を用いて以下のプログラムを作成。
n人分のtest1,test2の得点を入力し、それぞれの入力した得点の
合計と平均を求めるプログラム。添字はtest1,test2で、入力は
test1,test2の得点を1回のループで一度に入力できるものとする。
また、同じ添字のtest1,test2は同一人物の得点とし、(1)test1>test2
(2)test1=test2(3)test1<test2に何人が該当するかを表示する処理も
つけ加えるること。
>>746 746の分際で、848を気取るあなたは常識に欠けてる
と言わざるを得ません。
そんな常識のないあなたに、答えてくれる神を、
私も、待ち続けることにしましょう。
常識人さん。
私は、本当にあなたに怒りを覚えますよ。
そんなこと、前に入力したときのものが残っていたに決まっているじゃないですか?
常識が本当にある者ならば、そんなことは明らなはずです。
常識人さん。
私は、あなたに、もうこのスレに二度と来ないで下さいと言ったはずですね?
どうして、言うことを聞けないのですか?日本語がわかりませんか?
今度、あなたがもし再びこのスレに来て、暴言を吐くような真似をしたら
私は、あなたをただじゃ置きませんよ?
覚悟してください。
> 前に入力したときのものが残っていた
1個前のレスは正しいものですよ
>>751 >749の言う、「848」とは、>746が「前に入力したときのもの」だってことくらい理解してください。
753 :
746:04/10/24 15:18:22
すみません848は別のものです。残っていたのを
消し忘れてしまいました。
754 :
デフォルトの名無しさん:04/10/24 16:04:05
>>746 #include <iostream>#include <vector>using namespace std;vector<int> test1,test2;
int main(){
int n=0,i,sum[2],ave[2],more=0,equal=0,less=0;char c;
while(true)
{
cout<<"test1["<<n<<"]=";cin>>i;test1.push_back(i);
cout<<"test2["<<n<<"]=";cin>>i;test2.push_back(i);
n++;cout<<"exit(y/n)";cin>>c;
if(c=='y'||c=='Y')break;
}
for(i=0;i<2;i++) sum[i]=0;
for(i=0;i<(int)test1.size();i++)
{
sum[0]+=test1[i];sum[1]+=test2[i];
more+=(test1[i]>test2[i]);
equal+=(test1[i]==test2[i]);
less+=(test1[i]<test2[i]);
}
ave[0]=sum[0]/test1.size();ave[1]=sum[1]/test1.size();
cout<<"test1合計点="<<sum[0]<<"\ttest1平均点="<<ave[0]<<endl;;
cout<<"test2合計点="<<sum[1]<<"\ttest2平均点="<<ave[1]<<endl;;
cout<<"(test1>test2)="<<more<<"人"<<endl;
cout<<"(test1==test2)="<<equal<<"人"<<endl;
cout<<"(test1<test2)="<<less<<"人"<<endl;
cout<<"end"<<endl;cin>>c;return 0;}
>>755 case 'y'ラベルとbreakの間に処理を書けばよろし。
758 :
746:04/10/24 23:38:32
FitzHugh-Nagumo方程式の解軌跡を求めるプログラムを書き,
興奮性を示すx,yの初期値を一組探しグラフで結果を示せ.
ただし,a=0.7,b=0.8,c=20.0,z=1.0を初期値とし,
これらの値を変更しても構わない.
FitzHugh-Nagumo方程式:
dx/dt=c(x-x^3/3+y+z)
dy/dt=(a-x-by)/c
プログラム関連の知識がないし、そもそもどういう問題なのかもよくわかりません。
だれか分かる方おしえてもらえませんか??
http://pc5.2ch.net/test/read.cgi/tech/1097034002/897 こっちからきました
>>579 プログラミングの知識がないのに何でそんな課題出されるんだよ。
とりあえず、授業で何を習ったのか書け。
,,;:-‐''"⌒ ̄";;;;;;;⌒ ̄"ヾ、
='-‐''"/,::´ /::::::::::::::::ヽ :::`ヾ
ァ'´.,:´/.::::::/i:: :::::. :; :::丶 ::::::ヾ、
/ / ::/.: { l ヽ_,,,_`、 .:`、ヽ:::::::ヽ`
{::/ァ' .i..:/i.::{::{.ヾ~::i:ヾ丶::::::.::::i:::::::::}
、_ノ'.{ .::::{-{‐{:;iヾ{ '"T ヾ il.|'.:::.::}::::::::ト、
l.:il :lヽi'"ヽ`、ヽ .l,'゚i!'〉リi}::i:::::l:::ノ::ハヽ、_
麻衣子は {:| i .} } {'゚}. ┴-' i}:ノl::::}::i:::::. l`ー"
お風呂入るから {、.ヾ-i ー´、 〃 ノ:::ノ::ノ::}:: ::. }
ちょっと待っててね ノト " っ 、_,;-':.:'/:::::::l: : l
{:l:::`i::..、 ._.,.;:イシ:::/::ノ l、
iんV´iノノ` ツi iリノツ-‐''" :: : ヽ 、
_,-.r‐i {,-ト .i_,,ノ-‐-―/ : : :::ノ :::::. } `、
( l ./ /~ / .ノ/:::::/: ::::::: : :l
(.._,,iツvV .,' ,'::{:::;::::: :::::::: :::i
`ー7/::::{. '"~/ {;;;li/::::l:::::: :::::::::::::{
{:l(ァ' ,, ' l::;;|l/:::{i::::: : ::: :::: ::::l
リァ' ., ´ /メ{ {l:::/ {:::l:. : : ::::|
/, ´ ノ // l {iメ {:::|i:: : :::l
/./ /::'/:/ {:i:|イ{ i::l:: i ::}
i' ´ /::::::/::/ l .:|::::|:l:::l : l : ::l
{ , イ´ /::;/ .ィ´:| }::::l:i::::i:i:. .| : :. ::l
i、__,, ィ i::::l /:,:::l //l::::l .}::::li:::::l l::::} i: i :::l
>>760 じぶんで勉強してやってこいというような感じでした。
そもそも、プログラミングとは関係のない授業なんです。
765 :
デフォルトの名無しさん:04/10/25 18:30:27
すいません!よろしくお願いします!(赤、緑、青、白、黒を示すプログラム)
赤、緑、青の数値の中で
(1)まず青の数値の割合が20〜26%の時に白
(2)次に赤、緑、青のうちで最も割合の多い色を示し
(3)それ以外は黒
とするプログラムを作成願います。
>>764 それぼくじゃないですよ
同じ授業とってる人かな??
>>765 マルチUzeeeeeeeeeeeeeeeeeeeeeeeee!!!!!!
作ってやったんだが出すのやめた!!!
768 :
デフォルトの名無しさん:04/10/25 18:37:18
すいません!そこを何とかぁ。。
もう消した。
ここで甘やかしちゃいけない
って、そんな事いったらこのスレの存在意義がなくなるがw
771 :
デフォルトの名無しさん:04/10/25 20:27:28
どなたか教えて下さい。お願いします。言語はCです。
スタックを配列により実現する。配列の最大値は10とする。
スタックが満杯のときの表示:"スタックが一杯です。"
スタックが空のときの表示:"スタックが空です。"
また、スタックにあるデータ数も表示する。
<実行例>
現在のデータ数:0/10
コマンド:push 1,pop 2,終了 0
1
data:15
現在のデータ数:1/10
コマンド:push 1,pop 2,終了 0
1
data:77
現在のデータ数:2/10
コマンド:push 1,pop 2,終了 0
1
data:82
現在のデータ数:3/10
コマンド:push 1,pop 2,終了 0
2
pop data > 82
現在のデータ数:2/10
コマンド:push 1,pop 2,終了 0
2
pop data > 77
現在のデータ数:1/10
コマンド:push 1,pop 2,終了 0
0
>>771 #include <stdlib.h>
#include <stdio.h>
#define STACK_MAX 10
typedef struct _Stack {
int top;
int buf[STACK_MAX];
} Stack;
Stack* stack_create(void)
{
Stack* stack = (Stack*) malloc(sizeof(Stack));
stack->top = 0;
return stack;
}
void stack_free(Stack* stack)
{
free(stack);
}
void stack_push(Stack* stack, int data)
{
stack->buf[stack->top] = data;
stack->top++;
}
int stack_pop(Stack* stack)
{
stack->top--;
return stack->buf[stack->top];
}
void stack_print(Stack* stack)
{
int i;
printf("現在のデータ数:%d/%d\n", stack->top, STACK_MAX);
if (stack->top > 0) {
printf("データ:");
for (i = 0; i < stack->top; i++) {
printf(" %d", stack->buf[i]);
}
printf("\n");
}
}
int main(void)
{
Stack* stack;
stack = stack_create();
stack_push(stack, 1);
stack_print(stack);
stack_push(stack, 2);
stack_print(stack);
stack_push(stack, 3);
stack_print(stack);
stack_pop(stack);
stack_print(stack);
stack_pop(stack);
stack_print(stack);
stack_pop(stack);
stack_print(stack);
stack_free(stack);
return 0;
}
776 :
771:04/10/25 20:54:28
777 :
デフォルトの名無しさん:04/10/25 21:03:56
777ならここから中日奇跡の逆転劇
後2イニングで7点取れると思えない。
中日が優勝したら路上で脱糞する
>>779 いくら有り得ないからといって、そういう人迷惑はやめなさい。
野球の話ヤメレ
本当にまずいんです!よろしくお願いします!(赤、緑、青、白、黒を示すプログラム)
赤、緑、青の数値の中で
(1)まず青の数値の割合が20〜26%の時に白
(2)次に赤、緑、青のうちで最も割合の多い色を示し
(3)それ以外は黒
とするプログラムを作成願います。
自分はif文のただ羅列で行き詰ってしまったのでお手数ですが。
だれかC/C++侍の時のログ持ってる人いませんか。
785 :
デフォルトの名無しさん:04/10/26 09:23:40
int strtoi(const char *str)
{
int cnt;
int num=0;
return num;
}
atoi()と同じ動作をする関数を完成してくれませんか?
考えてもよく分かりませんでした。お願いします
おまえ、マ板でも訊いてなかったか?
intの範囲越えた時とか、'0'から'9'が連続してない文字コード系はシラネ
int strtoi(const char *str)
{
int num = 0;
while('0' <= *str && '9' >= *str)
num = num * 10 + *str++ - '0';
return num;
}
>>783 ってかswitch文の方がらくじゃない?
ちなみにそれ何のプログラム?
>>787 マルチ指摘されたのにもかかわらず再度マルチで、しかもいろいろ聞かれてるの無視してる香具師なんかほっとけ。
>>784 「C/C++の宿題は拙者が斬る! 29代目」
これか?これなら、OpenJaneのログがあるが。
生年月日と計算したい年月日を入力し、身体、感情、知性の
バイオリズム数値を計算せよ。
という問題でバイオリズム数値をだす計算式が
うまくいかないのでご教授お願いします。
sin((生まれてから経過した日数)/23*2*PI)
関数電卓でこの計算に代入すると
ちゃんと出るのですが・・・
C++でwinXPです。
>>791 どう上手く行かないのか、言えない理由を300字以内で述べよ
どうせラジアンがらみじゃないの?
勘で
sin((生まれてから経過した日数)/23.0*2*PI)
生まれてから経過した日数の計算がめんどくさいだけとか
そんな面倒でもないような
まさか、
#define PI 3
じゃないだろうねぇ。
Cには
#include
ってのがあるわけですが、これの種類って
#include <ヘッダファイル>
か
#include "ヘッダファイル"
の2つの記述しか無いですよね?
例えば
#include(なにか)
とか無いですよね?
上記2つは調べて普通に見つかるのですが、
他には記述法があるのか気になったので教えていただければ助かります。
ありません。その二つだけです。
boost::gregorian ですぐだしなあ
プログラムはこんな感じです。
日数計算は年*365.25+月*30.6+日で指定されてます。
模範解答によると
生年月日1950 9 12
調べたい日1978 10 5
で身体-0.82 感情0.43 知性-0.62
となるようですが全く違う値が・・・
#include <stdio.h>
#include <math.h>
void main()
{
int a,b,c,d,e,f;
float j,k,l,pi=3.14,x,y,z;
printf("生年月日を入力(西暦):");
scanf("%d %d %d",&a,&b,&c);
printf("調べたい年月日を入力:");
scanf("%d %d %d",&d,&e,&f);
j=d*365.25+e*30.6+f;
k=a*365.25+b*30.6+c;
l=j-k;
x=sin(l/23.0*2*pi);
y=sin(l/28.0*2*pi);
z=sin(l/33.0*2*pi);
printf("身体:%.2f\n感情:%.2f\n知性:%.2f\n",x,y,z);
}
>>799 ありがとございます。
頭の中のもやもやが消えました。
>>801 pi を 3.141592653589 くらいまでやると
身体:-0.90
感情:0.56
知性:-0.71
になる他はワカンネ
x=sin(l*2.0*pi/23.0);
y=sin(l*2.0*pi/28.0);
z=sin(l*2.0*pi/33.0);
つーか、doubleにしとけ。
Mathematicaで厳密な(全部1度小数を有理数にして)計算をしたけれども、
x=-0.109055,y=0.834573,z=-0.856349になる。その結果が正しいとするならば、
計算式のどこかが間違っている。
>>806 三角関数の引き数がdoubleである以上、その前の段階で必要以上に精度を落とす必要が無い。
つーか、精度ギリギリじゃない?
古い参考書とかはfloat使っていることも多いよね。
あと、
function(a, b, c)
int a;
int b;
int c;
{;}
というのもよく見かける。
>>807 どれをどう計算した? その数値にはどうしてもならないのだけど。
>>810 スマン、数値を間違った。
j := d*Rationalize[365.25] + e*Rationalize[30.6] + f;
k := a*Rationalize[365.25] + b*Rationalize[30.6] + c;
l := j - k;
x := Sin[l/Rationalize[23.0]*Rationalize[2.0]*Pi];
y := Sin[l/Rationalize[28.0]*Rationalize[2.0]*Pi];
z := Sin[l/Rationalize[33.0]*Rationalize[2.0]*Pi];
{a, b, c} = {1950, 9, 12};
{d, e, f} = {1978, 10, 5};
{x, y, z} // N
結果:{-0.900121, 0.550897, -0.703733}
おし、大分判ってきた。
日数計算をサボらずにきちんと行なうと>801の例の場合10250日となる。
この数値を元に三角関数で計算すると、例のように-0.82/0.43/-0.62になる。
処が、>791の書いたプログラムでは日数が10250.6日になってしまい、
それを計算すると-0.90/0.55/-0.70になった。
ま、lだけintにすればいいことなんだろうな。
printf または cout でファイル(hogehoge.datやsage.csv等)を
出力したいのですが、任意のフォルダまたは実行ファイルと同じフォルダ
に書き出す方法を教えてください。
>>814 printf や cout 使うんなら、コマンドラインでリダイレクトするのが一番簡単だよ。
標準入出力のファイルデスクリプタを再定義したいとか、そういう話なんですか?
>>813 確かに。本来ならきちんと計算すべきだけど指定されているんじゃ仕方ないね。
>>801=791
そういうわけで、lの整数化と円周率はmath.hにあるであろうM_PIを使用すること。
#ないなら3.14159265358979323846だ。
floatで問題が発生するかは検証してないけど、その辺はまぁ、適当に。
floatで大丈夫みたい。
>>814 コマンドラインのリダイレクトを使わないなら
freopen("hello.txt", "w", stdout);
printf("Hello, World!");
fclose(stdout);
みたくstdoutそのものをfreopenでファイルにリダイレクトさせるというのが妥当かと
皆様ありがとうございます。
後は自分でがんばって見ます。
820 :
デフォルトの名無しさん:04/10/26 23:57:32
どなたか教えてください。お願いします。言語はC++です。
得点と名前を入力すると、名前のアルファベット順にソートして出力する。
入力したデータは構造体の配列に記憶しておく。
構造体タグは↓を使用すること。
struct data {
char namae[21]; //名前
int tensu; //得点
};
入力件数は最大10件とする。名前はローマ字表記とし、半角大文字で入力する。
名前入力の時に改行のみ入力するか、10件入力されたら、入力を打ち切る。
ソートは単純交換法を用いること。
<実行例>
1:[名前]NISINA AKMEI
1:[得点]80
2:[名前]KIMURA HIROKO
2:[得点]136
3:[名前]ISIMITU YUICHI
3:[得点]30
4:[名前]SASAKI TAKASHI
4:[得点]100
5:[名前]ASAMIYA MASAKO
5:[得点]84
6:[名前]
----------------------------
1:ASAMIYA MASAKO84
2:ISIMITU YUICHI30
3:KIMURA HIROKO136
4:NISINA AKEMI80
5:SASAKI TAKASHI100
#include <stdio.h>
void hyoji(char *str)
{
printf("%s\n",str);
}
void main(void)
{
int suti;
char jyukugo[3][10]={"あいうえ","かきくけ","さしすせ"};
do{
printf("数値1~3の範囲で入力してください:");
scanf("%d",&suti);
}
while(suti<1||suti>3);
hyoji(&jyukugo[suti-1][0]);
}
超初心者、言語はCです。
同じ結果が出るように、これを改変した別のプログラムを教えてください。
コマンドライン引数で -a ってのをできるようになったんですが、
-age とか -sage ってできないんですか?
できるならやり方を教えてください。
なぜそこまで出来てそれができぬのだ
824 :
デフォルトの名無しさん:04/10/27 06:04:51
課題なんですが、
http://data.uploda.net/anonymous/etc2/dat6/upload21362.c このプログラムをデータを文字列ではなく整数を使用できるにはどうしたらいいでしょうか
課題内容
キー入力されたデータで2分探索木を作って、
最後に全てのデータを昇順に表示(トラバーサル)しなさい。
なお、2分探索木は自己参照構造体とメモリの動的割り当てを使用した再起版で作成、表示する事。
データは整数を使用する。ただし、配列で定義するのではなく、実行時にキーボードから入力する事
(EOFで入力の終了とする)。
教えてくださいお願いしますorz
↑嫌がらせみたいだけどアプロダ使ったこと無いので変更点だけ書いとく
char name[12];→int val;
struct tnode *gentree(struct tnode *,char *);→struct tnode *gentree(struct tnode *,int);
char dat[12];→int dat;
while (scanf("%s",dat)!=EOF){→while (scanf("%d",&dat)!=EOF){
printf("%s\n",p->name);→printf("%d\n",p->val);
struct tnode *gentree(struct tnode *p,char *w)→struct tnode *gentree(struct tnode *p,int w)
strcpy(p->name,w);→p->val = w;
else if(strcmp(w,p->name)<0)→else if( w < p->val )
>>825 ありがとうございます。
助かりましたm(_ _)m
828 :
デフォルトの名無しさん:04/10/27 15:58:17
入力田英数字を逆順にした英数字を表示し、さらにこの入力した英数字とそれを逆順にした英数字を比較して、一致していなかったら「good」一致していなかったら「no good」と出力するプログラムを作成してください
お願いします
829 :
デフォルトの名無しさん:04/10/27 16:07:59
入力した英数字を逆順にした英数字を表示し、さらにこの入力した英数字とそれを逆順にした英数字を比較して、一致していたら「good」一致していなかったら「no good」と出力するプログラムを作成してください
お願いします
828は誤字だらけでしたすいません
x = x&(x-1)
char str[BUFF_SIZE];
char rev[BUFF_SIZE];
const char *src;
char* dst;
fgets(str, sizeof(str), stdin);
src = str;
dst = rev + strlen(str);
*dst-- = 0x0;
while(*src) *dst-- = *src++;
puts(rev);
puts(strcmp(str, rev) == 0 ? "good" : "no good");
>>829 831のでは改行のことが虫されてたんでちょこちょこっといじった
>>829 #include <algorithm>
#include <iostream>
#include <string>
int main(){
std::string str;
std::cout << "?:" << std::flush;
while (std::cin >> str)
if (str == std::string(str.rbegin(), str.rend()))
std::cout << "good\n?:" << std::flush;
else
std::cout << "no good\n?:" << std::flush;
return 0;
}
>>834 規格では読み込み時自動で flush されますよ
>>835氏の指摘と、逆にした文字列を表示していなかったのを修正
#include <algorithm>
#include <iostream>
#include <string>
int main(){
std::string str;
std::cout << "?:";
while (std::cin >> str)
{
std::string rev(str.rbegin(), str.rend());
std::cout << rev;
if (str == rev)
std::cout << "\ngood\n?:";
else
std::cout << "\nno good\n?:";
}
return 0;
}
a=1, 10, 100の時、
a+4の答えを hoge1.txt hoge2.txt hoge3.txt に一度に書き出すプログラム
をお願いします。
宿題できないどころか
宿題内容の伝達すらまともにできないんでつか…(´・ω・`)
借金をd,年利をi,毎月の返済額をxとしたとき、
何ヶ月目で、最後の月に何円を返済して借金を返し終わるかわかる
プログラムを教えてください。
c++でお願いします
>>839 1行でいけるな。
for(int i = 0, a = 1; i < 3; ++i, a *= 10) std::ofstream((std::string("hoge") + boost::lexical_cast<std::string>(i + 1) + ".txt").c_str(), std::ios::out) << a + 4 << std::endl;
1文でint main()の中を書けということではないのか?
1+4の答えをhoge1.txtに、
10+4の答えをhoge1.txtに、
100+4の答えをhoge1.txtに、この3つのtxtファイルを同時に書き出す
という意味です。
きっと厳密に同一時刻じゃないといけないんだよ!プゲラ
ていうか
>>847は3つのファイルになってないし。
ここに持ち出してくるプログラムのデバッグよりも
ここに持ち出してくる人の発言のデバッグが難しかったりする(゚∀゚)
動作がおかしいというよりも、コンパイルを通らないって次元だな。
854 :
. |(●), 、(●)、.:| +:04/10/28 01:09:43
新たな宿題まだー!?
855 :
デフォルトの名無しさん:04/10/28 01:10:56
無知故に出来ない課題があります。
できるかたお願いします・・
〜課題文コピペ〜
線形リストに関する下記のプログラムを作成し、プログラムリスト、実行結果、考察を提出せよ。
データが昇順(辞書順)に並ぶように線形リストを作成していき、最後にすべてのデータを表示する。
なお、線形リストは、自己参照構造体とメモリの動的割り当てを使用して作成すること。
データは名前と年齢を使用する。
ただし配列で定義するのではなく、実行時にキーボードから入力すること(EOFの入力で終了とする)。
キーボードからデータが入力されたら、リスト構造を先頭から順に探索し、適切な位置に(名前が昇順に並ぶように)挿入するとよい。
※年齢は考慮しなくてもよい。
キーボードからEOFが入力されたら、リスト構造の先頭から順にすべてのデータ(名前と年齢)を表示する。
すいません、Cでお願いします。
借金をd,年利をi,毎月の返済額をxとしたとき、
d,i,xを引数として受け取り、借金の残額を計算する関数を作成し、その関数を使って
何ヶ月目で、最後の月に何円を返済して借金を返し終わるかわかるプログラムを教えてください。
860 :
デフォルトの名無しさん:04/10/28 01:29:26
f(x)=25x^3-8x-1を計算する関数プログラムを使用して、二分法によって
f(x)=0の近似解を求めるプログラムを作成しなさい
極大点(-√(8/75)、0.741959) 極小点(√(8/75)、-2.741859)
を求めて
x軸との3個の交点のうち真ん中の交点は
-√(8/75)<真ん中の交点<0
で二分法で求められるのですが
√(8/75)<右側の交点<?
?<左側の交点<-√(8/75)
他の交点は?の部分が分からなくて二分法で求められません
どうしたら求められるでしょうか?
C言語です
次のようなプログラムを作って下さい。
*---------*
*--------*|
|*------*||
||*----*|||
|||*--*||||
||||*-|||||
|||*---*|||
||*-----*||
|*-------*|
*---------*
このように渦巻きを描く様に。言語はCです。
お願いします。
すいません・・・。
ずれてます。四隅に*を表示して、内側に向かってだんだん渦を巻いて
行く感じです。ナルトの様に。
>>855 行数制限のために読みにくいのと(自分でどうにかしる)、再帰使いまくりだが。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct field_tag{char name[16];char age[4];struct field_tag *next;} field;
void search_and_insert(field *dest, const field *src){
field *temp;
if (dest->next == NULL){dest->next = (field*)malloc(sizeof(field));memcpy(dest->next, src, sizeof(field));}
else if (!(strcmp(dest->next->name, src->name) < 0)){temp = (field*)malloc(sizeof(field));memcpy(temp, src, sizeof(field));temp->next = dest->next;
dest->next = temp;}
else /* strcmp(dest->next->name, src->name) < 0 */search_and_insert(dest->next, src);
}
void free_all(field *ptr){if (ptr->next != NULL) free_all(ptr->next);free(ptr);}
int main(void){
field *root= (field*)malloc(sizeof(field)), *cur = root, temp;
memset(root, 0, sizeof(field));temp.next = NULL;
while(scanf("%s %s", temp.name, temp.age) != EOF){
search_and_insert(cur, &temp);
memset(&temp, 0, sizeof(field));
}
cur = root;
while (cur != NULL){
printf("%15s%4s\n", cur->name, cur->age);cur = cur->next;
}
if (root != NULL) free_all(root);
return 0;
}
*−−−−−−−−−*
*−−−−−−−−*|
|*−−−−−−*||
||*−−−−*|||
|||*−−*||||
|||| |||||
||||*−*||||
|||*−−−*|||
||*−−−−−*||
|*−−−−−−−*|
*−−−−−−−−−*
こんな感じか?
>>860 f(x)<0となるようなxを適当に入れればよい。-0.6でも-0.7でも。
最初の*までの|の数
-1, 0, 1, 2, 3, 4, 4, 3, 2, 1, 0
ーの数
10, 8, 6, 4,2 0, 1, 3, 5, 7, 9
これがヒントになりそう
>>863 ありがとうございます〜
/* strcmp(dest->next->name, src->name) < 0 */
の部分はコメントになってますが、不要という意味でしょうか?
ついでに質問なんですが
線形リストをポインタで連結しないで、
配列で作ったらノードの入力処理に関する計算量とかって
どのくらい違うんですか?
871 :
デフォルトの名無しさん:04/10/28 05:24:13
void delete(int x, NODE **p) {
NODE *q, **r;
r = p; q = *r;
while (q != NULL) {
if (q->val == x) {
*r = off(q);
if (q == *p) *p = *r;
return;
} else if (q->val < x) {
r = &(q->right);
} else if (q->val > x) {
r = &(q->left);
}
q = *r;
}
printf("%d not found.",x);
exit(1);
}
このdelete関数の意味がわかりません。教えてください。
872 :
デフォルトの名無しさん:04/10/28 08:09:10
ある金額が与えられた時に、日本にある硬貨を使って何通りの払い方があるかを
を求めるプログラムを教えてください。
言語はC++でお願いします。
↑Cだしかなり汚いけど。面白かった。
#include <stdio.h>
int count( int iYen, int iLev )
{
static int aiUnit[] = { 5, 10, 50, 100, 500, 1000, 5000, 10000 };
int i, iCnt = 0;
if( iLev )
for( i = 0; i <= iYen / aiUnit[iLev]; i++ )
iCnt += count( iYen - aiUnit[iLev] * i, iLev - 1 );
else
return iYen / aiUnit[iLev] + 1;
return iCnt;
}
void main( void )
{
int iYen;
while( 1 ) {
scanf( "%d", &iYen );
printf( "%d\n", count( iYen, 7 ) );
}
}
ちなみに11000〜12000円を入力するとオーバーフローする。
11000 -> 1220476374 通り
>>873 どうでもいいツッコミだけど、
日本にある硬貨を使って
~~~~~
その辺は、質問者が対応すれば
記念硬貨までいいだしたらきりが無い
でもvoid main()はよせ
5000円玉もあるよ!
A(x) = (1 + x + x^2 + x^3 + x^4 + x^5 + …)(1 + x^5 + x^10 + x^15 + x^20 + x^25 + …)
(1 + x^10 + x^20 + x^30 + x^40 + x^50 + …)(1 + x^50 + x^100 + x^150 + x^200 + x^250 + …)
(1 + x^100 + x^200 + x^300 + x^400 + x^500 + …)(1 + x^500 + x^1000 + x^1500 + x^2000 + x^2500 + …)
とすると、
N円の支払い方法は A(x) の x^Nの係数。
コンピュータには応用しにくいか…。
880 :
デフォルトの名無しさん:04/10/28 11:27:47
8人分のテストの点数を適当に決めて平均点以上の人数を表示するプログラム
麻衣子タンおねがいします
>>880 うるせえボケ
ネタはチラシの裏にでも書いてろ
釣られて適当に書いてみる
template <class T, unsigned N>
inline int
count( const T (&t)[ N ] )
{
double avg = std::accumulate( &t[ 0 ], &t[ N ], 0.0 ) / N;
return std::count_if( &t[ 0 ], &t[ N ], std::bind2nd( std::greater_equal<double>(), avg ) );
}
int main(){
int n[] = { 0, 10, 20, 30, 40, 50, 60, 70 };
std::cout << count( n ) << std::endl;
return 0;
}
883 :
デフォルトの名無しさん:04/10/28 11:59:05
for使ってできませんか?
度々思うのだが、ものすごーくしょうもない宿題ここに持ってきて
ソースもらって帰る椰子って、やっぱそれをそのまま提出してるんだろうか…?
その辺是非聞かせてくれ
>>880
885 :
デフォルトの名無しさん:04/10/28 12:03:45
配列を使って平均点求めるとこまでできたけど人数がでない。if使うとこからおねがいします。
できたところまで晒してみ。
887 :
デフォルトの名無しさん:04/10/28 12:24:30
#include <stdio.h>
int main (void)
{
int a[8] = {98,90,80,76,75,62,55,48};
int h,i,k;
float j;
for(h=0;h<10;h++){
i+=a[h];
j= i/10.0;
if (a[h]>=j){
k++;
}}
printf("Heikin = %.1f\n",j);
printf("Heikinijyou = %d\n",k);
}
>>887 (´Д`)…ネタか?
#include <stdio.h>
#define N 8
int main()
{
int i, n[N] = {0,10,20,30,40,50,60,70};
double ave = 0;
int np = 0;
for (i=0; i<N; i++)
ave += n[i];
ave /= N;
for (i=0; i<N; i++)
if (n[i] > ave)
np++;
printf("%d 人\n", np);
return 0;
}
889 :
デフォルトの名無しさん:04/10/28 12:28:40
人数だけがでないんです
890 :
デフォルトの名無しさん:04/10/28 12:32:12
できました
ありがとうございました
>>882 // count()はこうだべ。
template<class T, unsigned N>inline int count(const T(&t)[N])
{
return std::count_if(& t[0], & t[N], std::bind2nd(std::greater_equal<double>(), static_cast<double>(std::accumulate(& t[0], & t[N], 0)) / N));
}
// いや、集計はdoubleじゃなくていいんじゃないかなと
>>875-878 確かに硬貨って書いてるな。
しかも漏れのソースに2000円無いので通貨と考えても中途半端だ。
...2000円は流通してないから良いか?
void main() を脊髄反射的に否定するなよ。
こんなゴミコードの結果なんて誰も参照しないんだから。
脊髄反射が良いとは言わないが、居直られると擁護出来ない
894 :
デフォルトの名無しさん:04/10/28 13:59:45
新しい宿題投下します。
問:次の形式を持つ構造体配列 phonebook を N 件のデータであらかじめ初期化しておく。
名前を入力しその人の電話番号を出力するプログラムを作成せよ。
struct person {
char name[32];
char phone[16];
};
もれはどうでもいい
__________
<○√
‖
くく
オレが質問を止めているうちに答えろ!
早く!早く!オレに構わず答えろ!
>>893 居直ってるつもりはないけどね。
ただ問たいのは脊髄反射してるやつは void main() が何故いけないか判ってるか
という事なんよ。
よく居るでしょ、『.c ファイル中の define 駄目』とか『直値は絶対駄目』とかいう奴。
『そう教わった』からは寂しいなと...
>>894 簡単すぎて投下とは呼べない。
char* getPhoneNum( int N, person* pArr, char* name )
{
int i;
for( i = 0; i < N; i++ )
if( ! strcmp( pArr[i].name, name ) return pArr[i].phone;
return NULL;
}
だけで良いか?
宗教ネタと規格の話は別次元
>>897 int main()について言えば、
「規格に書いてあるから」と「そう教わったから」は大差ない気がするが…
実装系依存は避ける態度をつけましょう てことか?
単に無知が開き直ってるだけだろ。
>>894 #include <stdio.h>
#include <string.h>
static struct person {
char name[32];
char phone[16];
} phonebook[] = {
{"Alice", "1111-1111"},
{"Bob", "2222-2222"},
{"Carol", "3333-3333"},
{"Dave", "4444-4444"},
{"Eve", "5555-5555"}
};
static const int N = sizeof(phonebook)/sizeof(phonebook[0]);
int main (int argc, char *argv[]) {
int i;
if (argc < 2) {
puts("gimme vomit. hehehe.");
return 0;
}
for (i=0; i<N; ++i)
if (strcmp(phonebook[i].name, argv[1]) == 0) {
printf("fuck me. %s\n", phonebook[i].phone);
break;
}
if (i == N)
puts("DAMN ASS! SHIT! AHHHHHHHH!!");
return 0;
}
pc5鯖の新機能で水平TABが 4つに展開されるって話はネタだったのかね
くそったれ
int hoge(void) {
return 1;
}
>>899 言いたいのはね、脊髄反射するなら『警告を出すコンパイラもあるので』とかの
理由を付けてって事なんだ。
特に初心者が読むスレでしょここは。
>>900 ANSI規格も知らない無知で悪かったな。
>>855 配列で作ると、ある固定された数しかノードが作れないので、汎用性の面から論外。
線形リストをポインタでつないで連結すると、一回一回のメモリ確保でのオーバー
ヘッドは大きい。
ある大きさのメモリを動的確保して、足りなくなったら拡大という風にすると、拡大する
ときに全体をコピーしなおすオーバーヘッドが大きい。
両方の考えを使って、ある大きさのメモリを動的確保して、足りなくなったらまたある
大きさのメモリを動的確保してポインタでつないで連結すると、まぁ使える程度の
オーバーヘッドになるんじゃないかと思う。
int main(){
return 0;
}
EOF(=End Of File)を入力………
>>861 かなり本気で渦巻きを書いてみた
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* pos(char* data, int x, int y, int width){ return data + (width + 1) * y + x;}
int main(void){
int size, x = 0, y = 0, i;
char *matrix;
scanf("%d", &size);
matrix = (char*)malloc(sizeof(char) * (size + 1) * size);
memset(matrix, ' ', sizeof(char) * (size + 1) * size);
for (i = 0; i < size; ++i) *pos(matrix, size, i, size) = 0;
*pos(matrix, x, y, size) = '*';
for(; ; ) {
while (++x < size && *pos(matrix, x, y, size) == ' ') *pos(matrix, x, y, size) = '-';
*pos(matrix, --x, y, size) = '*';
if (*pos(matrix, x, y + 1, size) != ' ') goto exit_loop;
while (++y < size && *pos(matrix, x, y, size) == ' ') *pos(matrix, x, y, size) = '|';
*pos(matrix, x, --y, size) = '*';
if (*pos(matrix, x - 1, y, size) != ' ') goto exit_loop;
while (--x < size && *pos(matrix, x, y, size) == ' ') *pos(matrix, x, y, size) = '-';
*pos(matrix, ++x, y, size) = '*';
if (*pos(matrix, x, y - 1, size) != ' ') goto exit_loop;
while (--y < size && *pos(matrix, x, y, size) == ' ') *pos(matrix, x, y, size) = '|';
*pos(matrix, x, ++y, size) = '*';
if (*pos(matrix, x + 1, y, size) != ' ') goto exit_loop;
}
exit_loop:
for (i = 0; i < size; ++i) printf("%s\n", pos(matrix, 0, i, size));
free(matrix);
return 0;
}
もっと簡単にしてやれよ
#include <stdio.h>
int main(void)
{
puts("*---------*");
puts("*--------*|");
puts("|*------*||");
puts("||*----*|||");
puts("|||*--*||||");
puts("||||*-|||||");
puts("|||*---*|||");
puts("||*-----*||");
puts("|*-------*|");
puts("*---------*");
return 0;
}
>>913 普通に渦巻きを書いた方が'|','-','*'の数を考えるよりも簡単だと思ったからさ。
はうっ、goto書かなくてもbreakで行けた…馬鹿じゃん俺(_ _;
917 :
デフォルトの名無しさん:04/10/28 21:54:57
C言語の問題です。
sinxを0からπまで積分しなさい。
ただし、0からπまでを20等分して考え、forなどの繰り返し文は使用しない。
この問題ですが繰り返しを使わないとなるとどのようになるのでしょうか?
よろしくおねがいします。
for文を展開した形になるんじゃないのか?
goto を使う
>>918 だとしたら相当ナンセンスな問題だな
for文を習ってないならまだしも
再帰関数を使う
924 :
917:04/10/28 22:13:14
>>918-922 えぇ、まだfor文というものを習っていないんです・・・。
なにか良い方法はありませんか?お願いします。
・goto
・再帰
・while
・do 〜 while
・展開
> ・while
> ・do 〜 while
繰り返し文じゃねえか
展開しとけ
928 :
デフォルトの名無しさん:04/10/28 22:31:18
C言語の問題なのですが、
文の中の注釈を消すプログラムを作りなさい。
実行例 abc/*def*/
abc
aa/*ssss
aa/*ssss
昨日考えてるんですが全然分かりません。どうか助けてください。
コピペって可能性は?
>>928 問題の意味が不明なんだけど。
ついでに言えば、「昨日考えた」のか「昨日から考えている」のかどっちだ?
>>928 K&Rの練習問題のようだ…
C++(or C99)のコメントには対応しなくてもいいのか?
>>917 C++スレで答えた者だが、
#include <stdio.h>
#include <math.h>
#define PI 3.141592653589793
double func(double x) {
return sin(x);
}
double _integrate(double x, double h, double sum, int count) {
printf("%.2lf, %.2lf, %.2lf, %d\n",x,h,sum,count);
if (count <= 0) return sum;
else return _integrate(x+2*h,
h,
sum+func(x) + 4 * func(x + h) + func(x + 2 * h),
--count);
}
double integrate(double x1, double x2, int n) {
double h;
h = (x2-x1)/n;
return _integrate(x1, h, 0.0, n/2) * (x2-x1)/n / 3.0;
}
int main() {
printf("%lf\n", integrate(0.0, PI, 20));
}
C99以前
・入れ子は不可(×→/* /* */ */)
・/* 〜 */ のみ
C99以後
・入れ子可能(○→/* /* 〜 */ */)
・/* 〜 */に加えて // 〜 もあり
934 :
デフォルトの名無しさん:04/10/28 22:43:20
936 :
917:04/10/28 22:58:49
>>927 展開しておけとはどのように書けばようのでしょうか?
>>932 関数はまだやっていません。申し訳ありません。
//*
A
/*/
B
//*/
最初の/だけでABの選択可
>>928 /*という連続したものを探し当てたら、*/を探し当てるまでコメントとして扱う。
以上
>>936 ネタみたいだから、もう何も書かないけれど、ループをgotoで置き換えれば良い。
もしくは、
int main() {
double sum;
double x;
double h;
h = PI / 20;
x = 0;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
sum += sin(x) + 4 * sin(x + h) + sin(x + 2 * h);
x += 2 * h;
printf("%lf\n", sum);
}
と全て書く。
>>939 sumが初期化されてないし答えが間違ってるぞ
- double sum;
+ double sum = 0;
- printf("%lf\n", sum);
+ printf("%lf\n", sum * h /3.0);
>>940 もうどうでもいいやん
適当に書いたんだよ
>>943 ヒントものだね。
ないよりマシってやつだ。
という事にしたいのですね
948 :
デフォルトの名無しさん:04/10/29 01:12:52
/\___/ヽ
/'''''' '''''':::::::\
. |(●), 、(●)、.:| + 終わり?
| ,,ノ(、_, )ヽ、,, .::::|.
. | `-=ニ=- ' .:::::::| +
\ `ニニ´ .:::::/ +
,,.....イ.ヽヽ、ニ__ ーーノ゙-、
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||.
>>948 ざんねんだったな。
エシュロンのエサになりな!
950 :
872 :04/10/29 03:14:26
>>873さん、ありがとうございます!
レスが遅くなってすみませんでした。
僕もプログラムを組んでみていたのですが、
再帰のところの条件がうまくできなくて、∞ループに
なったりしていたんですが、おかげさまで解決できました!
>>879 おもしろいですね、僕も考えてみます。
最初から最後までどうしようもないスレだったな
953 :
デフォルトの名無しさん:04/10/29 12:42:38
次スレでも常識人さんが降臨しますように・・・
>>950,951
同じ学校?
判ってるとは思うが「硬貨」に直すなら main 内での count() の第2引数を 7 -> 4 にしる。
955 :
デフォルトの名無しさん:04/10/29 18:44:26
1900年以降の干支を出力するプログラムなのですが、下記のところが未熟者の私には限界です。
どうかご指摘お願いします。
#include <stdio.h>
int main(void)
{
char *eto[13][2]={"子","丑","虎","卯","竜","巳","午","未","申","酉","戌","亥",};
int e,da,sa,i;
printf("1900以降の西暦を入力して下さい\n");
scanf("%d",&e);
da=(e-1900)%12;9
for(i=0;i<=12;i++){
if(da==i){printf("%s",*eto[da]);}
}
return 0;
}
配列は12個で、定数"子"の型は char[]だから
char eto[][12]={"子", ・・・か
char *eto[12]={"子", ・・・のどちらか
printf("%s\n",eto[da]);
あとfor ループは不要
957 :
デフォルトの名無しさん:04/10/29 19:30:37
>>956様ありがとうございます
色々考えて下記のとおりになりましたが、なかなかうまくいきません。
ご指導の方、お願いします。
#include <stdio.h>
int main(void)
{
char eto[14][2]={"子","丑","虎","卯","竜","巳","午","未","申","酉","戌","亥",};
int e,i;
for(i=0;i<13;i++){
printf("%s\n",eto[i]);}
printf("1900以降の西暦を入力して下さい\n");
scanf("%d",&e);
printf("%s",eto[(e-1900)%12]);
return 0;
}
>>957 いいかげんにしろよ
話を聞く気が無いなら去れ
>>957 どんな症状かも言わないとは。人に尋ねる態度じゃないな。
大変申し訳ありません。m(_ _)m
956様のおっしゃることを再度考え直しましたところ、
解決することが出来ました。
ありがとうございました。
>m(_ _)m
なにこれ
最後までふざけた奴だな
>>961 ふざけてないんていませんよ!
氏んでください!
#include <stdio.h>
int main(void)
{
char eto[12][3]={"子","丑","虎","卯","竜","巳","午","未","申","酉","戌","亥"};
int e,i;
for(i=0;i<12;i++){
printf("%s\n",eto[i]);}
printf("1900以降の西暦を入力して下さい\n");
scanf("%d",&e);
printf("%s",eto[(e-1900)%12]);
return 0;
}
これじゃだめなんかねー
964 :
デフォルトの名無しさん:04/10/29 20:45:29
いや良いと思うぞ
細かいこというと 虎->寅 竜->辰 なわけだが
>>967 別に細かいことを言うのはオサーンの特性ではないぞ。
細かいことに気を使うことを「かっこわるい」だとか「器が小さい」などと
いう風に連想するような風潮があるみたいだが、それは良くない文化だ。
命題論理としてでもそれが正しいとは言えない。
969 :
デフォルトの名無しさん:04/10/30 00:22:54
for(i=1;i<=8;i=i+7){
if(data[i][1]!=0 && data[i][1]==data[i][3])point[i][2]+=20;
if(data[i][8]!=0 && data[i][8]==data[i][6])point[i][7]+=20;
if(data[1][i]!=0 && data[1][i]==data[3][i])point[2][i]+=20;
if(data[8][i]!=0 && data[8][i]==data[6][i])point[7][i]+=20;
}
これにもう一個if分使ってすっきりしたいんですけど、どうやるんですか?
970 :
969:04/10/30 00:35:46
if文じゃなくてfor文です
>>968 敢えて言うが、「風潮」は「文化」ではないね。
「風潮がある」ことも「文化」ではないし。
細かいことを指摘すること自体は賛同するが、
自分が普段使わないような言い回しを無理して使うことはないよ。
>>969 無理にループにしようとするより、この方が判り易くない?
if(data[1][1]!=0) {
if(data[1][1]==data[1][3]) point[1][2]+=20;
if(data[1][1]==data[3][1]) point[2][1]+=20;
}
if(data[1][8]!=0) {
if(data[1][8]==data[1][6]) point[1][7]+=20;
if(data[1][8]==data[3][8]) point[2][8]+=20;
}
if(data[8][1]!=0) {
if(data[8][1]==data[6][1]) point[7][1]+=20;
if(data[8][1]==data[8][3]) point[8][2]+=20;
}
if(data[8][8]!=0) {
if(data[8][8]==data[8][6]) point[8][7]+=20;
if(data[8][8]==data[6][8]) point[7][8]+=20;
}
って、展開してみてわかった。オセロの評価関数か。
976 :
969:04/10/30 01:02:03
>>974 正解です。
そっちのほうがわかりやすい気がするが、if文がまだまだあるので
できるだけすっきりしたい。
点対称・線対称で1/4に正規化したデータ作れ
#define hoge(x,y,z) ( (z) += (( (x) != 0 && (x) == (y) ) ? 20 : 0));
こんなマクロでも
int data[10][10];
int point[10][10];
void update_point_a(int x, int *n){
if( data[x][n[0]] != 0 &&
data[x][n[0]] == data[x][n[1]] )
point[x][n[2]] += 20;
}
void update_point_b(int x, int *n){
if( data[n[0]][x] != 0 &&
data[n[0]][x] == data[n[1]][x] )
point[n[2]][x] += 20;
}
void ( *func_tbl[] )(int, int* ) = {
update_point_a,
update_point_b
};
int main(){
int index1[2] = {1, 8};
int index2[2][3] = {{1,3,2}, {8, 6, 7}};
int i, j, k;
for( i = 0; i < 2; i++){
for(j = 0; j < 4; j++){
k = j % 2;
func_tbl[k](index1[i], index2[k]);
}
}
return 0;
}
980 :
969:04/10/30 01:34:26
>そっちのほうがわかりやすい気がするが、if文がまだまだあるので
>できるだけすっきりしたい。
ここまで言っといてそれはないだろ
982 :
969:04/10/30 02:09:08
>>981 すっきりできるように考えてたら、まったく進まない。
if文ずらーと書けば時間かかるけど、単純作業だし。
でも見せなきゃなんないからあほみたいな書き方したくない。
int data[8][8], point[8][8];
#define GET_PTR(a, x, y) ( &(a)[(x)][(y)] )
#define PDATA(x, y) GET_PTR(data, x, y)
#define PPOINT(x, y) GET_PTR(point, x, y)
#define UPDATE( a ) \
{ if( *((a)[0]) && *((a)[0]) == *((a)[1]) ){ *((a)[2]) += 20; } }
int *A[][3] = {
{ PDATA(1, 1), PDATA(1, 3), PPOINT(1, 2)},
{ PDATA(1, 8), PDATA(1, 6), PPOINT(1, 7)},
{ PDATA(1, 1), PDATA(3, 1), PPOINT(2, 1)},
{ PDATA(8, 1), PDATA(6, 1), PPOINT(7, 1)},
{ PDATA(8, 1), PDATA(8, 3), PPOINT(8, 2)},
{ PDATA(8, 8), PDATA(8, 6), PPOINT(8, 7)},
{ PDATA(1, 8), PDATA(3, 8), PPOINT(2, 8)},
{ PDATA(8, 8), PDATA(6, 8), PPOINT(7, 8)}
};
void foo(){
int i;
for( i = 0; i < sizeof(A) / sizeof(A[0]); i++){
UPDATE( A[i] );
}
}