1 :
デフォルトの名無しさん :
02/11/13 05:52
まもなくここは 乂1000取り合戦場乂 となります。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
http://big.freett.com/scheme_a/num1000.swf
まもなくここは 乂1000取り合戦場乂 となります。
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \______________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,,U (:::::::::::) ,,、,、,,, \ ぶーぶーぶー /
//三/|三|\ タリー
∪ ∪ (\_/)タリー タリー
( ´Д) タリー タリー
/ つ (\_/) (\_/)ノ⌒ヽ、
(_(__つ⊂(´Д`⊂⌒`つ(´Д` )_人__) ))
http://big.freett.com/scheme_a/num1000.swf
ここも荒れるな
1000!
>>1 は、死ね・くたばれ・消えろ・失せろ・潰れろ・馬鹿・あほ・間抜け・ドジ。
ポンコツ・トンチキ・ガラクタ・クズ・ゴミ・カス・最低以下の下劣・下等種族。
劣等種族・下衆野郎・腐れ外道・邪道・外道・非道・ウジ虫・害虫・ガン細胞。
ウィルス・ばい菌・疫病神・病原体・汚染源・公害・ダイオキシン・有毒物質。
廃棄物・発ガン物質・猛毒・毒物・アメーバ・ダニ・ゴキブリ・シラミ・ノミ。
毛虫・蠅・蚊・ボウフラ・芋虫・掃き溜め・汚物・糞・ゲロ・糞虫野郎・ほら吹き。
基地外・デタラメ・ハッタリ・穀潰し・ろくでなし・ごろつき・ヤクザ者。
社会の敵・犯罪者・反乱者・前科者・インチキ・エロ・痴漢・ゴミ・シデムシ。
ゴミ虫・毒虫・便所コオロギ・詐欺師・ペテン師・道化師・危険分子・痴呆・白痴。
魔物・妖怪・悪霊・怨霊・死神・貧乏神・奇天烈・奇人・変人・毒ガス・サリン。
ソマン・マスタードガス・イペリット・クソブタ・ブタ野郎・畜生・鬼畜・悪鬼。
邪気・邪鬼・ストーカー・クレイジー・ファッキン・サノバビッチ・シット・ガッデム。
小便・便所の落書き・不要物・障害物・邪魔者・除け者・不良品・カビ・腐ったミカン。
土左衛門・腐乱・腐臭・落伍者・犯人・ならず者・チンカス・膿・垢・フケ・化膿菌。
放射能・放射線・鬼っ子・異端者・妄想・邪宗・異教徒・恥垢・陰毛・白ブタ。
ケダモノ・ボッコ・ろくでなし・VXガス・ヒ素・青酸・監獄・獄門・さらし首。 打ち首・市中引きずり回し・戦犯・絞首刑・斬首・乞食・浮浪者・ルンペン・物乞い。 放射性廃棄物・余命1年・アク・割れたコップ・精神年齢7歳・3審は必要なし。 不良品、規格外、欠陥品、不要物、埃、掃き溜め、吹き溜まり、塵埃、インチキ、居直り。 ふてぶてしい、盗人、盗賊、残忍、残酷、冷酷、非情、薄情者、ガキ、クソガキ。 ファッキン、ガッデム、サノバビッチ、シット、ブルシット、ボロ、ボッコ、妄信。 狂信者、有害物質、毒薬、猛毒、発ガン物質、誇大妄想狂。 他人の悪口は山ほどほざくが反省は一切しないガキ根性野郎、腐れ根性。 腐って歪んだプライドの持ち主、狭量、ボケ、ボケナス、アホンダラ、たわけ。 怠け者、無能、無脳、脳軟化症、思考停止、アメーバ、単細胞、蠅、蚊、カビ。 腐敗、膿、下劣、下等生物、劣等種族、クレイジー、マッド、ストーカー。 人格障害、守銭奴、見栄っ張り、ええ格好しい、粗製濫造品、偽物、似非 イカレ、乞食、浮浪者、ルンペン、狼藉者、放蕩息子、道楽息子、極道息子。 迷惑、困りもの、厄介者、村八分、異端者、アウトサイダー 大虐殺者。ナチスドイツ、731部隊、ポルポト派らと同類。 そして、こんな悪口を言うために労力を使う価値もないクズ
ある日突然他人のPIDが見れるようになった。 PID 1192 ∧_∧ ∧_∧ Σ( ´∀`) (´∀` ) ( ) ( >>1 ) | | | | | | (____)__) (__(___) ドキドキ・・・ PID 1192 ∧_∧ ∧_∧ (; ´∀`)KILL 1192 (´∀` ) ( つ ( >>1 ) | | | | | | (____)__) (__(___) ヤター! ∧_∧ Σ( ´∀`) フッ・・・ ⊂ つ ...::::... | | | ::::::::::::::: (____)__) (__(___::
___ ガスッ |___ミ ギビシッ .|| ヾ ミ 、 グシャッ ∩_∧/ヾヽ | ,| ゚∀゚). .| |;, ゲシッ / ⌒二⊃=| |∵. .O ノ %`ー‐'⊂⌒ヽ ゴショッ ) ) ) )~ ̄ ̄()__ ) ヽ,lヽ) (;;;;;;;;;;;;;;;;;)(_(
ここは気持ち悪いインターネットですね。
糞スレ削除依頼終了
ヽ \
/ \ \
∧_∧/
(;´Д`) i i i
/ ヽ _ i i i--、
./| | | |  ̄ ̄ ̄ |:::::|.
/ \ヽ/| | ノ__ノ..
/ \\| |
/ /⌒\ し(メ .i i i . .
/ / > ) \ ノノノ
/ / / / .\_ ザックザック
し' (_つ /:::::/::... /ヽ
; "ノ・ ./∴: / )i iヽ-、_へ ,ヘ
'',, : :―― / / i i i iヽ . ̄ ゙― ノ /
n_ _/; i .ノ / /ノ-' ̄ ゙ ― 、__ノ
_ノ 二二二、_( _Д_ ;)-ヽ_ノ-'
>>1 ゙ー ''~ ∨ ̄∨
_ _ .' , . ∧_∧
∧ _ - ― = ̄  ̄`:, .∴ ' ( ) ←
>>1 , -'' ̄ __――=', ・,‘ r⌒> _/ /
/ -―  ̄ ̄  ̄"'" . ’ | y'⌒ ⌒i
/ ノ | / ノ |
/ , イ ) , ー' /´ヾ_ノ
/ _, \ / , ノ
| / \ `、 / / /
j / ヽ | / / ,'
/ ノ { | / /| |
/ / | (_ !、_/ / 〉
`、_〉 ー‐‐` |_/
_ー ̄_ ̄)’, ・ ∴.' , .. ∧_∧
∧ --_- ― = ̄  ̄`:, .∴ ' ( ) ←
>>1 , -'' ̄ = __――=', ・,‘ r⌒> _/ /
/ _-―  ̄=_ )":" . ’ | y'⌒ ⌒i
/ ノ  ̄ ̄=_ ` )),∴. | / ノ |
/ , イ )  ̄= , ー' /´ヾ_ノ
/ _, \ / , ノ
| / \ `、 / / /
j / ヽ | / / ,'
/ ノ { | / /| |
/ / | (_ !、_/ / 〉
`、_〉 ー‐‐` |_/
∧_∧ ∧_∧
_( ´∀`) (´∀` )
三(⌒), ノ⊃ (
>>1 .) おまいは
 ̄/ /) ) | | |
. 〈_)\_) (__(___)
∧_∧ .∧_∧
( ´∀) (´∀` )
≡≡三 三ニ⌒)
>>1 .) 何考えて
/ /) )  ̄.| | |
〈__)__) (__(___)
∧_∧ ,__ ∧_∧
( ´)ノ ):;:;)∀`)
/  ̄,ノ''
>>1 . ) このスレ立てたんだよ
C /~ / / /
/ / 〉 (__(__./
\__)\)
ヽ l //
∧_∧(⌒) ―― ☆ ―――
( ) /|l // | ヽ ヴォケがーー!
(/ ノl|ll / / | ヽ
(O ノ 彡'' / .|
/ ./ 〉
\__)_)
/ヽ /ヽ / ヽ / ヽ ______ /U ヽ___/ ヽ なにこのスレ… | ____ / U :::::::::::U:\ | | \ // ___ \ ::::::::::::::| | |Д`) | | | U :::::::::::::| | |⊂ |U | | ::::::U::::| | | | ├―-┤ U.....:::::::::::::::::::/ | |____ ヽ .....:::::::::::::::::::::::< └___/ ̄ ̄ :::::::::::::::::::::::::| |\ | :::::::::::::::::::::::| \ \ \___ ::::::
ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ /ヽ
,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、
[ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | }
゙l |`} ..:ヽ--゙‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ //
. i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./
` ー==--‐'´(__,. ..、  ̄ ̄ ̄ i/‐'/
i .:::ト、  ̄ ´ l、_/::|
! |: |
ヽ ー‐==:ニニニ⊃ !:: ト、
おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。
まず「クソスレ」を英字で表記する
『KUSOSURE』
これを逆にすると、
『ERUSOSUK』
そしてこれを更に日本語に直すと
『エルソサク』
スレを立てたのが
>>1 と言う事を考えれば末尾に『真性DQN』を加えるのが当然だ。
すると導き出される解は
『エルソサク真性DQN』
そして最後の仕上げに意味不明な文字『エルソサク』
これはノイズと考えられるので削除し残りの文字を取り出す。
するとできあがる言葉は・・・・・・『真性DQN』。
つまり!『真性DQN』とは『まさに
>>1 』を表す言葉だったのだ!!
/ヽ /\ _∧_∧/ \__/\_/ \__∧/|__/\ \ クソスレを牛耳るわれらこそ・・・・・・・・・・ \ < 王っ・・・・! / / 築くんだっ・・・・・・・・!王国をっ・・・・・・! \ |/\ / ̄ ̄V ̄\/ ̄ ̄\ / ̄ ̄ ̄ ̄V ̄V\| ̄ \/ \/ :::::::::::::::::::: ::::::::::/ )::::::::: :::::(\::::::: _人 / / )::::::::::: :::::/\\ ノ⌒ 丿 / / /ヽ:::::::::::: :::: ヽ \\ _/ ::( / / / /:::::::::::::::: :::: ( \ \\ / :::::::\ l 三 / / )::::::::::::::: :::::::ヽ ヽ . ミヽヽ ( :::::::;;;;;;;) / 二 / /:::::::::::::::::: ::::::: ( \ ヽミ ヽヽ \_―― ̄ ̄:::::::::: / 二 ___/ヽ ...:::::::::::::: ::::... /ヽ ヽ ニ ヽヽ ノ ̄ :::::::::::::: // ニ _______/ ...::::::::: :::. ヽ____ ニ ヽ ( ´Д` ::::::::::::::;;;;// ニ ____ノ .....:::::::::: ヽ___, ニ/ ̄――――― ̄ ̄::::::::\ ニ ___ノ + + ....::::::::: ヽニ -‐( :::::::::::::::::::::::::::::::::≡ __ノ+ ┼ *::::::::: ヽ---\__::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;ノ_ + ┼ .:::::::::: :::::... + ┼ + + ー-、___~'''''ー-、 :....:::::::::::: :::::::.... + ┼ *+ +~~'''ヽ ..:...:::::::::::::::::::: :::::::::::::::::..... + * . ┼ :....::::::::::::::::: ::::::::::::::::::::....: + * + .....:::::::::::::::::
>>1 ,. -───-: 、
/::::::::::::::::::::::::::::::::\
/ '':::::::::::::::::::::::::::::::''''' ヽ
!::::::::::ィ::ハ:::;::::::::::::::::::::::::::!
i::|:::i::/l/ i;::ト、:、:::i:::::::::::::::i
|::i/レ'-i'' 'ヽi-ヾ,ヽ!:::::::::::::l
|::ハ -‐- -─- i::::::::::::::l
|::::::l| | | | |::::::::::::::!
|::::::ヽ | r---、! l,.!::::::::::::::l
l::::::::::::`;'-'=,‐,='r''i~!:::::::::::::::|
!:::::::l、::r'"´'. ' l ' i::::::::iヽ:::l
i:l、:::|./、_____,l::::;l:/‐'ヽ!
'!ヽ;i'>l____,.//-‐'''"ヽ
!/ |.VVVVVVVV.lV\!. i
| | | l
\ 馬 / \ 鹿 / ∩ ∩ | つ 「,"| ヾ∧ !,'っ_ ⊂_,! / ・ |ミ / ・ ヽつ (_'... |ミ ▼,__ | (゚Д゚; )..|ミ (゚Д゚ ,)・| (| .、)| (| 、)| | | | ・・| ヽ.._人 ヽ._・ν U"U U"U
ここも所詮は2chか。
\もうね、アボガド/ \ 馬 / \ 鹿 かと/ ∩ ∩ | つ ⊂| ∧ノ~ ! ,'っ _c,! ヽ ミ| ・ \ ⊂/ ・ \ γ⌒^ヽ ミ| ... '_) | __,,▼ /:::::::::::::ヽ. ミ|. (,,゚Д゚) |・ (,,゚Д゚) /.::::::::(,,゚Д゚) | (ノ |) | (ノ |) i:::::(ノDole|) | 馬 | |・・ .鹿 | ゙、::::::::::::ノ 人.._,,,ノ ι.・,,_,ノ U"U U"U U"U
-----Original Message-----
From:
[email protected] Sent: Thu 12/7/2000 5:59 AM
Subject: Virus alert
Importance: Low
DEAR RECEIVER, DEAR RECEIVER,
あなたはたった今、新しいルーマニア製
You have just received a new Romanian virus. ウィルスを受け取りました。ルーマニア
Since we are not so technologically advanced ではそれほどテクノロジーが発達してい
in Romania, this is a MANUAL virus. Please ないので、これは「手作業」ウィルスで
delete all the files on your hard disk す。どうかハードディスクの中のファイ
yourself and send this mail to everyone you ルを全部消去して、このメールを知り合
know. い全員に送ってください。
, /ヽ、 ,, -ー――- 、 (.::::::ー'' ......::::::::::::::::::::::.` 、 < ..........:::::.::::::::::::::::::::::::::::::....i わーい | ゝ..::::::/ ヽ.::::::::, 、:::::::::::::::::i .| |,ヽ_( ) ノ―ヽ ::::::::::::::::i わーいわーいわーい || 、 、 \:::::::::::i わーいわーいわーいわーいわーいわーいわーい | ⌒ ノ ⌒ |::::::::::ヽ | ヽ |/ヽ:::::::ゝ、 .| iiiii -―- iiiii ノ::::ノ-ー ┐_ わーい _ _ ヽ ヽ- ノ ヽノ' | 何やってんの??ねぇねぇねぇねぇねぇ / ヽ、 , ' ノiiiiiiil | ねぇねぇねぇねぇねぇねぇねぇねぇ | liii` ー '' 'iiiiiiiiil | __ ねぇねぇねぇねぇねぇ __| liiiiiiiii\、 _,,ノiiiiiiiiiiiil し ねぇねぇねぇねぇねぇねぇ
/⌒ヽ / ̄ヽ _|__ヽ,-/ | ,,-'"....:::::::::::::::::::::::ヽ、 | /..........:::::::::::::::::::::::::::::::::ヽ_ノ /::::::::::::::::::::::::::::::::::::::::::::::::::::ヽヽ. もう!ハイジったら /:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ヽ ヽ 邪魔邪魔邪魔邪魔邪魔 |::::::::::|ヽ(\( \__ヽ_ヽ、::::::::::::::::::i ヽ. 邪魔邪魔邪魔邪魔邪魔邪魔邪魔しちゃ ヽ::::::::i -‐- -‐‐- ヽ::::::::::::::::i / 悪い悪い悪い悪いわよ! \::i`'⌒ `⌒ |::::::::::::::::i i::::::i ノ |::::::::::::::::::i |:::::::i ヽ__ /::::::::::::::::::::i やめやめやめやめやめやめやめなさい! |:::: ::ヽ 丶 ノ /::::::::::::::::::::::::i |:::: :::::\ ` , /::::::::::::::::::::::::::::i |::: :::::::::``. - ´ |::::::::::::::::::::::::::::::i i::::: :::::::::::::::ト、_,,/´ ヽ::::::::/‐、:::::/ /lヽ::::: :::::::::::|/ヽ / ̄ /ヽ / | ヽヽ:::::::::| \/ / ヽ / ヽ ` T `>lコ< ̄| ,/ ヽ / ヽ |/|| || \| ,/ ヽ \___| |_| |__/ | | | |
クソスレの治療はできないんですか?
/ .\
/ .\
\ / \ /
\ ___________ . /
\ ./ \ /
| \/ \/...|
| | | |
| | | |
.._ |_| |_|_..
| | さあ‥
>>1 よ‥‥ .| |
| | 逝こうか‥‥ | |
| | | |
| | | |
| |/ ..\| |
| | | |
.._|/| _ _ _ _ _ _ _ _ ...|\|_
/ ..| | _−_−_−_−_− _ | | \
| |/_/━ ━ ━ ━ ━ ━\_\| |
.._| /_/━ ━ ━ ━ ━ ━ ━ \_\.|_
/_/━ ━ ━ ━ ━ ━ ━ \_\
/ /━ ━ ━ ━ ━ ━ ━\ \
γ γ
∧_∧ どうして どうして γ
(::::::::::: )
>>1 のような人が いるんだろう ......................................
.(○::::::: ) .::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::........
~"''"""゛"゛""''・、 ...:::::;;;'' ';;;:::::.......
"”゛""''""“”゛゛""''' "j' ...::::;;;'' '';;;::::::.........
:::::ヘ :::::....ヽ :::;;;ノ ::( ....::::::;; '';;;::::::::::.......
:: ゝ :::::......ノ:;;../
>>1 ↓
| △ |
| 〔(゚ ∀ ゚)〕 |
(⌒⌒⌒⌒⌒⌒⌒)
|⌒⌒⌒ <⌒ヽ o 。 うああぁぁ...
| <_ ヽ。
| o とノ ノつ
| 。 .| 〜つ
∧_∧ .∧_∧
_( ´∀`) (´∀` )
三(⌒), ノ⊃ (
>>1 ) 糞スレは立てるなって
 ̄/ /) ) | | |
. 〈_)\_) (__(___)
∧_∧ ,__ ∧_∧
( ´)ノ ):;:;)∀'''')
/  ̄,ノ'' バ ) 言っただろうが
C /~ / / /
/ / 〉 (__(__./
\__)\)
ヽ l //
∧_∧(⌒) ―― * ―――
( ) /|l // | ヽ ヴォケー!!
(/ ノl|ll / / | ヽ
(O ノ 彡'' / .|
/ ./ 〉
\__)_)
\ | /
― ☆ ― ←
>>1 ∧_∧ / | \
(´∀` )
( )
| | |
(__(___) ・・・とおもったけどいいスレじゃん
もはやガン細胞では・・・
/|| ミ / ::::|| ミ /:::::::::::|| |:::::::::::::::|| ̄ ̄ ̄ ̄|| |:::::::::::::::||│ / || |:::::::::::::::|| ̄\ ガチャッ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |:::::::::::::::||゚ ∀゚)─ || < クソスレ停止スイッチオン!をやっていいですか? |:::::::::::::::||_/ || \______________________ |:::::::::::::::||│ \ || |:::::::::::::::||∧ ∧∩ || |:::::::::::::::|| ゚∀゚)/ .|| |:::::::::::::::||∧ ∧∩ || |:::::::::::::::|| ゚∀゚)/ .|| |:::::::::::::::|| 〈 .|| |:::::::::::::::||,,/\」 .|| \:::::::::::|| ̄ ̄ ̄ ̄ \ ::::|| 彡 \|| 彡 \ │ / / ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ─( ゚ ∀ ゚ )< 停止スイッチ \_/ \_______ / │ \ ∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< オン! . クソスレ〜〜〜! >( ゚∀゚ )/ | / \__________ ________/ | 〈 | | / /\_」 / /\」  ̄ / / "
,,-' _,,-''" "''- ,,_  ̄"''-,,__ ''--,,__ ,,-''" ,, --''"ニ_―- _ ''-,,_ ゞ "- て / ,,-",-''i|  ̄|i''-、 ヾ { (" ./ i {;;;;;;;i| .|i;;;;;;) ,ノ ii ,, ( l, `'-i| |i;;-' ,,-'" _,,-" "'-,, `-,,,,-'--''::: ̄:::::::''ニ;;-==,_____ '" _,,--''"  ̄"''-- _-'':::::" ̄::::::::::::::::;;;;----;;;;;;;;::::`::"''::---,,_ __,,-''" ._,,-'ニ-''ニ--''" ̄.i| ̄ |i-----,, ̄`"''-;;::''-`-,, ,,-''::::二-''" .--i| .|i "- ;;:::`、 ._,-"::::/  ̄"''--- i| |i ヽ::::i .(:::::{:(i(____ i| .|i _,,-':/:::} `''-,_ヽ:::::''- ,,__,,,, _______i| ゚ ∀ ゚ .|i--__,,----..--'''":::::ノ,,-' "--;;;;;;;;;;;;;;;;;""''--;;i| .|i二;;;;;::---;;;;;;;::--''"~  ̄ ̄"..i| .|i .;.;"..;.;" .i| |i/ ".;.;".;": .;".;": . \( ⌒.i| |i )⌒)/".;.;".;": .;".;": ..;. ;( ⌒( .i| .|i⌒) )⌒".;.;".;":. .;".;": ..; 从へへΣ( ∩ ∧ ∧∩/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧∩\ ( ゚∀゚)< クソスレクソスレクソスレ! クソスレクソスレ! >( ゚∀゚ )/.;| /;.\___________ ________/.:| 〈.;".| | .;.;"..;.;"..;.;". .;.;"..;.;"..;.;.;."/ /\_」;..;./ /\」 .;.;"..;.;"..;.;". .;"..;.;"..;.;.. ̄..;.;"../ /..;.;"..;.;"..;.; ..;.;"..;.;"..;."..;.;"..;.;".;
☆ シャットダウン中・・・ ☆ ┌──────────────────────―─┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. ... | │ | │ | │ スレッドを終了しています。. | │ しばらくおにぎりでお待ちください。 | │ | └───────────────────────―┘ シャットダウンの途中でエラーが発生した場合は、 「無視(I)」 を選択して続行してください。
38 :
1001 &rlo;daerhT 0001 revO :02/11/13 06:48
このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
ここが新すれのようですね。 また頑張りましょう!!
39=1 は逝ってよし
∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ / つ 終 了. | 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ε3
ワラタ
クソすれ
クソすれ
荒らしを晒しage
47 :
デフォルトの名無しさん :02/11/13 12:30
荒らしって 1 の事だろう
ああ、sgeちゃったYO・・・スマソ
☆ チン
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< クソスレハケーソ
\_/⊂ ⊂_)_\____________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| 全日本クソスレ同盟|
なんで42がまだ790しかレスついてないのに新スレ立てるのかな?
>>1 の考えがよくわからない。
>>49 790 レスじゃないよ。
タイムスタンプからして、624 レスのあたり。
ちなみに、
>>1 の降臨は 734-749 あたり。
>>53 ageているし。
よほど必死なんだね(プ
おまえらほんとに厨だな。 荒らしてねーで前スレ終わるまでじっとしてろよ。
つーか、このスレを放置して、新スレ立てればいいだけの話では? 書き込めば寿命延びるし。
スレを立てる練習をするスレはここですか?
糞スレは 放置
次スレage
ここ、今夜にはきそうだね
死にそうな予感
なんか上手く書き込めなくない?
次スレこれでいいよ。
たのむから誰かchar *c[43] = {"C言語相談室"};で立ててくれ・・・
68 :
デフォルトの名無しさん :02/11/14 22:26
激しく死にそうな予感
>>64 20秒くらいかかるかも・・・
てか何回もボタン押す
おれだけじゃなかったのか。
71 :
デフォルトの名無しさん :02/11/14 22:27
次スレは診断失で
俺も立てられない。 char *c[43] = {"C言語相談室"}; で頼む。神よ。
DQNがCスレを自然消滅させようと糞スレを立てています。
>>72 どうせなら実験的にさ
論争スレたててみようぜ。
意外にいいかんじなるかも
75 :
デフォルトの名無しさん :02/11/14 22:29
万乗一致でクソは 69。
>>74 論争スレなら既にあるぞ。
結局質問スレが論争スレになってしまうんだが。
char *c[43] = {...} ←これキモくねえ?
69=1
なんでタイトルが「C言語なら俺に聞け」じゃなくなってるんだ?
これどこちがう? int sel_sort(int *data,int *s,int num) { int i,min,temp; min = num-1; for(i=min;i>=*s;i--) if(data[i] < data[min]) min = i; temp = data[min]; data[min] = data[*s]; data[*s] = temp; *s=*s+1; if(*s != num) sel_sort(data,s,num); return(0); }
85 :
デフォルトの名無しさん :02/11/14 22:34
ファイルを開く関数を教えてください!!!!!!!!!
☆ シャットダウン中・・・ ☆ ┌──────────────────────―─┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. ... | │ | │ | │ スレッドを終了しています。. | │ しばらくおにぎりでお待ちください。 | │ | └───────────────────────―┘ シャットダウンの途中でエラーが発生した場合は、 「無視(I)」 を選択して続行してください。
誰かちゃんとしたスレ立ててくれ。
オレが立ててくる スレタイはどうする? charでいいのか?
C ス レ 終 わ っ た な ワラ
>>89 char *c[43] = {"C言語のことは俺に聞け"};
>>89 いいけど、俺に聞けはダメ。C言語相談室で
俺に聞け厨必死だな
相談室だけはやめてくれ。 つーかスレの内容に合わないだろ。
96 :
デフォルトの名無しさん :02/11/14 22:44
相談室はダメ
俺 に 聞 け 厨 必 ss
100 :
デフォルトの名無しさん :02/11/14 22:47
ひとつ質問させてください。 今まで文字列のコピーには、 strncpyで受け側バッファのサイズ-1をコピーして、 その後memsetで受け側バッファの最後に'\0'を入れてたのですが、 最近上司から、それだと遅いらしいから止めろと言われました。 実際この方法は(他よりも)遅いのでしょうか? 遅いとしたら、もっと速い方法ってあるのでしょうか? 処理系にもよるとは思いますが、大体の傾向でかまいませんので教えてください。 お願いします。
>>100 >>その後memsetで受け側バッファの最後に'\0'を入れてたのですが、
何故だ?
>>最近上司から、それだと遅いらしいから止めろと言われました。
らしいから、ってなんだよ?
部下も部下なら上司も上司だな(w
>>100 strlen + memcpy したら。
>>100 > 受け側バッファの最後に'\0'を入れてた
strncpy() にはもともとそういう機能がある。
マニュアルちゃんと読め。
strncpy は最後に\0入れる? n文字以上だったら入れないように思えるんだけど。 n文字以下だったら残りを\0で埋めるんじゃないの?
失礼。 NULL止めなんて言うと怖い人たちに突っ込まれそうだ。 ナル文字止めと訂正。 あと、103の奴だけだとナル文字止めがないからstrcpyの予感も訂正。
そうだね。↓ は期待通りに動かない。 int main() { char buf[10], str[] = "1234567890"; puts(strncpy(buf, str, sizeof(buf))); return 0; } でも、いいから新スレ逝けよ。
いいから新そば食えよ。
char *strncpy(char *s, char *t, int n) { n = (strlen(t) < n) ? strlen(t) : n-1; memcpy(s, t, n); s[n] = '\0'; return s; }
糞スレは 落ちろ
糞スレは 落ちろ
荒らしている奴は氏ね
>>100 全体の処理が遅くなるほどに使いまくっているのか。
本当にその部分に処理速度が必要なのかをまず考えろ。
>>103 str系の関数を使ってもstrlen + memcpy使っても性能はかわらん。
117 :
デフォルトの名無しさん :02/11/14 23:08
弱気な部下と無能な上司をさらに超える二人の馬鹿がいるスレはここですか?
☆ シャットダウン中・・・ ☆ ┌──────────────────────―─┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. ... | │ | │ | │ スレッドを終了しています。. | │ しばらくおにぎりでお待ちください。 | │ | └───────────────────────―┘ シャットダウンの途中でエラーが発生した場合は、 「無視(I)」 を選択して続行してください。
アーッヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャ!!
121 :
デフォルトの名無しさん :02/11/14 23:11
☆ シャットダウン中・・・ ☆ ┌──────────────────────―─┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. ... | │ | │ | │ スレッドを終了しています。. | │ しばらくおにぎりでお待ちください。 | │ | └───────────────────────―┘ シャットダウンの途中でエラーが発生した場合は、 「無視(I)」 を選択して続行してください。
なんでmemset? memsetって全部埋めてしまうやつだよ。
クソすれ ウザイ
☆ シャットダウン中・・・ ☆ ┌──────────────────────―─┐ │ | │ | │ /■\ | │ (´∀`∩) | │ (つ 丿 | │ ( ヽノ | │ し(_) | │ | │ Now Onigiring. ... | │ | │ | │ スレッドを終了しています。. | │ しばらくおにぎりでお待ちください。 | │ | └───────────────────────―┘ シャットダウンの途中でエラーが発生した場合は、 「無視(I)」 を選択して続行してください。 「無視(I)」 を選択して続行してください。
>>123 最近の傾向として初心者はまず
char str[100];
memset(str , 0 , 100);
で初期化する。だぶん後じゃなくて最初にやっているんだろう。あへっ
>>123 受け側バッファのサイズは分かっているっつってんだから、
テキトーにポインタ進めて1バイトだけ'\0'書いてるんだろう。多分。
memset関数である必要がないのは事実と思うが。
memset(C言語質問所 <43>)
>>126 char str[100] = "";
で初期化されない?
>>127 memset(s+n, '\0', 1);とか書いてるんだろうか?
だったらs[n]='\0'で十分なのだが・・・。
うんこー
うんこー
流れないよ〜!!
>>130 それだとstr[0]だけ初期化される。
最初に配列全部を'\0'で初期化しておけば、
strncpy(str , "test");
ってやってもとりあえずtestのあとに'\0'が既にはいっているので安心。
多分初心者にPGをさせなければいけなくなったが'\0'を理解できさせなかったので
最初に全部初期化させることで最悪の事態を避けようとしたものが広まったとか広まらないとか・・・
>>134 strncpyの使い方でも調べてから書いたほうが良いんじゃないか(ワラ
一般にバグ防止やセキュリティのためにはstrncpyを使う〜ってのがセオリーだが、 そのためのパターン1は >100 のやってるパターン。 で、バッファサイズに比べコピー対象が少ないと無駄が出るというのが >107 の意見。 ところでstrlenしたりして、バッファサイズを調べて、 超えないなら普通にstrcpy、超えるならstrncpy+末尾止めするとしたとき、 普通に >100 のパターンと比べて速くなるもんだろうか? 上記処理ってstrncpyがムダに'\0'を埋める作業の、どのくらいに相当するのかな?
ボビーはもうええっつうの そんな恥ずかしいことよくHNつけて書きこめるな
strncpy ってソース側の文字列がヌル文字終端されてない(または、されてる確信がない) ときに使うもんじゃなかったの?
>>134 配列は初期化の数が少ないと0で埋めるでしょ。
int hoge[100] = { 0 };
こういうのは文字列には適用されないの?
>>134 初期化の動作を確認してから書いてください。
>>138 すでに10文字が入っている文字列のうち、
はじめの3文字だけ上書きして残り7文字はそのまま〜みたいな使い道と思ってた。
>>138 おいおい。
ヌル文字終端されてない文字列なんて扱ってるのかよ。
>>134 まず自分が初心者であることに気づくべき。
>>141 それがやりたい場合は、長さ 0 の文字列に対して strncat()。
C FAQ のどっかに書いてあったと思う。
>>134 まずボビーというHNをやめるべきことに気づくべき。
>>143 C FAQによるとすでに時代遅れになったとはあるが、ナル文字止めされていない
データパターンは存在している(いた?)
個人的に
>>141 の解釈は気づかなかった。
一部だけ取り出したい時はstrncpy(dest,src,5);dest[5]='\0';とかdest[0]='\0';strncat(dest,src,5);か?
これで我慢しとけ。Win32のlstrcpynと同じ仕様だ。 char *strcpyn(char *str1, const char *str2, size_t count) { if(count) { char *dst = str1; while(--count && *str2) *dst++ = *str2++; *dst = '\0'; } return str1; }
何を我慢するのやら
>>149 ふと思ったのだがmemcpyとstrncpyの違いって何?
引数がchar型強制と返り値だけ?
\0後の動作が違う。
文字列の場合はmemcpyだろうがstrncpyだろうが効果は同じだよね。 あくまでも文字列として扱う場合ね。
>>153 そうか……俺的に諸悪の根源のあの動作か。
サンクス。
>>156 頑張らないといけないなんて、やっぱり読みづれー。
>>158 「あくまでも文字列として」の意味がわからんよ。
後ろをゼロで埋めるところが違う。
162 :
デフォルトの名無しさん :02/11/14 23:56
>>161 文字列として扱う場合は\0以降は見ないだろ。
というわけでmemcpyは文字列以外の配列のコピーにしか使わない。
正直 >150 の仕様が一番使いやすそうだよなぁ、やっぱ。
何?150のどこが読みづらいの?
>>164 それはどうかと思う
見ないってのはプログラマが見ないという意味だよ
あれが読みづらいと言ってるヤツは初心者。 約1名しかいないようだが。
これで我慢しとけ。Win32のlstrcpynと同じ仕様だ。 char *strcpyn(char *str1, const char *str2, size_t count) { *str1 = '\0'; return strncat(str1, str2, count); }
char *strcpyn(char *str1, const char *str2, size_t count) { if (count) *str1 = '\0'; return strncat(str1, str2, count); }
char *strcpyn(char *str1, const char *str2, size_t count) { if (count <= 0) return str1; *str1 = '\0'; return strncat(str1, str2, count-1);
これで我慢しとけ。Win32のlstrcpynと同じ仕様で動く時もある。 #define strcpyn(str1,str2,count) \ (*(str1) = '\0', strncat(str1, str2, count))
あ。 strncat() ってバッファが足りない場合は strncpy() と同じく終端 '\0' 付けてくれないのね。 ごめそ。
>>173 > if (count <= 0)
ダサ。
size_tがunsignedであることって保証されてたっけ? でないと引数がマイナスで来る可能性もあるよね。
「サイズ」がマイナスだと困るな
>>176 だから自分のスタイルと違うのを馬鹿にするなって。
>>180 サンクス。
ってなると
>>173 で if (count <= 0) ってやってるのはダサいことになるかな。
一回しかクリックしてないのに二重カキコって言われる・・・。
>>181 いま吉良さまが戦っている。
>>184 キングクリムゾンの能力で1度目押したことを認識しなかったのだよ。キミは。
if (!count) か?
>>184 テキストの末尾に、適当に全角スペースとか加えてみろ。
>>182 いや、おまえのように自信のない奴はつけておいた方が確実。
>>187 いや、それがだね。エラーといわれたのにちゃんと書き込まれているのだよ。
countがunsignedのときコンパイラによっては if (count <= 0) と書くと警告出す場合も
>>182 いや、おまえのように自信のない奴はsize_tで定義しない方が確実。
>>182 いや、おまえのように自身のない奴は包茎手術した方が確実
196 :
デフォルトの名無しさん :02/11/15 00:38
ちょっと目を離したスキにネタスレになってるYO・・・ トゥトゥトゥマシェーリー
「糞スレ本来の姿に」
>>195 はぁ?マジで剥けてるって。包茎がひがむな(ワラ
199 :
デフォルトの名無しさん :02/11/15 00:44
くやしい・・・
日本の男性の7割は包茎なんだから気にすんな
>>198 いいからさっさとアデランスにダイヤルしる!
見合いくらいならできるようになるかもしれんぞ(ワラ
なぜ包茎の話でアデランスとか言い出してんのか謎。
203 :
デフォルトの名無しさん :02/11/15 01:00
原因は 194+195
>>202 ここは2chだからそういうバカはよくいる
「お隣さん」で論争が始まったっぽい
202がなぜ包茎の話をすることには疑問を もたないのか謎。
ってか日本人男性の七割が包茎なんて都市伝説みたいなもんだろ
。 207 がいぢめるYO〜!!! 。 ∧_∧。゚ ゚ (゚ ´Д`゚ )っ゚ (つ / アァァァァ | (⌒) し⌒^
いいじゃん包茎でも。おまえらに迷惑かけたか?
しかし、事実上スレが分かれたが、別に悪い事ではないな。
あっちは論争&質問スレ、こっちは包茎&ズル剥けスレ。
214 :
デフォルトの名無しさん :02/11/15 01:56
オレがあっちの1だよ。マジで。 どうでもいいけどこのスレ邪魔だ。削除依頼だしとけ。
221 :
デフォルトの名無しさん :02/11/15 02:20
>>218 だからお前誰だって。勝手に1なのるんじゃねーよ。
荒れてまつね
俺があいつであいつが俺で?!
荒らす奴がいなければこのスレも平和でいられたのに。
>>226 んなわけねーだろ。立った時点で糞スレだ。
別に極フツーのスレだと思うけどなぁ。
ここの
>>1 は単にスレが立てたかっただけなんだよ。
それが証拠に前スレがだいぶ残ってる時に、
>>1 がいきなりここを立てやがった。
それならそれでほっぽいて後から使えばよかっただけじゃ。
そんな
>>1 の行動を肯定するようなことはできん。そもそもスレタイにセンスがない。
所詮糞が立てたらこんな糞スレになる
ここで 1 を許したら、乱立厨を許す事になるぞ。
235 :
デフォルトの名無しさん :02/11/15 20:00
\0
237 :
デフォルトの名無しさん :02/11/16 00:01
簡単な質問で申し訳ないのですが、10進数を16進数に変換するには どうすればいいのでしょうか?ご教授ください。
switch文
>>237 この関数を使えば変換できます。
int decimal_to_hexadecimal(int n) {
return n;
}
>>237 電卓プログラムを起動してやってもらうプログラムを作る。
マウスを自動で動かす処理が結構面倒
>>237 char *hex[]={"00","01","02","03", ... , "FE", "FF"};
int dec = 24; /* 適当な10進の数値、ただし範囲は 0-255 */
printf("%s\n", hex[dec]);
>>237 char hex[0xffffffff][9];
int i,dec = 24;
for(i=0;i<=0xffffffff;i++) sprintf(hex[i],"%x",i);
printf("%s\n", hex[dec]);
ああ、int iだって unsigned int iだよ 鬱だ逝ってきます
printf("%x", i);
#include <stdio.h> #include <math.h> #include <conio.h> #include <string.h> main(){ int i,j=0; char c[20]; float ans=0.0; gets(c); for(i=0; i<strlen(c); i++){ if(0<=(c[i]-'0') && (c[i]-'0')<=9) ans+=(c[i]-'0')*pow(16,j--); else if(c[i]!='.') ans+=(c[i]-'a'+10)*pow(16,j--); } printf("%f\n",ans); return 0; }
247 :
デフォルトの名無しさん :02/11/16 16:05
麻奈本でCを勉強して、 for文を始めたのですが、本にあったサンプルコードが #include <stdio.h> int main() { int num,i; printf("いくつ*を出力しますか?\n"); scanf("%d",&num); for(i=1;i<=num;i++) { printf("*"); } printf("\n"); return 0; } こうなってたのですが、そのなかの printf("\n"); はどういう意味ですか?なんの意味があるのか分からないので教えてください。 お願いします。
改行じゃねえの?
しかし入門本って何で printf() から教えたがるんだろう。 まず putchar()、次に puts()、その次に初めて printf() だろうに。
>>250 本当に動いてる〜ってことが分からんとツマランからだろう。
\nは改行って知ってるのですが、 言葉が無いのに\nだけ入れても意味無いなー と思い書きました。 さっきprintf("\n");抜きでコンパイル、実行したら 意味がわかりました。 すいませんでした。
253 :
デフォルトの名無しさん :02/11/16 16:46
ファイルのサイズってどう所得したら良いですか?
>>251 putchar() で、それに不足するか?
>>254 一文字だけだと味気ないじゃん。
putsは\nが必要無いのが教育的じゃない。
あら、putsは改行はしないんだっけ?
>>256 puts() は改行するよ。
まあ、言いたい事は分かるけど、247 のように何でもかんでも printf() を
使って回るのは、漏れが気に食わないというだけの話。
つーか改行コード直接打て。
261 :
デフォルトの名無しさん :02/11/16 17:35
1ビットの型の使い方教えてください
>>261 残念ですが 「1 ビットの型」 は C には存在しないので、教える事ができません。
>>260 printf("
");
は文法エラーになりますが何か?
>>264 1 ビットの型であるかのように扱う事ができる方法はあります。
「ビットフィールド」 で Web を検索して下さい。
267 :
デフォルトの名無しさん :02/11/16 18:16
c言語を覚えるために 入門書を読まないで使える ようになった人はいるんですか?
>>265 一通り見てみてちょっと思ったんですが、
ビットフィールドで1ビット単位のファイルの読み書きは出来ますか
>>268 それはできないです。
fgetc() で 1 文字ずつ読んで、ビット演算かビットフィールドで 1 ビットずつ
にばらして使うしかありません。
>>267 時にはいるかも知れないけど、まずいないと思う。
いたとしたらそれは天才か、本を買う金がなくて仕方なくマニュアルだけで
頑張っている人か、本の代わりに Web ページを参考にしている人か、何も
考えていない教えてクンくらいだと思うし。
他の言語でプログラミングに慣れてて、マニュアルだけで充分な情報が得られる 人というのもあるな。
272 :
デフォルトの名無しさん :02/11/16 19:33
267です。入門書を見ながら c言語独学中なんですけど、Webページ のサンプルコードは難しい自信が無くなる 皆さんはどいう覚えかたしたんですか? 後、1つの言語を覚えている途中で 他の言語を同時進行で憶えるのはよくないと聞いたんですが どうしてですか?
>>263 gcc-2.96だと無事コンパイル実行ができたけど、環境はなに?
漏れみたいにstr:="abc";なんて中途半端なボケをかますことになるから
276 :
age&rlo;ega :02/11/16 19:49
>>272 >他の言語を同時進行で憶えるのはよくないと聞いたんですが
どうしてですか?
おいおい、おまえはバカか?
277 :
age&rlo;ega :02/11/16 19:50
>>272 >他の言語を同時進行で憶えるのはよくないと聞いたんですが
どうしてですか?
おいおい、おまえはバカか?
278 :
age&rlo;ega :02/11/16 19:50
>>272 >他の言語を同時進行で憶えるのはよくないと聞いたんですが
どうしてですか?
おいおい、おまえはバカか?
>>276-278 アホ丸出しだな。
>>273 Windows 98 Second Edition
Visual C++ 6.0 Enterprise Edition Service pack 5
280 :
デフォルトの名無しさん :02/11/17 08:07
>>279 > Enterprise Edition
生意気な。
学校の備品だろ
学割なら買えない値段じゃないんだが。
284 :
デフォルトの名無しさん :02/11/17 08:24
ちょっと調べたよ。C99サポートしてるらしいヤツ FSF gcc 各CPU 富士通 C sparc HP C hppa
286 :
デフォルトの名無しさん :02/11/17 12:13
また、くだらない質問です。 printf のパラメータの %- をつかって、 16進数を10進数へ変換するには何を使えばいいでしょうか?
>>286 printf("%d", 0x01);
288 :
デフォルトの名無しさん :02/11/17 12:22
>287 0x01の部分を文字で"AE"のように持ち込みたいのですが…。 どうなんでしょうか?
289 :
デフォルトの名無しさん :02/11/17 12:29
printfでは無理。
290 :
デフォルトの名無しさん :02/11/17 12:31
マクロの再定義は言語的には禁止されているのでしょうか?
291 :
デフォルトの名無しさん :02/11/17 12:32
では、なにか、int にする方法はありませんか?
undefすりゃいいじゃん
もとが16進文字列じゃatoiはつかえねーか strtol使え
>>288 標準ライブラリの strtol で 16進文字列 -> 整数 の変換が出来る。
詳しくはコンパイラのマニュアル参照。
297 :
デフォルトの名無しさん :02/11/17 12:45
有難うございます。助かりました。
>>296 標準ヘッダで定義されている名前(関数名、変数名、マクロ名…)は予約されて
いるから、そういうヘッダをincludeしているプログラムで標準の名前をマクロ
として定義するのは未定義動作。
ただし、以下は例外。
・ライブラリ関数は同名のマクロ定義も持っているかもしれない。
マクロじゃなくて確実に関数のほうを呼び出すために#undefするのは構わない。
・complex, imaginary, I, bool, true, falseは#undefして再定義してよい。
299 :
デフォルトの名無しさん :02/11/18 08:26
使いたい名前 typedef されてたらどうすんの?
こういうことか? #define size_t sys_size_t #include <stddef.h>
質問なんですけど 個人的に、毎日の細かいデータを集計してグラフなどにしたいんです 項目は、一時間分20個位でそれを24時間数年分です。 で、できればネットでそのデータを共有したいんです。 こういう場合はC言語でOKなんでしょうか? 学生の頃Cとベーシックは確か学んだ記憶があるんでなるべく簡単に 始められる言語を使いたいんです。 どなたか、ご教授くださいお願いします
ちーん (−人−)
>>301 Excel 使いなさい。
>>302 言われると思ったです
というか、その答えが一番適切だと思う
でも、個人的にExcal持ってないです
それに、もっと高度な事がやりたい気分なんですよ
>>301 「グラフ」 「ネット」
この時点で C 標準ではダメだ。
環境に依存したライブラリを使う事になるから、開発環境のスレに逝ってくれ。
ゆーても仕様がはっきりしないから、それでも有効な回答が得られるかどうかは知らん。
ちなみに、なるべく簡単にと言うなら VB とかの方が楽だとだけ言っておこう。
>>303 気分と言われても、何やりたいのか結局わからない。
Perlがよさそうだ
>>306 言っておくが、Excel VBA でもかなり高度な事ができるぞ。
何をやりたいのか知らないけど。
>304 そーかー? pngとかhtmlとか出力させて、見るのはブラウザ、って ことにすれば、生なCでも大丈夫なんでネーノ。
>>308 グラフについてはそれでも OK かもな。
でも、グラフではなくデータを共有したいと言っているぞ。
nfs でも使えばいいのか。
NFSってデータベースのことですか? MYSQLとかそういうやつの事ですね? わかりました、もっと調べてみます レスどうもです
>>310 > NFSってデータベースのことですか?
> MYSQLとかそういうやつの事ですね?
まるっきり別物。
(Perl|Python|Ruby)+GnuPlot
char buf[10,buf2[10]; fp=fopen("test.bmp","rb")) fread(&buf,1,1,fp); fread(&buf2,1,1,fp); でよんだbufとbuf2の計算buf2-buf とかをしたいんだけど 根本的に間違いですか? 10進でも16進でも計算できればいいのですが・・
でもbmpファイルだな。 隣り合うピクセル値の差を取りたいのか?
>>315 じゃあ、数値だからそのまま引け。
判らなければビットマップなんか弄る前に配列をちゃんと理解汁。
(´-`).。oO(bpp とか調べないまま計算していいのかね。。。)
実は256色パレット付きだった、とかだな。
(´-`).。oO(というか 312 のコードはファイルの 1 バイト目と 2 バイト目を読んでいるように見えるが。。。)
320 :
デフォルトの名無しさん :02/11/18 20:25
>>319 (´-`).。oO(というか配列のアドレス同士の引き算をしてるように見えるが…)
322 :
デフォルトの名無しさん :02/11/18 21:25
char hoge; char piyo; memcopy(hoge, piyo, sizeof(piyo)); これだとpiyoのサイズって1ですか?
これってどれだよ? つーかsizeof(char)は定義上1。
324 :
デフォルトの名無しさん :02/11/18 21:39
sizeof piyo
326 :
デフォルトの名無しさん :02/11/18 22:07
ちょっと質問なんですけどディレクトリ操作(mkdir等)やディレクトリのファイルの一覧の 入手の仕方(Opendir等)はunixの環境ではwebで調べて分かったんですが、 VC++の環境で(言語はC)同じようなことするにはどんな関数を使えば良いのですか? VC++ってdirent.hやunistd.hなんかのヘッダーファイルありませんよね。 まだよく分かりませんがヘッダーファイル作るしかないのでしょうか?
#include <winbase.h> FindFirstFile() & FindNextFile()
>>327 ありがとうございます。
あとはがんばってやってみます。
ファイルポインタを1行だけ戻す方法はありますか? もしくはファイルを最終行から上に向かって読む方法はありますか?
その前の行の長さが分かってればできる。 ただし、世の中にはファイルイメージと読み込み後のデータでは長さが違うと いうプラットフォームが存在するので注意。 より汎用的な方法としては、ブロック単位などでseekして末尾から改行を探す。
引数なしのメイン関数の正しい書法が分かりません。 1. int main () { return 0; } 2. int main (void) { return (0); } 他にも1,2の変形といったものが考えられます。 何が正しい作法なのでしょうか?
int main( void ) { return 0; }
333 :
デフォルトの名無しさん :02/11/19 00:34
int main(int argc, char *argv[], char *e[]) { return 0; }
>>331 1.はC++だけで使ったほうがいいよ。
もう一つのスレが主流だと思ってたのにいつの間にかこっちがメインになってる。
>>336 スレ違い。ここは*C言語*質問所ですw
1. の形式が C で何の問題があるんだ? 根拠呈示きぼんぬ。
>>338 Cではプロトタイプと見なされないということだろう。
どっちでも構わんと思うが。
実はmainの型はcdeclなんで引数の数はどうでもよかったりする。
341 :
デフォルトの名無しさん :02/11/19 13:15
文字列処理の質問です。 (1) 全角、半角混合の文字列から、strHogeHoge[i]で取得した値が、半角文字なのか、それとも 全角文字の一部なのか、判定するにはどうすればよいですか? (2) Unicode ←→ SJisまたは、Unicode ←→ EUC 変換ルーチンのコードを公開しているサイト はありませんか? (SJis ←→ EUC とか、Jis ←→ EUC なら検索エンジンで見つかるのですが・・・)
344 :
デフォルトの名無しさん :02/11/19 13:36
>>341 (2)
JIS(JIS X0208, X0201あたり)と、SJIS, EUCは簡単な計算で相互変換できる。
Unicodeは全く異なるコード体系なので、変換テーブル持たないと無理。
unicodeとjis系との相互変換はOSとか処理系とかのシステムが持ってる
ルーチン使うのが普通だと思う。
win32ならmbstowcs, UNIXならiconv。
>>340 少なくともMS用語では、関数の呼び手が引数積んだスタックをクリアすること。
pascalタイプだと、呼ばれた側がスタックをクリアするので、呼ばれた側
が何個の引数が渡されたか把握してないといけない。
346 :
デフォルトの名無しさん :02/11/19 13:51
>>345 (1) Windows のコンソールからscanfで読み込んだ文字列ですので、
SJisです。
(2) ありがとうございます。調べてみます。
>>346 (1) 全角、半角混合の文字列はcharの配列を意味しているのならば無理
全角、半角混合の文字列はwchar_tの配列を配列を意味しているのならば可能
>>344 スタックをクリアするというのはおそらく
スタックポインタを戻すとかそんなことですよね。
ありがとうございました。
>>346 (2) 343さんも書いてる通り、環境書きましょうよ。
わたしが愛用しているQuickC Ver2.0だと
#include<jstring.h>
で日本語文字列処理ができるマクロ等が使えます
LSI-Cにもあるみたい(無確認)
LSI-Cならダウンロードしてみて、ヘッダファイル見てみては?
>>347 char *でもマルチバイト文字列を使えばできるのでは。
352 :
デフォルトの名無しさん :02/11/19 15:05
if (*argv[3] !='0' && *argv[3] !='1') { printf("machigateruyo'\n"); exit(-1); } こんな書き方ってできますか?
argcとargvを普通どおりの意味で使っていて、 printfやexit用にそれぞれstdio.hとstdlib.hをちゃんとincludeしてあって、 argcが4以上なら、C言語的には間違いでない。 exitに-1を返すとどうなるかは処理系定義だが、 Unixだとふつう255を返したとみなされるだろう。
>>352 たとえば
test.exe 123 456 789 012
という入力のとき、
最初の一文字だけで判断していいの?
356 :
デフォルトの名無しさん :02/11/19 15:39
>>343-345 >>347 >>349-351 ありがとうございます。
仰る通り、環境を書くべきでした。
言い訳になりませんが、実は、標準関数だけで、特定のOS、コンパイラに依存しない
互換のコードが書けるのかな?と思ったのです。
やはり無理がある(Or 「車輪の再発明」になる)ということでしょうか?
環境があるのは、
(1) gcc
(2) BCC5.5.1
(3) VC++6.0 SP5
(4) VC++.NET
の4種類です。(OSはすべてWin 2000 SP3)
フーン金もってるんだね。
>>357 そうか?VC++はアカデミックだと安いし、
残りの二つはフリーじゃん。合計で5万くらい?
アカデミック購入した人がアカデミック使えなくなったとたんにMSと縁が切れる可能性。 0%
360 :
デフォルトの名無しさん :02/11/19 15:57
VC++6.0はエンタープライズ(自腹)です。 VC++.NETは会社のを自分の(略)
>>356 hoge.hに機種依存コード書いて、
#ifでどのコンパイラで動いてるか判断させて
自分でオリジナルの関数だのマクロだの作れば、すくなくとも
*.cのソースは依存気にしなくて作れると思うんだけど。
362 :
デフォルトの名無しさん :02/11/19 16:20
>>361 ありがとうございます。
研究してみます。
363 :
デフォルトの名無しさん :02/11/19 17:18
下記のコードが通らないのはナゼでしょうか? void Hogehoge(void) { char s[100]; memset(s,0,100); const char* str = "test"; memcpy(s,str,strlen(str)); s += strlen(str); // ← ここで「左辺値が必要」というエラー .............. } 上記のエラー個所を下記のような関数を通すようにするとコンパイルエラー になりません。 s += strlen(str)をHoge(s,strlen(str))に変更 void Hoge(char* s,int length) { s += length; } s += strlen(str)もHoge(s,strlen(str))もやっている事は同じなのにナゼなんでしょうか? ちなみにC++Builder6を使用しています。
配列とポインタは別物 ちゃんと過去ログ調べろや
>>363 char s[100]; の s は定数だから、 s += strlen(str); なんて書き方はできません。
>>365 あ、その通りですね、とんでもない勘違いをしてました(汗 有難う御座います。
>>364 スミマセン、出直してきます。
367 :
デフォルトの名無しさん :02/11/19 19:44
文字列の浮動小数点数をdouble型へ読みこませたいんですが、 文字列"3.3" とかの場合、小数部をどう処理すればいいんでしょうか。 整数部と少数部をドットで区切って読んでおいて、 整数部 + 少数部 / 10の(小数部の桁)乗 3 + 3 / 10.0 (この場合1桁なので) →3.3 除算してるのが不安なんですが、これでいいんでしょうか。
s は定数じゃなくて左辺値。
>>367 > 文字列の浮動小数点数をdouble型へ読みこませたいんですが、
sscanfという関数を小一時間しらべてみろ
>>367 文字列なら浮動でも固定でもないと思うんだけど。
え、文字でも・が動きませんか?
374 :
デフォルトの名無しさん :02/11/19 20:01
>>369 sscanfだと正しく読みこめないんですが。
main() {
double d;
sscanf("3.3","%f",&d);
printf("%f\n",d);
}
cl scantest.c
scantest
0.000000
マニュアルをよく読みましょう
377 :
デフォルトの名無しさん :02/11/19 20:12
atof使うことにします。
378 :
デフォルトの名無しさん :02/11/19 20:12
あ、strtodの方が良さげですね。 ありがとうございました。
379 :
デフォルトの名無しさん :02/11/19 20:38
構造体の中身のメンバーをいっぺんに printf()することってできますか?
ずっと前に見て、トリッキーさを感じたのは、 RECT r = {...}; にたいして、printf("%d %d %d %d" , r );だったな。 こういう特殊例以外ではうまくいかない気がする。
>>379 標準出力にならば
fwrite(&s_t, 1L, sizeof s_t, stdout);
で出力できるが、おそらく君の期待した方法ではないだろう
おそらく君の期待していることは「デバッガ」という検索キーワードで
解決できるかもしれない。
383 :
デフォルトの名無しさん :02/11/20 07:58
島谷タソに強引に迫られてみたい…ハァハァ(´Д`;) 島谷「あのね、今日実はお願いがあるんだ…うふふ…」 漏れ「えっ何?言ってみてよ、ひとぴょん」 島谷「私も男の子がオシッコしてるとこ見てみたいなぁ〜…な〜んてねっ♪クスッ」 漏れ「えっ!?も、漏れの!?」 島谷「ねぇいいでしょ?私オチンチンの先からオシッコ出てるの見ると、何だか『可愛い〜』って思っちゃうの…♪」 漏れ「うん…じゃぁいいよ、ひとぴょん」 ジョボボボ… 島谷「立ってオシッコするのって、何か不思議だね…私、ずっと見てても全然飽きないの…」 漏れ「えっ別に普通だよ…ねぇ、ど、どこ持ってるの?ひとぴょん」 島谷「ここ持ってると、オシッコ通ってるのが物凄くよく分かるね…うふふ…」 漏れ「やめてよひとぴょん…恥ずかしいよ…」 (省略されました・・全てを読むにはここを押してください)
385 :
デフォルトの名無しさん :02/11/20 11:56
コンパイラやハードに依存する部分ができるだけ少ない ソースを書きたいんですが、ANSI C準拠でも油断が出来ないという話を 聞きます。具体的に何を使うとまずい、というのはあるのでしょうか?
386 :
デフォルトの名無しさん :02/11/20 11:59
>>385 そう言った人に聞くのが手っ取り早いんじゃ?
リターンが未定義とか、intの大きさとか? ちゃんと使えばANSI Cで定義された通りに動きますよ。 コンパイラは人間の意図した通りにうごきません。 仕様にそって、書かれたCのソースに沿った事にしたがって動きます。
389 :
デフォルトの名無しさん :02/11/20 12:21
>>385 peek()なりpoke()なり使うとよろし
なつかしいな
>>384 こぴぺを否定するつもりはない(2ちゃんねるの文化?なので)が、前後の文脈に
合わせてローカライズ(カスタマイズ)するぐらいの努力はしてほしい。
聞いたというよりはどこかで読んだということなので確かめようがないですが、 マクロや複雑なコードでコンパイラの挙動が異なりうるとか聞いたもので。 携帯からなんでまだ1のリンクは読んでませんが、そこを読んで複数のコンパイラで テストをしつつコーディングすることにします。
>>391 ANSI Cをちゃんと理解していれば、
>>385 の疑問はでてきません。
>>388 の通り、ANSI Cコンパイラならちゃんと動きます。
ただし、動作は同一とはかぎりませんがね。
>>392 > ANSI Cコンパイラならちゃんと動きます。
しかし、この世にはANSI Cが制定される前に
書かれたCコンパイラがあり、free(NULL)をするとcoreを吐く
コンパイラが存在することも事実
>>393 それはANSI Cコンパイラじゃないですよね。
>>394 > それはANSI Cコンパイラじゃないですよね。
yes, でも
>>385 では
> コンパイラやハードに依存する部分ができるだけ少ないソース
と言っているのでそういうCコンパイラも存在する
例を挙げただけですが何か?
396 :
Warez :02/11/20 13:34
That's not an ANSI C compiler, is it? Yes.
>>395 あぁ、
>>385 で
>ANSI C準拠でも油断が出来ないという話
と書いてたので、ANSI Cが前提かと思ってた。
ファイルというものがない環境があると聞いたけど、そういう環境用のコンパイラならANSIには準拠できないんじゃない? fopenとかつくれないし。
組み込み用のCコンパイラなど、そうですね。 でも、fopenなどは作ること、可能ですよ。 ファイルを作ろうとすると、必ずエラーが帰ってくるというだけですよね。
>>371 遅レスだが、「配列は代入不可能な左辺値」 だそうだ。
何のこっちゃと思えば、「左辺値でなければ & 演算子を適用できない」 という根拠らしい。
でも、VC6 とか配列を配列に代入しようとすると 「オペランドが、左辺値になっていません」
とか言われるんだよなあ・・・。
gcc だと、コンパイル通ってまともに実行できちまう。
>>400 見つけた。JIS X3010-1993
6.2.2.1 左辺値および関数指示子 左辺値(lvalue)は、オブジェクトを指し示す式(オブジェクト型、又は
void 以外の不完全型を持つ。)とする。オブジェクトが特定の型をもつことを示すには、そのオブジェ
クトを指し示すために用いる左辺値によってその型を指定する。変更可能な左辺値とは配列型を持たず、不完全型を持たず、const修飾型を持たない左辺値とし、それが構造体又は共用体の
場合、const修飾型の(再帰的に包含されているすべての構造体又は共用体の任意のメンバを含む。)メン
バをもたないものとする。
(以下略
より正確に言うと「配列は代入可能な左辺値ではない」かな
嘘 ×:「配列は代入可能な左辺値ではない」 ○:「配列は変更可能な左辺値ではない」
401-402 乙
画像処理をしているのですが、JPEGのプログラムを打ちたいのですが、全然わかりません。 JPEGの圧縮プログラムを知っている方がいられるのであれば、教えてください。
>>401 C言語って楽しそうでつね。
言語を使うために言語を使っている感じで。
>>405 > 言語を使うために言語を使っている感じ
自国語も満足に使いこなせない奴にはそう見えるんだろうな
プログラム言語を使いこなすためにはその言語の規格書を読む必要がある
CだろうがJavaだろうがPerlだろうが同じことだ
>>404 えー、”JPEG ライブラリ”で検索すればひっかかりましたよ。
言語やOSは何でしょうか?
画像のおすすめはPNG☆
410 :
デフォルトの名無しさん :02/11/20 16:36
マルチ歓迎のやさしい住人がおられるスレはここですか
>>410 げ。見てなかった。宇津田。煎ってきます
412 :
デフォルトの名無しさん :02/11/20 16:53
#include <stdio.h> main() { int n; printf("SEISUU=");scanf("%7d",&n); printf("%5d\n",n); } 上記のようなプログラムを実行した時に7桁の数値を入力すると 出力される数値の桁数が5桁ではなく7桁になるんですが 6行目のprintfで指定した5桁は無視されるんでしょうか?
>>412 ちゃんと動くとおもいますよ?仕様の通りに。
scanfを使わないようにという突っ込みはしませんが。
>>412 %5dは「5桁で」ではなく「最低でも5桁で」だから。
文字に変換して、文字列処理すれば何行と出すのは簡単 #ほかにいいやりかたあるかな
>>416 > 何行
何桁の間違いか?
桁数ならlog10()で一発で出せますが何か?
>>412 scanfで%7dって初めてみた・・・
どういう効果?
>>413-415 どうもありがとうございました
助かりました
>>418 これ書籍に載っていたサンプルプログラムですが
scanfで%7dのように指定するのはおかしい事なんですか?
いえ。 ですが、どういう意図で付けているのか、理解していなければ、 仕様書よんでください。
>>419 > scanfで%7dのように指定するのはおかしい事なんですか?
おかしくない。
>>418 が
int x, y, z;
sscanf("1234567", "%1d%2d%3d", &x, &y, &z);
pruntf("%d %d %d\n", x, y, z);
の結果が分かっていない厨なだけ。
ああなるほど。 7文字目までしか見ないのか。 12345678と入力すると1234567になるのか。
424 :
デフォルトの名無しさん :02/11/20 17:20
pruntfか
馬鹿が逆切れしてるスレってここですか?
読解力のないやつが逆切れしているスレってここですか?
馬鹿の上に粘着きわまりないどうしようもない厨房がいるスレってここですか?
>>412 をのどこに桁数を得る方法を教えろとかかれている。
7桁になっているものを5桁で表示したいということだろ。
>>417 1 発じゃ出ないだろ。
と言ってみるテスト
>>429 412 は、「どうなるか」 を訊いているだけで、「どうしたいか」 は全然書かれてない
と思うんだがどうよ?
>>431 ここはいつから国語のスレになったんだ…
>>429 > 7桁になっているものを5桁で表示したいということだろ。
そんなことは書いてありませんが、君の脳内妄想ですか?
433 必死だな
>>434 確かにどうなるかということ聞いているが、文脈からわかるだろ・・・
>>440 あなたとは、はなから勝負してませんが何か?
要約:
>>412 の予想は「5桁になる」
実際には「7桁になる」
問 6行目のprintfで指定した5は無視されるのか?
>>417 整数の桁計算をdoubleでやるとコスト高くねえか?
と言ってみるテスト
>>436 文脈からするとprintfの仕様を聞きたいだけみたいだし、
事実
>>419 で納得している
チミが勝手に脳内妄想をしたのをさっさと認めて粘着逆切れを止めろ
漏れは本当に 416 でないんだが、何でそう思われたんだ? ・・・ま、いっか。
>>443 文字列に変換して長さを測るよりはずっと速いし軽いぞ。
4桁の2進数を文字列として標準入寮から入力し、 これを10進数へ変換して表示するプログラムを作成せよ。 無知な私を助けてください。
よけいな茶々いれるからだ。
>>443 int i = 12345;
while(i /= 10)
;
桁数を求めるだけならこれが最速かな?
煽りの最中に宿題教えて君かよ、それに答える奴もおめでてーな
まちがえた int i, n = 12345; for( i = 0; n /= 10; i++) ; # 0の場合は0桁になるのは仕様です
>>457 430 が示した式には、そんなクソな仕様はありませんが何か?
第一それ、全然速くないだろう。
430の式ってなんだろう・・・
430の式: (size_t)log10(n) + 1
>>459 もっとくまなく探せ。
お前それで、ちいさなメダル全部集めたとか言わないよな?
攻略本見たクチか?
んー、待てよ。 10 が変数じゃなくて定数だと、「2 回のシフトと 1 回の加算」 に最適化されて log10() よりも速くなったりするな。 最適かからない状態なら、log10() のが速いけど。
>>458 > 430 が示した式には、そんなクソな仕様はありませんが何か?
>>430 にはソースの片鱗も見あたりませんが何か?
log10()は0や負の値を引数にするとエラーになりますが何か?
ちなみに417は私ですが何か?
>>463 > 最適かからない状態なら、log10() のが速いけど。
キャストするコストを忘れてませんか?
おじいちゃん昼食2回も食べてるよ...
( ´д)ヒソ(´д`)ヒソ(д` )
最近、「〜が何か?」とつける奴は必死に思えてならない。
>>465 const int LoopNum = 5000000;
int lpcnt, r;
volatile int ten = 10;
volatile size_t ans;
clock_t cTime;
srand(clock());
cTime = clock();
for(lpcnt = 0; lpcnt < LoopNum; lpcnt++)
{
r = rand() * rand();
ans = (size_t)log10(r) + 1;
}
printf("%u\n", clock() - cTime);
cTime = clock();
for(lpcnt = 0; lpcnt < LoopNum; lpcnt++)
{
r = rand() * rand();
for(ans = 0; r /= ten; ans++);
}
printf("%u\n", clock() - cTime);
>>430 にはソースの片鱗も見あたりませんが何か?
こーゆーのはずかしーなー。いまのうちに釣り宣言の用意か
逆ギレの用意でもしとけ
コテハンじゃないんだから言い訳しないで知らんぷりしてればいいのにね。
430 にはソースと呼べるものは無いかもしれないが、ソースの片鱗は確かにある。 見つけられない香具師が可哀想だ・・・。
>>469 gcc version 3.2で確認
-Oオプション無し
15322
3414
-Oオプション有り
15261
3245
ですが何か?
# いい加減馬鹿と付き合うのにも疲れてきた...
vc6sp5 6669 10065 -O2 4105 9343 ダタ
つーか、gcc 2.95.1 とか MinGW gcc 2.95.2 とかは、やっぱり割り算の方が 倍以上かかってるが。 gcc 3.2 は一体何があったの?
ちょうどいい機会だったので BCC55 インストールした。 やっぱり割り算の方が倍近くかかってる。
>>468 必死の時とそうでない時があり、そうでない時の方が多いですが何か?
必 至 だ な
ま す ま す 必 至 だ な
訂正 bcc55でコンパイルしたら警告が出てきたので以下のヘッダを追加 #include <stdlib.h> #include <time.h> #include <math.h> -Oオプション無し 3164 3405 -Oオプション有り 3154 3245 だが、倍はかからない bcc55は実行すると「log10: SING error」となる、おそらく数学ライブラリが リンクされてないからだと思うが、bcc55で-lmでは駄目なのか?
SING ERROR? SIGN じゃなくて?
>>483 > SIGN じゃなくて?
違う。Cygwinの出力結果をコピペしたんでタイプミスは無い
ん、Cygwinでやってんのが悪いのか?DOS窓でやってみるか...
rand() * rand() が 0 を生成する事があり、BCC ランタイムはそれを親切に 報告してくれてるのだろう。 しかし、BCC 5.5.1 だけど漏れと随分結果違うな。 CPU は何? こっち PentiumIII-800。 1706 2846
単に実行時に0になっただけというオチに一票
ああ、ちなみに log10(r + 1) でやった。
パフォーマンステストに Cygwin を使うか・・・(;´Д`)
r = (rand() * rand()) + 1;//適当だな
まあ好みの問題だが、randを括弧で括る必要は無いと思う。
あ、計算の優先順位気にするのがきらいなもので、括弧はつける習慣なのですY0
いずれにせよ、最適化されれば488と490に違いは無い。 rが別の場所で使われてれば別だが。
> r = (rand() * rand()) + 1;//適当だな こいつに修正 gcc -O無し -O有り 3164 3174 3415 3235 bcc55 1642 1642 2764 2764 うーむ、gccは遅いのか? > CPU は何? こっち PentiumIII-800。 同じ、メモリは128M、OSはWin2000SP2
あとvolatileをはずした結果
gcc -O無し -O有り
3174 2453
1472 1262
bcc55
1041 1052
2784 2794
なのでgccでvolatileを使わないと
>>457 の方が速い
bcc55の場合、log10の方が速い
VC++? それは持ってる奴がやってくれ
アセンブラソース出してみないとわからんけど、 GCCがちゃんとvolateilを効かせているという証明かな
だいたいgccのlog10の挙動が怪しすぎる なんで#includeを入れたり入れなかったりしただけで速度が変わるんだ? log10自体もbcc55に負けてるし...ループがgccの方が速いけど log10の実装はどうなってんだ?...面倒だがlibc読んでみるか と言うことでlibc落としてくるので俺は消える。
VC6SP5、PentiumIII-800。 最適化 最適化 なし あり volatile 1430 110 なし 2910 770 volatile 1430 1210 あり 2910 2640 最適化なしでは volatile は無意味のようだ。 volatile なし & 最適化ありでは log10() が丸々消えていて rand() だけが残っている。 for の割り算は残っているが、結果をどこにも格納していないので最適化なしよりは速い。 いずれにせよ、log10() の方が速かった。 しかし、volatile int ten = 10; の volatile を抜いて最適化すると、 1260 830 割り算の方が速い。 473 氏の gcc が遅いのは、log10() がインライン展開されていないせいか? 個人的な感想だが、どうも VC は最適化が入るとループがえらい強いな。 パフォーマンステスト対策か。
ちなみに、定数による割り算が最適化で速くなるのは 463 氏の通り。
インテルのコンパイラがあったら楽しかったでしょうね・・・
VC=ビタミンC VC++=ビタミンC++
(゚Д゚)ハァ?
char c; c='C'; c++; printf("V%c\n",c);
このコードを fputs("VD\n", stdout); に最適化するコンパイラはあるだろうか。 puts("VD"); とかにはなったりするだろうか?
>>505 それはこのスレの新スレじゃないんだよな。
どっかで合流した方がいいだろうけど。
深く考えるな
スタンスが違ってるとおもうんだけどな、こちらとあちら。
そうかな。 どうせ見てる人間一緒だろ。 1 のテンプレもほとんど変わらんし。 テンプレと言えば、「質問は通じる日本語で書いてくれ」 というのを追加して欲しいな。
511 :
デフォルトの名無しさん :02/11/21 14:06
512 :
デフォルトの名無しさん :02/11/21 19:04
最近2ちゃんねる重過ぎんだけどよ、C言語でどーにかできるようにする対処法をお教え願えると幸いなのですが何か?
read.cgi をオールC言語で書いたら軽くなったりするのかな?
すでにread.cgiはCでできてますが何か。
perlなのはbbs.cgiだろう
516 :
デフォルトの名無しさん :02/11/21 19:42
>>514 修行が足りません。
文末の 「何か」 には必ずクエスチョンマークをつけてください。
クエスチョンマークをつけると煽り厨丸出しでかっこ悪いと思います
そう思うのは修行が足りない証拠です。
マジボケですた。すいません。逝ってきます。
「何か?」→「文句ある?」と言いたげで相手の態度を伺うようでガキっぽい。 「何か。」→「文句など言わせねぇ。」と言いたげで不動の信念を持ち合わせているようで漢ぽい。 よって「何か。」の勝ち。
そんなあなたがガキっぽい。
たしかに?をつけるとバカっぽいな。
そんなこと気にしてるやつが一番バカっぽいですが何か?
?が全角だからだめなんです。?を使いましょう。
漢なら「!?」ですが何か!?
今は「伺か」じゃないのでしょうか
というかお前ら全員ガキだな。 オレもその中の一人だけどね。 一番大人なやつは、このあふぉレスを見て、 「ガキだな」と一掃し、ほかのサイトに飛んだ香具師
>>528 わざわざそんな下らんことをageてまで言うお前が一番ガキであることは確かですが何か?
>>529 sageてる分を差し引いても、お前の方が下らない事は猿でも分かりますが何か?
他人を「ガキ」と言って傷つけているつもりになっている奴はガキ 大人はな「ガキ」と言われるよりも、 「 お や じ 」 と 呼 ば れ た ほ う が 傷 つ く ん だ。 良く覚えておけ。糞餓鬼共
このスレっていったい・・・ Cスレじゃないのかよ! 晒しage
>>534 > Cスレじゃないのかよ!
今はcore dumpしてるだけです。
Cでは良くあることです。
ガベージコレクションしているのかもしれない
メモリリークしてるのは
>>537 の脳味噌だと判明しますた
core dumpとかガベージコレクションとかCと関係ない話すんなよ
固いこというな。ここはCスレのお面をかぶった糞スレだぞ。
core dump はギリギリ関係あるだろ
>>529 この期に及んでまだ「何か?」を使ってるおまえ。かっこ悪いグランプリだな。
>>542 はぁ? Windowsでどうやってcore dumpすんだよ。
>>543 いつまで引っぱるつもりだよ......グランプリとか言っちゃってるし。もー見てらんない。
>>544 なぜにWindows?
>>545 ほんと、グランプリとか言って馬鹿みたいだな。
むしろかっこわるいチャンピオンだよな。
かっこ(全米No.1)悪い
(悪い)
>>544 > はぁ? Windowsでどうやってcore dumpすんだよ。
gccだと*.stackdumpというファイルが吐かれて、画面上に
「Segmentation fault (core dumped)」
出力しますが何か?
いつからガベージコレクションが C 関係無いことになったんだよ・・・。
このスレが C に関係あるかどうかは未定義ですが何か!!
罠かどうかは環境依存
環境依存かどうかは未定義
未定義かどうかは不定
ここは FORTRAN を語るスレになりますた。
FORTRAN は超糞言語
560 :
デフォルトの名無しさん :02/11/21 22:54
561 :
Warez :02/11/21 23:06
sageで書き続けてるやつってthread bookmark shitennnoka?
ヴァカ561は放置
割れ厨は放置!!!
564 :
デフォルトの名無しさん :02/11/22 00:35
VCでDLLファイルを作成しますた。 開発したXP上では動きますが、2000上では動きません。 ランタイムは2000に入れています。 特別な命令も使ってないです。 何故動かないか分かりません。 DLLを作って他のパソコンで動かそうとするとき何か特別なことが必要なんでしょうか?
565 :
デフォルトの名無しさん :02/11/22 00:37
566 :
デフォルトの名無しさん :02/11/22 00:41
567 :
デフォルトの名無しさん :02/11/22 00:51
>>564 何かはわからんが99.9%君の作り方がおかしいから安心しろ。
その2000のマシンでデバッグするか開発したマシンに2000インストールしてデバッグしろ。
>>569 だってな〜、どんな風に動かないかもわからんし。
てかVC++スレ逝けや
GUIとか、C標準でできない事の質問は使ってる開発環境のスレに行ってください。 上記を守らない書き込みをした場合、その結果は激しく未定義とします。
C関連の書籍って裏本なの?
574 :
デフォルトの名無しさん :02/11/22 06:35
ソースコード読んでたらexit関数の引数に98ってのがありました。K&Rで調べましたがのってません。 おしえてくらさい。
>>574 何のソースを読んでいたの? 普通はEXIT_FAILUREかEXIT_SUCCESSだろうけど
そのプログラムの機能として詳細なエラー情報を表すために特別な
エラー番号を返しているのかもしれない。
576 :
デフォルトの名無しさん :02/11/22 09:32
ああっ、もうダメッ! ぁあ…ミサイル出るっ、ミサイル出ますうっ!! ニッ、ニダッ、アンニョンハセヨーーーーーッッッ!!! いやああああっっっ!!工作船見ないで、お願いぃぃぃっっっ!!! ノドンッ!ジョンイルーーーーーーッッッ…半島ッ! 電波アアアアアアッッッッ!!!! ハムニダああーーーーっっっ!!!テッ、テポッ、テポドォォォッッ!!! 金日成ッッ!!金正日ッッ、金正男ッッ!!! おおっ!テポドッ!!マッ、マンッ、マンセッッ!!!テポドン見てぇっ ああっ、もうダメッ!!ハーングックーーーーっっっ!!! 忍耐イッ!限界ッ!忍耐限界忍耐ィィィィッッッッ!!!! いやぁぁっ!金正日、こんなにいっぱいミサイル出してるゥゥッ! 謝罪ぃぃぃぃぃぃぃっっっっ!!!!賠償ォォッッ!!!
578 :
デフォルトの名無しさん :02/11/22 10:01
>>575 >>EXIT_FAILUREかEXIT_SUCCESS
これって何の標準なんですか?
exitで指定する値って終了時コードだからなにを渡してもいいのでは。
PGごとに終了コードでどんなエラーが起きたか知らせるのは普通だとおもうんだけど。
>>578 > PGごとに終了コードでどんなエラーが起きたか知らせるのは普通だとおもうんだけど。
ログは出さないのか?
終了コードは正常、異常、警告くらいでいいんじゃないか?
98パターンも終了コードを出されても...
583 :
デフォルトの名無しさん :02/11/22 17:17
麻奈本で独習中ですがどうしてもfor文の意味がわかりません。 何故あのコードで(コードは省略) 1〜変数までの合計の数値が出るのですか? 詳しく教えてください。
for (x; y; z) a; まずxを実行。 yを判定。偽になったら終了。 aを実行。 zを実行。 yを判定。偽になったら終了。 ・ ・ ・
何を作っているのかがわからんってことか? そりゃそうだろな 「Cはソフトウェアの開発に使う道具」とか聞かされてても NAVやギコナビと Hello world はどう見ても別物だからな DOSの時代はわかりやすかった 今やるならROM焼きとかやってみた方が 何を作っているのかの実感持てそうに思える
何言ってんの?こいつ
587 :
デフォルトの名無しさん :02/11/22 17:49
割り算の計算をするプログラムを作ってるんですが 割り切れない時は小数点以下1桁まで表示して 割り切れた時は小数点以下を表示しないようにするにはどう書けばいいんでしょうか? データ型はfloatでやってるんですがやり方が分かりません よろしくお願いします
588 :
デフォルトの名無しさん :02/11/22 17:50
printfで%gだっけ?
>>586 ど初心者の質問をパースできない専門バカはすっこんでろ
一桁までしか表示しないのか・・・じゃあだめか。
>>587 具体的にどこで詰まってるんだ?
割り切れるかどうかの判定方法がわからない?
表示方法がわからない?
>>587 printf("%g\n",x/y);
2じゃなくて2.0 8じゃなくて8.0
>>592 #include <stdio.h>
main()
{
float x,y,z;
printf("x=");scanf("%f",&x);
printf("y=");scanf("%f",&y);
z = x / y;
printf("%f\n",z);
}
こんな感じです
表示方法が分かりません
>>593 それだと小数点第二位以下も表示されてしまうだろ。
%2f
>>596 小数点以下第二位を四捨五入してもいいならprintf("%.1g\n",x/y);
>>599 xとyのデータ型はfloatのままでは駄目なんでしょうか?
割り切れなかった時小数点以下が表示できなかったんですが
601 :
デフォルトの名無しさん :02/11/22 18:34
#include <math.h> printf("%.*f\n", fmod(x, y)? 1: 0, x / y); あと、巨大配列とかでサイズを小さくしたいというニーズがない限り、double を 使った方がいい。 float を内部的に double に変換しないで float のまま計算する処理系は見た事 が無い。
602 :
デフォルトの名無しさん :02/11/22 18:37
もうちょっと判定を曖昧にしようか。 #include <math.h> #include <float.h> printf("%.*f\n", fabs(fmod(x, y)) >= DBL_EPSILON, x / y);
x86はしらんが、RISCだとfloat同士の演算はfloatのままやるよ。
しまった、"出力例" を出力していないぞ。
606 :
デフォルトの名無しさん :02/11/22 21:48
607 :
デフォルトの名無しさん :02/11/22 22:06
これ 今 問題 だされ 苦戦 しトる 解いて 臭い AB 50 AB だと 50こう、でわ ABCDBE わ? + AB +50 +ABCDBE CAB 150 FGHBAI
解 1 478371 478371 956742 解 2 476871 476871 953742 解 3 154756 154756 309512 解 4 154758 154758 309516
609 :
デフォルトの名無しさん :02/11/22 22:59
610 :
Warez :02/11/22 23:17
>607 問題が分からん・・.なぞなぞですか?
覆面算だと思われ。
>>603 しないよ。
floatのまま計算したらdoubleで演算した結果と異なる場合があるから、
doubleと精度が一緒じゃない限りdoubleで演算することはできない。
>>615 お前は電波受信良杉(藁
漏れも式があと半キャラでもずれてたら何書いてるかわからんかった
>>614 違う。必ずdoubleにしてたのはK&Rの時代の話だ。
今は演算子の両方のオペランドがfloatなら、型変換は起きない。
(ISO/IEC 9899:1999, 6.3.1.8)
620 :
デフォルトの名無しさん :02/11/23 03:05
614 と 618 が、それぞれポインタの先の何を否定してるのかいまいちわからない。
>>621 うー、なんか変なこと言ったかな。
確かに
>>601 のプログラムだと結局最後はdoubleになっちゃうんだけれども。
fmodやprintfに渡すときにね。でもx/yの除算はfloatのまま行われるよね。
>>602 は、「どうせ必ずdoubleで演算されるんだから、変数はdoubleで宣言
しなさい。floatにしても速度は速くならない。」と言ってるのだと思った。
だから、それに反論してみた。
>618 すると、fpuはどうなる?
>>623 どうなる、とは?
single precision演算命令のほうが、
一般にはdouble precision演算より速いと思うが...
>>622 言いたい事はわかったし、622 の内容はおそらく間違っていない。
しかし、あんたと 614 はポインタを正しく設定してくれ。
もしくは正しい議論をしてくれ。
まず 603 は、単に 「float 同士の演算は float のままやる」 と述べている。
614 はそれに対して、「演算結果が変わる可能性があるから float を double では演算
する事ができない」 と述べている。
正論だが、603 に対して 「しないよ」 というには頓珍漢だ。
618 では更にそれに対し、「float を内部的に double に変換したのは古い話で、今は
float 同士の演算は float のまま行われている」 と述べている。
これも正しいのだが、やっぱり 614 に対して 「違う」 というには頓珍漢だ。
この頓珍漢なありさまを見て、621 では 「何を否定してるのかわからない」 と述べた。
614 は 603 ではなく 601 を指したかったのか?
あと、622 が 602 を指している意味もわからない。
602 は浮動小数点数の判定が厳し過ぎないように epsilon を設定ているだけだ。
「x/yの除算はfloatのまま行われるよね」 という文は、 「single precision演算命令のほうが、一般にはdouble precision演算より速い」 と同じくらい、処理系依存な話。 たとえば、80x87。
627 :
デフォルトの名無しさん :02/11/23 07:13
doubleよりもfloatを使った方がよい場合ってどんな場合? 巨大な配列を作る場合?
>>627 精度を落として動作をおかしくしたい場合。
629 :
デフォルトの名無しさん :02/11/23 08:12
スレッドを作るときに以下のようにした場合、 スレッドでコピーされる前に参照値が無くなっているということはありえますか? void MyCreateThread(char*str){ htread = _beginthread(ThreadProc,0,(void*)str); } void ThreadProc(void*user){ char str[256]; strcpy(str,user); なんかおかしなことを言っているかもしれません
あ、間違えました。元のstrの問題ですね。多分。 言いたかったのは↓こういうことで、でもこれは無くなっていそうですね。 void MyCreateThread(){ char str[256]; strcpy(str,"hogehoge"); htread = _beginthread(ThreadProc,0,(void*)str); }
C標準でできない事の質問は使ってる開発環境のスレに行ってください。
>>630 それは大丈夫。引数は元スレッドのスタックを指しているから。
ただ新しいスレッドがstrの参照を完了するまで元スレッドは
スタックの内容を解放してはいけない。だから
MyCreateThread()の_beginthreadの後に同期を入れること。
そうしないとSMPでバグると思われ。
633 :
デフォルトの名無しさん :02/11/23 09:45
>>632 つまり、スレッドが終了するまでMyCreateThread()から
抜けられないって事だな・・。
バッカじゃねーの。
>>632 , 634
そういう問題じゃないだろ。
スタックをどうやって同期とるってんだ。
630の書き方だと、ThreadProcをただの関数にするかメモリを動的に確保してスレッドに渡して、スレッド側で開放するようにしてもらう以外ないだろう。
staticにしといてもいいけど、MyCreateThreadを連続して呼べば問題が起こる可能性がある。
>>633 =635
どうでもいいが、暑いよ
スレッド技法をよく知らないなら、もう少し勉強しておいで(ワラ
>>634 >つまり、スレッドが終了するまでMyCreateThread()から
>抜けられないって事だな・・。
ちがう。君もよく勉強してからつっこめよ・・。
( ´,_ゝ`)プッ
639 :
デフォルトの名無しさん :02/11/23 11:52
おまえらバカじゃないのか?ほんと自分は出来る風ですか? ほんとにバカ、オメーラ、みんな、ネット荒らしとどこが違うんだ!? ほんとな、おまえらはみんな、ここに来る資格ねーな!! デフォルトの名無しさんだっけ!!おまえしね!!人が頼んでるってのに何が あやしいっておまえみたいのがいるから日本がだめになるんだ!! 分かったバーカ!!もう荒らしでも何でもいいよ!! オメーラみたいなバカどもにつき合ってもしかたないから!! あんたらみたいのはもうこのよにもいらない !!
640 :
デフォルトの名無しさん :02/11/23 11:59
そもそも
>>1 を守らないやつに答えるのが間違い。
まあ未定義だから答えてもいいんだろうが。
>>636 どこが間違えているか具体的にいいなよ。
642 :
デフォルトの名無しさん :02/11/23 12:13
ヤッタァァァァァァァァァァァァァァァァァァァァ 初めて2をゲットしたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ!! うひゃひゃひゃひゃひゃひゃひゃひゃひゃひゃひゃ。 ウレシイなあァァァァァァァァァァァァァァアアアアア!!!!
>>643 636は嫌味。633は尊大喧嘩口調。
リアルならどっちも付き合いたくないね
>たとえば、80x87。 何が言いたいんだろう?たしかに 80x87みたいに、勝手にextended precisionで演算されちゃうのもあるから、 そういう意味では処理系に依存する話だね。ここでの要点は、「昔と違って 必ずdoubleに変換しなくても良くなった」と言う点。「必ずdouble」の否定は 「常にfloat」じゃないから、その意味で622の書き方はおかしかったかも。 規格では「必要な精度より長い精度を使って演算結果を表現しても良い」 となっている。 で、floatで演算する利点を理解できない厨がいるみたいだが、 実際にlinpackでもNPBでもやってみれば分るが、大規模な科学技術計算を floatでやれば、doubleで行った場合より一般には速くなる。たとえ80x87 のレガシーなFPUを使っていても。なぜなら、こういうnumber crunchingで はメモリのバンド幅がボトルネックになるから。 で、当然だが数値計算屋は「なんでもかんでもdouble」で計算したりする ことはない。必要な精度がfloatで得られるときに、わざわざ遅くするのは ばかげているから。CのFP演算が「なんでもdouble」から「必要ならdouble に変換」に変わったのは、数値計算屋の強い要求。
>何が言いたいんだろう? >「必ずdouble」の否定は >「常にfloat」じゃないから、その意味で622の書き方はおかしかったかも。 俺はまさにこれが言いたかった。つまり、 >でもx/yの除算はfloatのまま行われる かもしれないし、そうでないかもしれない。 それだけ。
>>646 了解。
「でもx/yの除算は必ずdoubleで行われるわけではない」と書くべきですた。
648 :
デフォルトの名無しさん :02/11/23 18:15
配列の中で最大の値を持つ、要素の配列番号を返すような関数はありますか? つまり、 a[0] = 1; a[1] = 5; a[2] = 3; a[4] = 7; a[5] = 3; なら4を返すような関数が有りましたら教えて下さい。 無い場合はどうしたらいいのかをおしえてください 。
649 :
manko_chinko ◆GLc2rpKRNM :02/11/23 18:16
>>648 >無い場合はどうしたらいいのかをおしえてください 。
自分で関数を作る
650 :
デフォルトの名無しさん :02/11/23 18:18
int ret_max_i(〜){ max=a[0];max_i=0; for(i=1; i<sizeof(a)/sizeof(a[0]); i++){ if(max<a[i]){ max=a[i]; max_i=i; } } return i; }
3が抜けてることに気付かなかった・・・どうしよっか
652 :
デフォルトの名無しさん :02/11/23 20:14
int main(void) { int node[MAXNODE][3] = { { 4, 1, 2 }, { 3, 0, 1 }, { 1, 0, 1 }, { 2, 0, 1 }, { 1, 2, 1 } }; }
>>635 > そういう問題じゃないだろ。
> スタックをどうやって同期とるってんだ。
ア、アホでつか?
もしかしてスタックが新しいスレッドと共有される
と思ってるとか?
654 :
デフォルトの名無しさん :02/11/23 20:14
652 です。 652のソースでコンパイルを行うと syntax error before `int' といわれます。 どこがおかしいのでしょうか?
655 :
デフォルトの名無しさん :02/11/23 20:15
MAXNODEはenumでちゃんといれています
>>648 qsortでソートすれば最後の要素が(以下略
>>654 652 にはエラーの原因となりそうなものはないです。
ちゃんとエラーが出た前後のソースもコピペしましょう。
658 :
デフォルトの名無しさん :02/11/23 21:03
>>657 有難う御座います。
では、お言葉に甘えてソースもうちょい張らせて頂きます。
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include<stdlib.h>
enum {
MAXNODE = 5 /* ネットワーク内のノード数*/
};
int main(void)
{
int i,select_node,select_resource,MAXSIM,maxresource,best;
double ret,c[MAXNODE],D,B[i],selection[MAXNODE];
double resource[3] = { 11.0, 3.0, 6.0 };
c[0] = 7/20;c[1] = 4/20;c[2] = 2/20;c[3] = 3/20;c[4] = 4/20;
double node[MAXNODE][3] = { { 4.0, 1.0, 2.0 },
{ 3.0, 0.0, 1.0 },
{ 1.0, 0.0, 1.0 },
{ 2.0, 0.0, 1.0 },
{ 1.0, 2.0, 1.0 } };
maxresource = 20; /*初期リソースの最大値*/
scanf( "%d", MAXSIM );
659 :
デフォルトの名無しさん :02/11/23 21:04
for( i = 1 ; i < MAXSIM ; i++){ select_node = randselect(MAXNODE); select_resource = randselect(3); if(select_resource == 0){ D = resource[0]/(double)maxresource;} else if(select_resource == 1){ D = resource[1]/(double)maxresource;} else if(select_resource == 2){ D = resource[2]/(double)maxresource;} ret = 0.0; for(i=0; i<MAXNODE ;i++){ for(i=0;i<100;i++){ ret+=(double)(rand()%1); ret-=(double)(rand()%1); } ret=ret/100+0.5; B[i] = ret; selection[i] = (( node[i][select_resource] / resource[select_resource] ) * c[i]) / ( D * B[i]);} selection[node] = 0.0; best = ret_max_i(selection); printf( "BEST NODE IS H%d\n", best++); if(select_resource == 0){ resource[0] = resource[0] + 1.0;} else if(select_resource == 1){ resource[1] = resource[1] + 1.0;} else if(select_resource ==2){ resource[2] = resource[2] + 1.0;} maxresource++; node[select_node][select_resource] = node[select_node][select_resource] + 1.0; } }
すみません、エラー内容をはるのをわすれました。 コピペの時にちょっといじったので、行数と一致していません。 (本文が長すぎるとか、改行多すぎるとかいわれたので) simulation.c: In function `main': simulation.c:26: syntax error before `double' simulation.c:67: `node' undeclared (first use in this function) simulation.c:67: (Each undeclared identifier is reported only once simulation.c:67: for each function it appears in.)
すみません、エラー内容をはるのをわすれました。 コピペの時にちょっといじったので、行数と一致していません。 (本文が長すぎるとか、改行多すぎるとかいわれたので) simulation.c: In function `main': simulation.c:26: syntax error before `double' simulation.c:67: `node' undeclared (first use in this function) simulation.c:67: (Each undeclared identifier is reported only once simulation.c:67: for each function it appears in.) エラーの場所は、 double node[MAXNODE][3] = { { 4.0, 1.0, 2.0 }, { 3.0, 0.0, 1.0 }, { 1.0, 0.0, 1.0 }, { 2.0, 0.0, 1.0 }, { 1.0, 2.0, 1.0 } }; の部分で指摘されます
投稿失敗ごめんなさい。
関数の戻り値にstaticを宣言するのと、しないのとでは何が変わるの? どなたか教えて下さい。 例) static int func(){...} int func(){...}
>>658 > double resource[3] = { 11.0, 3.0, 6.0 };
> c[0] = 7/20;c[1] = 4/20;c[2] = 2/20;c[3] = 3/20;c[4] = 4/20;
こっちの最初の行のセミコロンじゃないの?
すまん大ボケでした。変数宣言内での代入の問題だけじゃないですね。
>>664 staticつけると他の関数から参照できないとかそんなんじゃなかったっけ?
>>664 >>667 他のファイルの関数から参照できないです。
staticてのはメモリの使い方だと思うけどよくわかりません
意味合いとしてはprivateに近いと思います。
他の関数から参照できない関数は永久に使われないです。
>>664 素朴な質問というより低レベル/初心者/厨房の質問だな。
ヘルプ見れや。
文字を引数にしたらASCIIが返ってくる関数があることはわかるのですが、 ASCIIを入れたら文字が返ってくる関数はありますか?
673 :
manko_chinko ◆GLc2rpKRNM :02/11/23 21:47
>>672 int char_to_ascii(char ch)
{ return ch; }
char int_to_ascii(int ascii)
{ return (char)ascii; }
EBCDICの処理系が〜とか寝言言ってみる
676 :
デフォルトの名無しさん :02/11/23 22:03
>654 僕のBorland C++ Compilerではerrorsが3つでた. 1つは,unistd.hが開けないとかいうやつで,これはまあいいとして,後の2つは 配列Bの宣言 B[i] <- iが定数でない. 配列nodeの宣言 <- 命令(配列cの要素への代入)の後に宣言はかけない.
>>674 int_to_ascii() の方だけだけキャストしてるのは、どういう意味合いを込めてるの?
680 :
デフォルトの名無しさん :02/11/23 22:13
>>679 お前の質問が意味わからんことにきづけよ
ものすごい勢いでダメ出しされてるネタの返し
いや、簡潔に言うと printf("%d\n",toascii(getch())); これでキーボードをどっか押すとASCIIが出力されるわけね。 これの逆バージョンみたいな感じのが知りたいのね。
文字入力に対して数値を出したいの? 数値入力に対して文字を出したいの? 両方?
ASCIIにこだわるな!
むしろ西が(ry
同意
>>683 >これでキーボードをどっか押すとASCIIが出力されるわけね。
>これの逆バージョンみたいな感じのが知りたいのね。
翻訳すると、
「ASCIIを入力するとキーボードが押されるような関数ある?」
たぶん、こいつも「文字型」と「整数」がまったく別物だと
思ってる、Cに不慣れな人間の一人なのだろう。
Cでは「整数型」の一種として「文字型」があるって知ってたか?
>>683
>690 マジかよ! ある意味Cはスゲー
char c='d'; int i=64; printf("%d %d\n",c,i); printf("%c %c\n",c,i); とか、やってみそ。(64が適当かどうかちょっと分からんが)
>>683 話の流れはよくわからんがやりたいことは
なんとなくわかった。
おおまかにいうとこういうことか?
char str[1024];
int c;
/* 0-127を入力(8bitの場合は 0-255) */
gets(str);
c = atoi(str);
/* 対応する文字を出力 */
putchar(c);
putchar('\n');
ASCII じゃなくて、ASCII コードと言いたいんだろ。
>>694 ASCIIコードを文字列で入力して、
対応する文字を表示したいと思われる。
でも漏れの解釈だと、
〉printf("%d\n",toascii(getch()));
は
printf("%d\n",getch());
で十分な気がしてきた。
toasciiってなんだ?
>>695 MS 処理系依存。
低レベルでスキャンしてきたキーボードの値を getchar() の戻り値と同じにする。
その逆の方法なんて知るかい。
>>696 は正しいんだけど、
>>683 はたぶん
「getch()は文字を返す」
「toascii()は文字をASCIIコードの数値に変換する」
と思ってたので輪。
しかし、MSDN の __toascii() のサンプルに __toascii() が出てこないのは どういうこっちゃ。
699 :
デフォルトの名無しさん :02/11/24 01:52
cか或いはc++でもいいんですが for文やif文の多重ループから一気に抜け出す コマンドか関数ってありませんか?
goto
701 :
デフォルトの名無しさん :02/11/24 01:57
>>700 やはりgotoを使わないといけませんか・・
ありがとうございました
702 :
デフォルトの名無しさん :02/11/24 01:58
if文の多重ループってなんすか?
>>699 longjmp
return
exit
throw(C++)
707 :
デフォルトの名無しさん :02/11/24 05:32
わかる方お助けください 64×64の配列をいっぱい宣言したいんですけど ある個数を超えるとスタックエラーでてしまうんですけど 宣言できる限界ってあるんですか? また、解決法があればお教えくださいませ。
>>707 限界はある。環境に依存。
解決法:
1.スタックサイズを増やす。
2.extern変数として宣言する。
3.mallocやcallocで実行時に確保する。
709 :
デフォルトの名無しさん :02/11/24 05:45
>>708 こんな遅くにご丁寧にどうもありがとうございます。
伺わせていただきたいんですけれども
環境というのは具体的に何を示すのですか?
遅くというか早くというか… 環境ってのは主にOSだが、その他コンパイラや実メモリや スワップの空き領域などによって、スタックサイズのデフォルトや 上限が決まる。
>>708 今までスタックサイズを気にしない程度のPGしかやっていなかったんで
まいりました。
extern変数で宣言したらエラーが出たんですけど
グローバル変数にしてみたら稼動しました。
どうもありがとうございました。
>>711 関数の外でstaticをつけずに宣言した変数は
externと言ふのだよ…
まー、別にstatic変数でもいいはずだがナー。
>>712 勉強になります。
本当にどうもありがとうございました。
今度は、ヒープを食いつぶしたりして(w
ヒープを食いつぶす? グローバル変数が?
>>714 馬鹿か。ヒープを食いつぶすってどういう意味だ?
Cスレはスレッドもヒープも知らん奴が大口を叩ける場所なんだナ。
>>717 スレッドはC標準じゃないぞ
規格書を百回読んでから来い アホが
calloc は,メモリヒープへのアクセスを提供します。このヒープは, 可変長のメモリブロックで動的に割り当てるために使います。*1 *1:'TURBO C++ FOR WINDOWS Version 3.1'より抜粋
>>718 ハァ? スレッドすら知らないレベルでも大口叩けるってことだボォケ
規格書を何度も読み返してる暇があったら、知らない技術を学べやブタ
以下のようなプログラムを組みました。 一番外のforループで、毎回乱数を繰り返し発生させたいのですが、 その乱数の値が毎回同じ値になってしまいます。 これを毎回ランダムな値に入れ替える方法は無いでしょうか? よろしくお願いします。 #include <stdio.h> #include <time.h> #include <stdlib.h> main() { int x, i, j; for(j = 1; j < 5; j++){ srand((unsigned int)time(NULL)); printf("電子さいころです。\n"); for(i = 1; i < 5; i++){ x = rand() % 6 + 1; printf(" %d 回目は %d が出ました。\n", i, x); } } }
今のままでは、毎回いかのような結果になってしまいます。 $ ./a.out 電子さいころです。 1 回目は 3 が出ました。 2 回目は 6 が出ました。 3 回目は 3 が出ました。 4 回目は 4 が出ました。 電子さいころです。 1 回目は 3 が出ました。 2 回目は 6 が出ました。 3 回目は 3 が出ました。 4 回目は 4 が出ました。 電子さいころです。 1 回目は 3 が出ました。 2 回目は 6 が出ました。 3 回目は 3 が出ました。 4 回目は 4 が出ました。 電子さいころです。 1 回目は 3 が出ました。 2 回目は 6 が出ました。 3 回目は 3 が出ました。 4 回目は 4 が出ました。 こうならないようにしたいのです。
自己解決しました。 有難う御座います
ここはひどいスレッドですね
超アフォな質問済みませんが
constとstaticってなんでしょうか?
静的とか初期化とか装飾しなどの専門用語を使わず
具体的に説明してほしいのですが、
どう?
それと
>>721 はjをsrandに何かしら加えれば良いんじゃないでしょうか?
727 :
デフォルトの名無しさん :02/11/24 12:10
>>715 グローバル変数ってヒープに領域がとられるの?
初心者の皆さんすいません。 午前中はレベルの高い人は寝ています。 皆さんの質問にちゃんと答えられる人はいません。
レベルの高い人は2chに書き込みなんかしません。
>>725 constをつけて宣言されたデータは、内容を書き換えることができない。
また、コンパイラや読む人に、こういうデータは値が変わらないんだとわかる。
staticには大きく分けて2つ意味がある。
staticなデータは、プログラムが開始したときから終了したときまで
メモリの同じ位置に割り当てられている。
staticな関数は、同じソースファイルの中からは名前を参照できるが、
ソースファイルの外から名前を参照できない。
>それと
>>721 はjをsrandに何かしら加えれば良いんじゃないでしょうか?
srandをfor文より前に出せばよい。
>>735 てめー、自分じゃ答えられなかったくせに
偉そうに批評してんじゃねえ!
プンプン
>>720 >ハァ? スレッドすら知らないレベルでも大口叩けるってことだボォケ
>規格書を何度も読み返してる暇があったら、知らない技術を学べやブタ
1をロクに読まない
>>720 は蛆虫に劣るクズボケだろが
誰でも知ってるスレッドぐらいで大口叩くアフォ は二度と来るな シネヤ ウジムシ
>>737 気持ちはわかるが、720 は正しい。
スレッドを知らなくてもこのスレでは大口を叩けるという点と、
スレッドを知らないより知っていた方がいいという点で。
C 規格書はこの際関係無い。
>>737 スレッドは関係ないボケェ
には激しく同意するがヨソでヤレ
っつーか何で環境依存は別スレだって言うのに
スレッドスレッド言うのか全く不明だが
>>738 Cを熟知してるなら大口叩いても無問題。
だいたいスレッドは環境依存度が激しくて
知ってるかどうかなんてCには無関係。環境依存のスレッドを無理矢理絡めるなよ。
#include<stdio.h> main() { char* hoge[]={"piyo","piyo_2"}; printf("%s\n",hoge); printf("%s\n",hoge+1); } なぜちゃんと出力されない?詳細キボンヌ
>>741 hoge → hoge[0]
hoge+1 → hoge[1]
終了
>>742 何が間違ってるか、じゃなくてなぜちゃんと出力されない、だろ。
しかし、どうして必要無いのにポインタに対して加減算をしたがる人が居るのだろう・・・。 悪書が出まわってる予感。
>>743 全くその通り。
式の中では、配列が配列の先頭を指すポインタ変数に成り下がるように、
ポインタ配列もポインタ配列の先頭を指すポインタ変数に成り下がるよな?
>>745 1から勉強し直せとしか言いようがない。
>>745 piyo
piyo_2
と出力されないってことだろ?
間接参照していないからじゃん。
#include<stdio.h>
main()
{
char* hoge[]={"piyo","piyo_2"};
printf("%s\n",hoge);
printf("%s\n",hoge+1);
}
なぜ
>>741 はちゃんと出力されると思ったの?詳細キボンヌ
ここのスレの住人低レベル過ぎ。
751 :
デフォルトの名無しさん :02/11/24 13:51
age
>>745 成り下がるよ。
hoge の先頭アドレスを指すポインタにね。
で、「hoge の先頭アドレス」 がどこだかわかる?
┏━━━┯━━━┓
hoge┃char**.│char**.┃
┗━┯━┷━┯━┛ ┌─┬─┬─┬─┬─┐
. │ └→.どっかのメモリ領域1│'p'│'i' │'y'.│'o'│'\n'│
. │ └─┴─┴─┴─┴─┘
. │ ┌─┬─┬─┬─┬─┬─┬─┐
. └────→.どっかのメモリ領域2.│'p'│'i' .│'y'.│'o'│'_' │'2'│'\n'│
.└─┴─┴─┴─┴─┴─┴─┘
逆だった Σ(゚д゚lll)ガーン
しかも hoge の中身は char** じゃなかった・・・吊ってくる。
>>755 ┏━━━┯━━━┓
hoge┃char*.│char*.┃
┗━┯━┷━┯━┛
こうだろ?
修正済みだった・・・吊ってくる。
打つし
レベル低っ!
めげずに書き直し。
>>745 成り下がるよ。
hoge の先頭アドレスを指すポインタにね。
で、「hoge の先頭アドレス」 がどこだかわかる?
┏━━━┯━━━┓
hoge┃ char *│char * ┃
┗━┯━┷━┯━┛ ..┌─┬─┬─┬─┬─┬─┬─┐
. │ └→.どっかのメモリ領域2│'p'│'i' .│'y'.│'o'│'_' │'2'│'\0'│
. │ └─┴─┴─┴─┴─┴─┴─┘
. │ .┌─┬─┬─┬─┬─┐
. └────→.どっかのメモリ領域1│'p'│'i' │'y'.│'o'│'\0'│
└─┴─┴─┴─┴─┘
764 :
デフォルトの名無しさん :02/11/24 15:51
>>721 >int x, i, j;
>>>>time_t t;
>for(j = 1; j < 5; j++){
>>>>srand((unsigned int)time(&t));
としたら、どうなんだい?
>>765 srand() を 1 つのインスタンスで 2 回以上呼ぶなよ。
つーか、解決したって書いてあるだろ。何をどうしたか知らないけど。
767 :
デフォルトの名無しさん :02/11/24 16:30
C言語でhostコマンド似たような実行をするプログラムって、 どんなプログラムになるんでしょう? よろしければ、考えてもらえますか?
gethostbyname呼んで、結果をprintfで出力…って他のスレでも 同じ質問見た気がするのは気のせいか?
マルチ萌え
FORTRANとCはどっちがいいんですか?
つまり、略すと断然フォートランという事ですか?
>>771 >本物のプログラマは Fortran を使わない。Fortran は白靴下を履いた臆病者のエンジニアや、パイプ圧フリークや、結晶解析のチビどもが使うものだ。奴らは有限要素解析と核反応炉シミュレーションで喜ぶ。
>>771 >教訓:本物のプログラマはふつうキーパンチャーとラインプリンタをツールとして使うが、緊急時には前面パネルと電話でこなしてしまう。
(禿藁
君らスレ違い。
#include <stdio.h> int main(void) { printf("やっとコンパイルできた\n"); return 0; }
( ´,_ゝ`)フーン
┏━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━┛
( ´,_ゝ`)フーン
┏━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━┛
( ´,_ゝ`)フーン ┏━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━┛
>780 プ ┏━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━┛
783 :
デフォルトの名無しさん :02/11/24 23:57
┏━━━━━┓ ┃┃ ┃┃ ┃┃ ┗━━━━━┛
xのy乗を求める標準の関数ってないのですか? 低の変換公式を使えばexp(y*log(x))もしくはで求まりますけど。 とかいてたら見つかった>pow sage
786 :
デフォルトの名無しさん :02/11/25 12:57
.. ┏━━.pow.━━┓ .. ┃ .┃ x, y─╂→ ─╂→ x^y .. ┃ .┃ .. ┗━━━━━━┛
788 :
デフォルトの名無しさん :02/11/25 17:18
printf で a = 123.4 のとき 123 a = 12.34 のとき 12.3 a = 1.234 のとき 1.23 と表示桁数を固定(この場合は桁数3で、aの定義域は 1<a<1000 とする)して、 その中で小数点の位置をずらして出力するような書式ってありますか?
>>788 GNU拡張機能かもしれないけど %g で望み通りの結果が出るかも
今から3*3のまるばつゲームの対COM版をつくりまつ! 木構造でいいんでつか?
791 :
デフォルトの名無しさん :02/11/25 18:29
main(argc, argv) の引数の "argc" と "argv" の名前の由来って何なのですか? 知らなくても済む事かもしれませんが気になるので解かる方教えてください。お願いします。
c->count v->value
>>791 argument countとargument vector
vector なん? values かと思ってたけど。
vは諸説あるね。vector説やvalue説やvariable説を聞いたことがある。 V6 UNIX 付属の C tutorial (1975) のファイルにも、特に何の略だという 記述は無いのだよ。
諸説あるもなにも、K&Rにvectorって書いてあるじゃん
K&Rのvalueも有力説の一つ。最初にargvって書いた奴に聞かないと。
あ、valueじゃなくてvector。すまそ
variable は意味違うでしょう。 あと、実際が array であるところを見ると vector も違う気がする。 K&R ってそんなに 「正しい」 の?
>あと、実際が array であるところを見ると vector も違う気がする。 アフォですか?
>>800 ヲイヲイ、一次元の配列をvectorと呼ぶのダヨ…
>K&R ってそんなに 「正しい」 の?
まあ、Cを作って使い始めた人(のそばにいた人たち)が書いてるから。
どう考えてもvector以外は(英語のニュアンスとして)おかしい。
>>802 >まあ、Cを作って使い始めた人(のそばにいた人たち)が書いてるから。
括弧内は余計
>どうしても違う気がするんだけど。 お ま え の 気 が 違 っ て る だ け だ
だれも答えてくれんのか? ポインタが何かを指し示している様子を指してベクトルと呼ぶならわからないでもないが、 それでも無理矢理だし、ポインタを格納しない一次元配列でもやっぱり意味不明だ。 第一、char*[] は (メモリにどう確保されているかは別として) 二次元配列と見なせる 気がしないでもない。
数ベクトル・・・n個の実数x1, x2, ..., xnを順序づけて並べた組を n項数ベクトルという(藁
>>809 その論で逝くと、vector は入れ物ではなくて、中身の値の羅列が表現するものと
いう事になるが、そういう事なのか?
要するに、(数)ベクトル=配列ってことだろ。
何でもともと array という単語があるのに、そんな面倒な脳内変換をしなくちゃ いかんのだ?
あのなー。 数学や計算機の用語が ただの辞書に正確に載ってると思うほうがどうかしてるだろ。 そんなのを根拠に持ってくるなよ(藁
C99 規格書には program parameters と書いてあるな。 argv が結局何の略なのか説明していない。
>>813 【コンピユータ】 ってカテゴリでバンバン載ってるじゃん。
そっちこそ根拠何一つ示さないくせに何を偉そうな。
arrayには「一列」というニュアンスが無い。 縦か横か縦横両方か、とにかく並んだもの。
Vector Typeと呼ばれる型をもつようなプログラミング言語の 仕様書を見てみろ。たとえばCommon Lispとか。 one-dimensional arrayのことだと定義されている。
819 :
デフォルトの名無しさん :02/11/26 03:15
まあ少なくともvalueやvariableはどう考えてもおかしいよな。
なになに、ベクタが1次元配列だと知らない香具師がいるの? だから言っただろ、情報系の大学院くらい逝っとけって!
>>817-818 おおありがとう、そういう根拠が欲しかった。
それでも何で vector がそういう意味を持つようになったのか疑問が残るが、
811 のような理由と考えていいか?
つーか、方向と力量を表現する本物のベクトルとはどう区別するんだ?
>>819 理由は?
>>821 方向と量を表現するベクタは、スカラが1次元に並んだものだろう?
スカラといったら0次元、
ベクタといったら1次元、
matrixといったら2次元だし、tensorといったら3次元だ。
>>821 >つーか、方向と力量を表現する本物のベクトルとはどう区別するんだ?
文系の方ですか?
argcだってvariableだしvalueを持ってるよ。 変数名に「変数」とか「値」なんて情報量の無い名前を付けるのは おかしいだろ? あれだけ短い名前で情報を伝えようと努力してるのに。
「本物のベクトル」ってなんだよ(藁
>>822 了解。
しかし、819 の理由は依然としてわからない。
827 :
デフォルトの名無しさん :02/11/26 03:28
これくらいのことは、センスのあるやつなら瞬時にわかる。
>>827 つまり、説明できないんだね。
よくわかった。
830 :
デフォルトの名無しさん :02/11/26 03:32
>>828 ものわかりのわるい文系の粘着厨房が1人いるな。
824嫁。
まさに過愚師
>>824 「値」 の意味が違うよ。
引数の値、実体の事と言えば冗長でもないだろう。
「変数」 が冗長なのはわかる。
834 :
デフォルトの名無しさん :02/11/26 03:36
結局ネタなわけだが・・・
ほんとのことは作った本人しかわからない、と
作った本人の降臨キボンヌ
引数をオブジェクトとして考えた時、 argument.count argument.value は納得できるけど、 argument.count argument.vector は意味がわからん。
>>837 しつこいなー。
オブジェクトとして考えるわけねーだろ。あの時代に。
配列とその長さってのはFortran以来の由緒ある引数の渡し方だろ。
電波か?
相手しても無駄な香具師: (1)自分のマチガイが明白なのに認めようとしない、 最初から議論する気の無い馬鹿。 (2)自分のマチガイが、他人から見れば明白なのに、 最初から理解する頭の無いアフォ。
だから、最初っから元祖K&Rにvectorだと書いてあるっつーに。
>>797 で。
なぜここまで引っ張るかなー。
argv[i]のように、1次元の添字でアクセスするものを 「ああベクターであることよなあ」と感じない厨房は もういちど修士課程からやりなおせ。
修士課程って何ですか?
reallocで、再度メモリを割り当てると、前にあったデータは消えるしょ? どうやったら残しておけるの? リスト構造とか・・・
> reallocで、再度メモリを割り当てると、前にあったデータは消えるしょ? え?
>>843 argv[i][j] でアクセスしてはいけないと?
> reallocで、再度メモリを割り当てると、前にあったデータは消えるしょ? 消えないけど。
レス数ももったいないのでargvの過愚師は放置で・
vectorはやっぱ内積でアクセスせんとな
>>JPS 消えるとは限らないが、大きくしたときには、 まあアクセスできなくなると思っていたほうが良いね。 ポインタでつながれているもの自体をreallocしちゃいけない。 リストの要素は固定長にして、可変長のデータはそれと分けるんだ。 たとえば、 struct list_header { struct list_header *next; char *real_data; }; みたいにしておいて、real_dataだけreallocする。
>>851 消えもしないしアクセスできなくもならないけど?
>>852 規格によれば、
・reallocは引数として渡されたメモリの内容を他へ移動して、
移動先へのポインタを返すことがある。(あたりまえ)
・その際、引数として渡されたもとのメモリはfreeされる。
ことになっている。
>>853 つまり、中身のデータは消えもしないし確保した領域がアクセスできなくもならない
という事でしょ?
>>852は知ったか。
>>854 freeされた元の領域にアクセスしたら未定義動作。
JPSの質問にあるように、リストの途中で前後の何箇所か
から指されているようなメモリ領域を考えてるんだよ?
>>856 データじゃなくてポインタの話ね。了解。
>>857 ポインタだってデータだが。
JPSがナイスなタイミングでネタを投下したな(w
ヒマだったんで、じゃんけんプログラムをつくりますた。 へぼ思考ルーチンでつ。これから3*3の○×がんがります。
○×って、ヘマさえしなければ引き分けしかならないと思うんだがどうよ?
でも、五目並べならリバーシよりロジック難しそうだ。
めんどいんで、リーチの時以外はランダムにすることにしますた。 終わったらK&R読破します。
プログラミング作法でrealloc()ミスってたよね オンラインのソースは直してあった ミスの仕方が面白い
>>861 引き分けにしかならない、ということを学習するルーチンが出来上がると思いす。
>>863 先手さえ取れれば、その COM には勝てそうだ。
vec・tor -[名][C] 1◆〔数〕 ベクトル, 方向量; 動径 :〜 analysis ベクトル解析. 2◆〔空〕 方向, 進路(方位). 3◆〔生物〕 媒介動物, 保菌生物 《病原体を運ぶハエ・カなど; 主に昆虫》. -[動][他] 〈飛行機・ミサイルなどを〉電波によって誘導する. 【ラテン語「運ぶ者」の意】 この「運ぶ者」っていうのはまさに引数を暗示させてるな・・・
西洋の言葉は奥が深いですなぁ。
日本語平面と英語平面の間に抽象的(ry
> 電波によって誘導する うーむ。 2ちゃんねらにとっては凄い意味になりそうな言葉だ。
>>867 > この「運ぶ者」っていうのはまさに引数を暗示させてるな・・・
こじ付けだとは思わないわけか?
そういう意味だとしたら argument vector は何かおかしいぞ。
>>871 そだね。言葉の意味なんて文脈でいくらでも変わるからね。
> この「運ぶ者」っていうのはまさに引数を暗示させてるな・・・ ネタとしては30点くらいかな。
運ぶ者が引数とどうつながるんだ?
すまん
ここは FORTRAN のスレですが何か?
argv == argument vector == 議論を誘導するもの == 釣り師
argv == argument vectorer == 議論を電波によって誘導するもの だろ
880 :
デフォルトの名無しさん :02/11/26 15:38
a[100] であらわされる100個の整数を格納する配列を考えます。 その配列の要素の総和が1000になるように 各配列の要素にランダムに整数を格納する方法を教えてください。
881 :
デフォルトの名無しさん :02/11/26 15:50
880です。よろしくお願いします。
>>880 ランダムに格納したらどうやっても総和が1000にならんが
a[0] 〜 a[98]までをrand()
a[99]に1000 - それ以外の総和
これじゃだめ?
883 :
デフォルトの名無しさん :02/11/26 15:55
>>882 それでもいいのですが、
どうやれば
a[0]〜a[98]
までの総和を1000以下におさえた形で、
各配列要素にランダムに値を格納できるのでしょうか?
1) 0〜19のランダムな整数を50個生成し、a[0]〜a[49]に入れる。 2) a[i] (i = 50..99)に、20-a[i-50]を入れる。 3) 全体を良く混ぜる。
あ、ステップ1)では0〜19に範囲を限る必要はないね。
a[i]に対して、0..(1000-(a[0]..a[i-1]の総和))の乱数を格納。
>>883 a[0]〜a[98]すべてに負の数
a[99]に1000-それ以外の総和
オーバーフローについて指定あるのか
890 :
デフォルトの名無しさん :02/11/26 16:08
乱数は、平均が10で非負の一様分布で良いのか? だったら、 for (i = 0; i < 1000; i++) a[i] = i / 50; とやって、それからランダムにシャッフルすれば良い。
>>891 がいいこと言った
要求仕様をよく読めってのが題意にありそう
1000個の箱を用意して それに100個の玉をランダムに入れていく。 番号0の箱から見ていって、1つ目の玉が入っていた 箱の番号をa[0]の値とする。 以下同様に、玉が入っていたら (箱の番号-前の玉が入っていた番号) をa[i]に入れていく。
間違い。100個の玉入れちゃだめ99個 で a[99] は (1000-99個目の玉が入っていた箱の番号)
>>894 「100個の箱に1000個の玉」ってのは正解っぽいな。
負の数を考えないとしたら、最も美しい解だな。
a[i] 全部ゼロにする。
for (k = 0; k < 100; k++)
a[ (0〜99の乱数) ]++;
失礼。ループ回数は1000回ね。 a[i] 全部ゼロにする。 for (k = 0; k < 1000; k++) a[ (0〜99の乱数) ]++; どうだ! これが決定版だろ。
>>896 私の考えたのとちょっと違うみたいだけど
それが一番いいですね〜
↓適当に書いたテストプログラム。コマンドライン引数に整数を与えると結果が調整できます。
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 100
#define RANGE 1000
void random_set( int *array ) {
int i;
for ( i = 0; i < ARRAY_SIZE; i++ ) array[i] = 0;
for ( i = 0; i < RANGE; i++ ) array[rand()%ARRAY_SIZE]++;
}
int main( int argc, char **argv ) {
int array[ARRAY_SIZE];
int i, sum = 0;
if ( argc > 1 ) srand( atoi(argv[1]) );
random_set( array );
for ( i = 0; i < ARRAY_SIZE; i++ ) {
printf ( "%2d: %3d\n", i, array[i] );
sum+= array[i];
}
printf( "sum: %d\n", sum );
return 0;
}
ありがとうございます。
>>894 さんので、やらせていたいただきます。
>>901 あ、私じゃなく896さんの考えた方法です(念のため
>>896 さんありがとう。他のみんなもありがとう。
904 :
デフォルトの名無しさん :02/11/26 17:38
C言語自体のことではないのですが Cを書く際に使いやすいエディタってどんなのがありますか? 今までCPad使ってたのですがもう少し上級なのを使おうかなと思いまして。 よろしくお願いします。
>>900 間隔が一様分布だと、総和はガウス分布に近づく。
総和が一様分布だと、間隔は指数分布に近づく。
>>907 まちがいた。
単位区間内に起きる事象の回数(たとえば、100個の箱の中の玉の数)
の平均値が決まっていて、どの時点で起きるか(玉が入る箱の番号)
が一様分布だとすると、事象の間隔は指数分布。
>>908 それって箱に複数の玉が入ることも想定してるのかな?
てか混乱してた
よく考えたら一様分布になりそうにないね
ありがとう
>>908
>>894 のアルゴリズムの分布調べてみると、こんな感じになった。
(ずれるかも)
0-2 : ************************************ 20
3-5 : ************************************************** 28
6-8 : ********************** 12
9-11 : ********************** 12
12-14 : ********* 5
15-17 : *********** 6
18-20 : **** 2
21-23 : ****** 3
24-26 : ********* 5
27-29 : ** 1
30-32 : **** 2
33-35 : 0
36-38 : ** 1
39-41 : ** 1
42-44 : 0
45-47 : ** 1
48-50 : 0
51-53 : 0
54-56 : 0
57-59 : 0
60-62 : 0
63-65 : ** 1
Min 0, Max 63, Avg. 10.000
>>911 偏ってるけど乱数の生成方法に問題あるんじゃねーの
>>911 は? だから指数分布(に近づく)といっとるだろ。
一方、
>>896 の結果は↓こうなった。
1 : *** 1
2 : 0
3 : 0
4 : ********* 3
5 : *** 1
6 : ********* 3
7 : ****************************** 10
8 : ************************************ 12
9 : ********************************* 11
10 : ************************************************ 16
11 : ********************************* 11
12 : ************************************************** 17
13 : ************************ 8
14 : ********* 3
15 : *** 1
16 : *** 1
17 : 0
18 : *** 1
19 : *** 1
Min 1, Max 19, Avg. 10.000
ガウス分布だね。
一様分布のアルゴリズムは未だ誰も考え付いていない。
>>913 あー!そうかー。
足してくとガウス分布に近付いちゃうよなあ。
中心極限定理という香具師だな。
うーん。一様分布じゃなきゃだめなの?
てか一様分布ってどうなるの?ありえなくない?
>>915 え?
どの値の出現確率も同じなのが一様分布だけど?
まあ、1000個くらいだとぴったり全部同じにはならんだろうけど、
ほぼ同じになるはず。グラフの形は、
******
******
******
******
******
******
...
にわずかなでこぼこ、っていう感じになるはず。
>>916 値の範囲は0〜1000だけど.....
>>917 0〜1000と決まってたっけ?
また、そうだとしても同じこと。
0〜1000の範囲の数が1/1001の確率で出現すれば一様分布。
ああ、そうか。0〜1000だとすれば、 平均が10の一様分布ってことはあり得ないね。 いったいどんな分布を望んでるかは本人にしかわからんが…
一様分布バージョン。 #include <stdio.h> #include <stdlib.h> int foo[100]; main() { int i, d; srand(time(NULL)); for (i = 0; i < 50; i++) { foo[i] = i % 20; } for (i = 50; i < 100; i++) { foo[i] = 20 - foo[i - 50]; } for (i = 0; i < 100; i++) { int tmp = foo[i], rnd = rand() % 100; foo[i] = foo[rnd]; foo[rnd] = tmp; } for (i = 0; i < 100; i++) { printf("%d\n", foo[i]); } return 0; }
921 :
デフォルトの名無しさん :02/11/26 18:52
やはし統計学とか知っといた方が良いPGになれますか?
↑【転送】また、騙された訳だが【完了】
924 :
デフォルトの名無しさん :02/11/26 20:03
やっぱり確立とか勉強しないとゲームも書けませんか?
別に確率を使用しないゲームもあるしランダム程度知っていればゲームは作れる。 リアリティやゲームバランスの向上を目指すなら確率を知っていたほうが良いと思うが。
ゲームに限らず、ちゃんと勉強しとかないと rand() % N なんて書くDQNプログラマになっちゃうぞ。
>>926 確率の勉強をしてもrand() % Nと書かなくなるわけではない罠。
>>926 D Q N は お ま え だ っ つ ー の ( ワ ラ
しまった!名前欄消し忘れた!(汗
乱数、こんなのどうですか? int rand1(int max) {return rand()/(32768/(max+1));} int rand2(int max) {return rand()%(max+1);} int rand3(int max) {return (rand()+rand()*32768)/(1073741824/(max+1));} int rand4(int max) {return (rand()+rand()*32768)%(max+1);} int rand5(int max) {return (clock()/10)%(max+1);}
>>931 なんで rand()%N がダメかって説明できんの?
>>930 ものすごくDQNなプログラムの群れがニホヒ立つ.
randMT()%Nではいかんのか?
>>932 ええ、できますけど、そうやって説明させようと言うつもりなら
素直に「教えて下さい」と頼むのが礼儀と言うものですよ。
>>934 Mersenne Twisterなら%Nで大丈夫でしょうけど、
標準関数ではありません。
>935 もし、randの下位のbitが云々、とやりたいなんら、 VCのrandは return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff); となっていることを云っておく。
>>938 >そうやって説明させようと言うつもりなら
>素直に「教えて下さい」と頼むのが礼儀と言うものですよ。
>>937 なぜC言語スレでVCの実装の話がでてくるのか教えて下さい。
>>941 前にも出てきたけど、最近のバージョンのglibcのrandも
rand()%N
で無問題
昔むかしにrand()%Nはダメと教えられて
それを単純に覚えてるだけのやつはDQNだよ
結局 926 :デフォルトの名無しさん :02/11/26 20:13 ゲームに限らず、ちゃんと勉強しとかないと rand() % N なんて書くDQNプログラマになっちゃうぞ。 は実装の話になるから間違いって事だろ。
>>942 そんな処理系に依存した話は他のスレでやって下さい。
>944 926に言ってくれ。
「rand()の下位ビットが十分ランダムだ」と仮定すると 処理系に依存したプログラムになる。 「あまりランダムでないかも知れない」と仮定すると、 移植性の高いプログラムになる。
>>946 それには同意
でもダメな理由も知らないのに
>>926 みたいなこというのは感心しないってこと
946は、識別子を6文字に押さえるタイプ
D Q N は お ま え だ っ つ ー の ( ワ ラ
954 :
ポインタがわかりません。 :02/11/27 00:01
int *a,b; b=100; a=&b; /*質問1*/ printf("%d\n",b); printf("%d\n",a); /*質問2*/ printf("%d\n",*a); printf("%d\n",&a); 質問1:この場合、bのアドレスをaに代入するわけですよね? 質問2:そうするとこの文の実行結果はbのアドレスだと思ったんですが、aのアドレスが出ました。 なぜですか? たぶん、初歩的なところが理解できていないのだと思うんですが、 1行目で宣言してるaに*がついているということは、 aはポインタ変数なんですよね。ここまではわかります。 で、ポインタ変数ってなんですか???ってことなんです。 メモリ内に*aの領域が作られるわけですよね。その内容にはアドレス以外入らないわけですか?
>>954 A1: はい。
A2: bのアドレスが出るはずです。&b の結果と比べてみてください。
次スレもこのスレも腐っているから安心していい。
>>954 *aの領域は作られない
aの領域だけが作られる
aの領域に&bを書き込んだ時点から
*aはbを意味するようになる
「rand()の上位ビットが十分ランダムだ」と仮定すると 処理系に依存したプログラムになる。
960 :
デフォルトの名無しさん :02/11/28 00:21
ここは荒らされていない age
>>959 (ワラタ
rand()は使えないってことね。
>>954 printf("%d\n",&b);
を入れておけ。入ってないよ。
さげ
さげ2
安楽死さげ
1000!
1000!
氏ね
↓ロリコン
↑フケセン
↓(・∀・)ジサクジエンデシタ
\ \ ○ // / / \ \ / ヽ / / / / \\ /_ ゝ / // \ / \ \ _/____\__ ∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧ / ヽ < /ノヽ 、、 ヽ) ( ノ ヽ < |::::: ) ( て○ )` ソ' 、/~○ノ :::| < | ヽ / ̄ ̄\ |:::::: /' .::::::. ` \ ::::::| < | ヽ __ | |:::: / / ̄ ̄ヽ ::::::|< / \ |ノ ―――― / |::::: | |||!|||i|||!| | ::::::| < / \ 丿 アアァァ | |:::::::. | :| |ll ll !! !.| | ::::| < ● \::::: | :|!! || ll|| !!:| | ノ < \::::.. | | ! | l \\V V V V V V V V V V V V V V V V V
記念パピコV(^o^)V
↓屍姦者
(;´Д`)ハァハァ
↑ 知障 近親相姦 ↓
(`・ω・´)ハァハァ
978 :
デフォルトの名無しさん :02/11/28 04:47
↑ 大器晩成 温故知新 ↓
o /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / / このスレは無事に / / 終了いたしました / / ありがとうございました / / / / モナーより / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ∧_∧ / /∧_∧ ( ^∀^) / /(^∀^ ) ( )つ ⊂( ) | | | | | | (__)_) (_(__)
↑ 基地外 焼肉定食 ↓
981 :
デフォルトの名無しさん :02/11/28 20:37
Borland C++ って名前はC++なんですけど これってCにも使えるんですか?
↑ 白痴 鬼畜 ↓
___ / O。\ /;;:::::: ヽ /;;:::::: ゙ヽ、 (;;:::::: ( _、, ,,._ ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /;;:::::: ,,⊂・、 (⊂・( < ユー ホースト? HAHAHA ノ( (6;:::. _ ⌒( 、 ,)⌒ ヽ. \________ /;;;;;;;;;;:::.. i'\_,,,,,,,, !,,,,,,,,_i ノ ;;;;;;;;;;;;;;;|;:::. ! ヽ、王王王ツ' j、 / ̄ ̄ヽ ;;;;;;;;;;;;;;;;|;::: ニ ,,ノ \ | , 、 ; | Help me! ;;;;;;;;;;;;::::ヽ;::: / ゙ヽ、)◎。。◎ 6) Help me!Zapp! ;;;;;;;;;:::::.... ヽ┗〓〓┛ i ◎ | ;;;;;;;::::::::... /^ェ ~ ̄~ル ̄!ニ)) ヽ. / ;;;;;::::::......./: ィ  ̄) ̄ ̄ i⌒( ̄ ̄ ̄ヽ ;;::::::..../::: ィ  ̄) Y しi ( ̄ ̄ ^) ;::..../:::::: ィ  ̄) ! 人( ̄ ̄ ,ノ / ̄ ★ i /ノ( ( ̄ _ノ
984 :
デフォルトの名無しさん :02/11/28 22:39
えーーーとーー・・・up
うめ
れば
良い
です
か?
記念パピコV(^o^)V
999
,,,人_,,,人人_人人_,,人人 < > < 1000Get!!!!!!!!!!!!!!!! ∠ > ____/_//_/  ̄Y''' ̄Y ̄Y '''Y'' ̄YY ̄Y''' /____ / ___________________ _ _ _ ∨ _____/ / /___________________/ /_//_// / ゚ /______/ /_/ ゚ ゚ 。 /゙////_.. 〃 ゚ く ∧∧ ) ゙゙゙\,,_______ _,, _ ...,, ゝ⊂(Д゚ 〇 _`つ ......... ............................. .............. ・…∵...・・ ・ く ....... .......... :::::::/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄'' ̄ ~" ゚ \,|'\゙∨  ゙̄ ~ ゚ ゚ 。 ゚ 。
がんばれ!あと少しだゾ!
汗り杉
あー、てすてす。
998 :
デフォルトの名無しさん :02/11/28 23:23
999 :
デフォルトの名無しさん :02/11/28 23:23
a
1000 :
デフォルトの名無しさん :02/11/28 23:23
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。