C言語質問所 <43>

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C言語質問所

問題をちゃんと切り分けて、Cの話かそうでないか洗ってから質問してください。
というより、聞く前に一応 Web で検索してください。
コンパイラを探してるなら >>2 を見てください。

GUIとか、C標準でできない事の質問は使ってる開発環境のスレに行ってください。
ソース丸投げ、宿題、書籍 は専門の別スレがあるからそこへ行ってください。

上記を守らない書き込みをした場合、その結果は激しく未定義とします。


C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
comp.lang.c FAQ(英語の原文)
http://www.eskimo.com/~scs/C-faq/top.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
推薦図書/必読書のためのスレッド PART6
http://pc3.2ch.net/test/read.cgi/tech/1033207156/


前スレ <42>
http://pc3.2ch.net/test/read.cgi/tech/1037101156/
【コンパイラ】
gcc
http://gcc.gnu.org/

【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/

【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
        まもなくここは 乂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
削除以来よろ
>>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)」 を選択して続行してください。
381001 &rlo;daerhT 0001 revO :02/11/13 06:48
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
ここが新すれのようですね。
また頑張りましょう!!
39=1 は逝ってよし
     ∧∧  ミ _ ドスッ
     (   ,,)┌─┴┴─┐
    /   つ  終 了.  |
  〜′ /´ └─┬┬─┘
   ∪ ∪      ││ _ε3
ワラタ






























































クソすれ






























                                      クソすれ
荒らしを晒しage
47デフォルトの名無しさん:02/11/13 12:30
荒らしって 1 の事だろう
4847:02/11/13 12:45
ああ、sgeちゃったYO・・・スマソ
          ☆ チン       
                       
  ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ヽ ___\(\・∀・)< クソスレハケーソ
        \_/⊂ ⊂_)_\____________
      / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
    |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
    | 全日本クソスレ同盟|

なんで42がまだ790しかレスついてないのに新スレ立てるのかな?
>>1の考えがよくわからない。
>>49
790 レスじゃないよ。
タイムスタンプからして、624 レスのあたり。

ちなみに、>>1 の降臨は 734-749 あたり。
このスレの>>1は超アフォ
5249:02/11/13 21:04
>>50
ネタにマジレス(プ
>>52
必死だな(プ
5449:02/11/14 00:16
>>53
ageているし。
よほど必死なんだね(プ
おまえらほんとに厨だな。
荒らしてねーで前スレ終わるまでじっとしてろよ。
つーか、このスレを放置して、新スレ立てればいいだけの話では?
書き込めば寿命延びるし。
>>51-54
通報しますた
>>57
このスレがすでに通報されてるがな。
スレを立てる練習をするスレはここですか?
糞スレは






























                                                                      放置
次スレage
ここ、今夜にはきそうだね
死にそうな予感
なんか上手く書き込めなくない?
次スレこれでいいよ。
移動してきますた
>>62
アタリ!
たのむから誰かchar *c[43] = {"C言語相談室"};で立ててくれ・・・
68デフォルトの名無しさん:02/11/14 22:26
激しく死にそうな予感
>>67
嫌。糞はお前だ氏ね。
>>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
>>77
あきらかにおまえがキモイ。
プ>>79
>>80
明らかにおまえがプ
なんでタイトルが「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);
}
>>1がDQNのせい
85デフォルトの名無しさん:02/11/14 22:34
ファイルを開く関数を教えてください!!!!!!!!!
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。
誰かちゃんとしたスレ立ててくれ。
>>85
calloc
オレが立ててくる
スレタイはどうする?
charでいいのか?


         C ス レ 終 わ っ た な



ワラ
>>89
char *c[43] = {"C言語のことは俺に聞け"};
>>89
いいけど、俺に聞けはダメ。C言語相談室で
俺に聞け厨必死だな
相談室だけはやめてくれ。
つーかスレの内容に合わないだろ。
96デフォルトの名無しさん:02/11/14 22:44
>>87
ちゃんとしたタイトルでたっているじゃないか
http://pc3.2ch.net/test/read.cgi/tech/1037279828/
相談室はダメ
>>96
ネタはもういい
俺 に 聞 け 厨 必 ss
100デフォルトの名無しさん:02/11/14 22:47
ひとつ質問させてください。
今まで文字列のコピーには、
strncpyで受け側バッファのサイズ-1をコピーして、
その後memsetで受け側バッファの最後に'\0'を入れてたのですが、
最近上司から、それだと遅いらしいから止めろと言われました。

実際この方法は(他よりも)遅いのでしょうか?
遅いとしたら、もっと速い方法ってあるのでしょうか?
処理系にもよるとは思いますが、大体の傾向でかまいませんので教えてください。
お願いします。
>>100
>>その後memsetで受け側バッファの最後に'\0'を入れてたのですが、
何故だ?

>>最近上司から、それだと遅いらしいから止めろと言われました。
らしいから、ってなんだよ?

部下も部下なら上司も上司だな(w
>>100
strlen + memcpy したら。
>>100
> 受け側バッファの最後に'\0'を入れてた

strncpy() にはもともとそういう機能がある。
マニュアルちゃんと読め。
106ボビー:02/11/14 22:57
本家スレです。過去の伝統にのっとっているうちこそが本家です。

http://pc3.2ch.net/test/read.cgi/tech/1037279828/
>>102 >>104

NULL止めしねぇろ?


>>103

strcpyの予感。


>>100

バッファのサイズに比べコピー対象文字列が十分短い場合ムダに'\0'を埋め続ける。
strncpy は最後に\0入れる?
n文字以上だったら入れないように思えるんだけど。
n文字以下だったら残りを\0で埋めるんじゃないの?
109107:02/11/14 23:00
失礼。

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;
}
糞スレは






























                                                落ちろ
糞スレは





























                                                              落ちろ
荒らしている奴は氏ね
116ボビー:02/11/14 23:08
>>100
全体の処理が遅くなるほどに使いまくっているのか。
本当にその部分に処理速度が必要なのかをまず考えろ。

>>103
str系の関数を使ってもstrlen + memcpy使っても性能はかわらん。
117デフォルトの名無しさん:02/11/14 23:08
弱気な部下と無能な上司をさらに超える二人の馬鹿がいるスレはここですか?
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。
>>1の自作自演です。
120ボビー:02/11/14 23:10
アーッヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャ!!
121デフォルトの名無しさん:02/11/14 23:11
相互リンク
char *c[43] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037281411/

C言語質問所 <43>
http://pc3.2ch.net/test/read.cgi/tech/1037134356/
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。
なんでmemset?
memsetって全部埋めてしまうやつだよ。
クソすれ





























                                                          ウザイ
           ☆ シャットダウン中・・・ ☆
┌──────────────────────―─┐
│                                    |
│                                    |
│                /■\                    |
│               (´∀`∩)                   |
│               (つ  丿                |
│                ( ヽノ                    |
│                し(_)                |
│                                    |
│             Now Onigiring. ...               |
│                                    |
│                                    |
│         スレッドを終了しています。.          |
│         しばらくおにぎりでお待ちください。        |
│                                    |
└───────────────────────―┘
    シャットダウンの途中でエラーが発生した場合は、
      「無視(I)」 を選択して続行してください。



      「無視(I)」 を選択して続行してください。
126ボビー:02/11/14 23:20
>>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'で十分なのだが・・・。
131ボビー:02/11/14 23:26
うんこー
132ボビー:02/11/14 23:28
うんこー
流れないよ〜!!
134ボビー:02/11/14 23:34
>>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文字はそのまま〜みたいな使い道と思ってた。
142ボビー:02/11/14 23:40
>>135
わりー

>>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);か?
>>141
memcpy使え。
これで我慢しとけ。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型強制と返り値だけ?
>>152
ヌル文字のチェックを忘れてるの〜
>>150
読みづれー。
\0後の動作が違う。
>>154
おいおい、あれぐらい頑張って読めよ
>>153
忘れてるんじゃない。俺はしない派。
文字列の場合はmemcpyだろうがstrncpyだろうが効果は同じだよね。
あくまでも文字列として扱う場合ね。
159152:02/11/14 23:53
>>153

そうか……俺的に諸悪の根源のあの動作か。
サンクス。
>>156
頑張らないといけないなんて、やっぱり読みづれー。
>>158
「あくまでも文字列として」の意味がわからんよ。
後ろをゼロで埋めるところが違う。
162デフォルトの名無しさん:02/11/14 23:56
>>156
翻訳お願いします。
>>161
文字列として扱う場合は\0以降は見ないだろ。
164163:02/11/14 23:57
というわけでmemcpyは文字列以外の配列のコピーにしか使わない。
正直 >150 の仕様が一番使いやすそうだよなぁ、やっぱ。
>>164
お前だけはな。
何?150のどこが読みづらいの?

>>164
それはどうかと思う
168163:02/11/15 00:00
見ないってのはプログラマが見ないという意味だよ
あれが読みづらいと言ってるヤツは初心者。
約1名しかいないようだが。
これで我慢しとけ。Win32のlstrcpynと同じ仕様だ。
char *strcpyn(char *str1, const char *str2, size_t count)
{
*str1 = '\0';
return strncat(str1, str2, count);
}
>>170

全然違うし。
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))
175170:02/11/15 00:10
あ。
strncat() ってバッファが足りない場合は strncpy() と同じく終端 '\0'
付けてくれないのね。
ごめそ。
>>173
> if (count <= 0)
ダサ。
size_tがunsignedであることって保証されてたっけ?
でないと引数がマイナスで来る可能性もあるよね。
「サイズ」がマイナスだと困るな
>>176
だから自分のスタイルと違うのを馬鹿にするなって。
>>177
保証されてるよ。
ここでも時間の逆流が起こってるな>>178>>179
182177:02/11/15 00:17
>>180
サンクス。
ってなると >>173 で if (count <= 0) ってやってるのはダサいことになるかな。
>>179
全然スタイルの話じゃないだろ。
一回しかクリックしてないのに二重カキコって言われる・・・。
>>181
いま吉良さまが戦っている。

>>184
キングクリムゾンの能力で1度目押したことを認識しなかったのだよ。キミは。
if (!count) か?
>>184
テキストの末尾に、適当に全角スペースとか加えてみろ。
>>182
いや、おまえのように自信のない奴はつけておいた方が確実。
>>178 >>179
プ) 
>>187
いや、それがだね。エラーといわれたのにちゃんと書き込まれているのだよ。
countがunsignedのときコンパイラによっては
if (count <= 0)
と書くと警告出す場合も
>>182
いや、おまえのように自信のない奴はsize_tで定義しない方が確実。
>>182
いや、おまえのように自身のない奴は包茎手術した方が確実
>>193
俺はズル剥けだっつの
>>194
バカ、お前の毛髪の話じゃないっつの
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〜!!!
。   ∧_∧。゚
 ゚  (゚ ´Д`゚ )っ゚
  (つ   /  アァァァァ
    |  (⌒)
   し⌒^
いいじゃん包茎でも。おまえらに迷惑かけたか?
>>209
チンカス臭いから迷惑
しかし、事実上スレが分かれたが、別に悪い事ではないな。
あっちは論争&質問スレ、こっちは包茎&ズル剥けスレ。
一応はっとこう。質問は↓へ。

char *c[43] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037281411/l50
214デフォルトの名無しさん:02/11/15 01:56
>>212
お前あっちの>>1だろ。まだいたのかしつこいな。
>>214
違いますが。あなたバカな人ですよね?
>>215
違いますが。あなたがバカな人です。
>>215-216
お前ら誰だ?
218あっちの1:02/11/15 02:19
オレがあっちの1だよ。マジで。
どうでもいいけどこのスレ邪魔だ。削除依頼だしとけ。
>>218
あんた誰?
>>219
つーかおまえ誰よ?
221デフォルトの名無しさん:02/11/15 02:20
>>218
だからお前誰だって。勝手に1なのるんじゃねーよ。
>>221
マジだよおまえ!
ほんとだから!
荒れてまつね
>>220
お前はオレだ!!
俺があいつであいつが俺で?!
荒らす奴がいなければこのスレも平和でいられたのに。
>>226
んなわけねーだろ。立った時点で糞スレだ。
別に極フツーのスレだと思うけどなぁ。
ここの>>1は単にスレが立てたかっただけなんだよ。
それが証拠に前スレがだいぶ残ってる時に、>>1がいきなりここを立てやがった。
それならそれでほっぽいて後から使えばよかっただけじゃ。
そんな>>1の行動を肯定するようなことはできん。そもそもスレタイにセンスがない。
所詮糞が立てたらこんな糞スレになる
ここで 1 を許したら、乱立厨を許す事になるぞ。
235デフォルトの名無しさん:02/11/15 20:00
>>1
ふざけるな!
\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]);
243242:02/11/16 03:04
ああ、int iだって
unsigned int iだよ
鬱だ逝ってきます
>>238-243
みなさん新雪でつね!
printf("%x", i);
24616to10:02/11/16 09:23
#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");
はどういう意味ですか?なんの意味があるのか分からないので教えてください。
お願いします。
改行じゃねえの?
>>247
\n の意味を調べれ。
しかし入門本って何で printf() から教えたがるんだろう。
まず putchar()、次に puts()、その次に初めて printf() だろうに。
>>250

本当に動いてる〜ってことが分からんとツマランからだろう。
\nは改行って知ってるのですが、
言葉が無いのに\nだけ入れても意味無いなー
と思い書きました。

さっきprintf("\n");抜きでコンパイル、実行したら
意味がわかりました。
すいませんでした。
253デフォルトの名無しさん:02/11/16 16:46
ファイルのサイズってどう所得したら良いですか?
>>251
putchar() で、それに不足するか?
>>253
C FAQ を嫁にしろ。
「どうすれば読む前にファイルの大きさを知ることができるか」
http://www.catnet.ne.jp/kouno/c_faq/c19.html#12
>>254
一文字だけだと味気ないじゃん。
putsは\nが必要無いのが教育的じゃない。
あら、putsは改行はしないんだっけ?
>>255
サンクスできたよ
>>256
puts() は改行するよ。
まあ、言いたい事は分かるけど、247 のように何でもかんでも printf() を
使って回るのは、漏れが気に食わないというだけの話。
つーか改行コード直接打て。
261デフォルトの名無しさん:02/11/16 17:35
1ビットの型の使い方教えてください
>>261
残念ですが 「1 ビットの型」 は C には存在しないので、教える事ができません。
>>260
printf("
");

は文法エラーになりますが何か?
>>262
やっぱりそうなの。なんか考えます
>>264
1 ビットの型であるかのように扱う事ができる方法はあります。
「ビットフィールド」 で Web を検索して下さい。
>>265
ありがとうございます
267デフォルトの名無しさん:02/11/16 18:16
c言語を覚えるために
入門書を読まないで使える
ようになった人はいるんですか?
268261:02/11/16 18:21
>>265
一通り見てみてちょっと思ったんですが、
ビットフィールドで1ビット単位のファイルの読み書きは出来ますか
>>268
それはできないです。
fgetc() で 1 文字ずつ読んで、ビット演算かビットフィールドで 1 ビットずつ
にばらして使うしかありません。
>>267
時にはいるかも知れないけど、まずいないと思う。
いたとしたらそれは天才か、本を買う金がなくて仕方なくマニュアルだけで
頑張っている人か、本の代わりに Web ページを参考にしている人か、何も
考えていない教えてクンくらいだと思うし。
271270:02/11/16 18:58
他の言語でプログラミングに慣れてて、マニュアルだけで充分な情報が得られる
人というのもあるな。
272デフォルトの名無しさん:02/11/16 19:33
267です。入門書を見ながら
c言語独学中なんですけど、Webページ
のサンプルコードは難しい自信が無くなる
皆さんはどいう覚えかたしたんですか?
後、1つの言語を覚えている途中で
他の言語を同時進行で憶えるのはよくないと聞いたんですが
どうしてですか?
>>263
gcc-2.96だと無事コンパイル実行ができたけど、環境はなに?
漏れみたいにstr:="abc";なんて中途半端なボケをかますことになるから
>>272
http://www.geocities.co.jp/SiliconValley/5634/t82BD_0002.html#849 「体得」

> 他の言語を同時進行で憶えるのはよくないと
単に混乱するから。
言語それぞれの考え方や手法があるが、一般にそれはまぜこぜにしてはいけない。
276age&rlo;ega:02/11/16 19:49
>>272
>他の言語を同時進行で憶えるのはよくないと聞いたんですが
どうしてですか?

おいおい、おまえはバカか?
277age&rlo;ega:02/11/16 19:50
>>272
>他の言語を同時進行で憶えるのはよくないと聞いたんですが
どうしてですか?

おいおい、おまえはバカか?
278age&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
>>284
Sunのコンパイラも。
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すりゃいいじゃん
>>291
atoi,strtol
294293:02/11/17 12:34
もとが16進文字列じゃatoiはつかえねーか
strtol使え
>>288

標準ライブラリの strtol で 16進文字列 -> 整数 の変換が出来る。
詳しくはコンパイラのマニュアル参照。
>>292
そ、そですね
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>
301ちーん:02/11/18 10:52
質問なんですけど
個人的に、毎日の細かいデータを集計してグラフなどにしたいんです
項目は、一時間分20個位でそれを24時間数年分です。

で、できればネットでそのデータを共有したいんです。

こういう場合はC言語でOKなんでしょうか?
学生の頃Cとベーシックは確か学んだ記憶があるんでなるべく簡単に
始められる言語を使いたいんです。

どなたか、ご教授くださいお願いします
ちーん (−人−)

>>301
Excel 使いなさい。
303ちーん:02/11/18 11:12
>>302
言われると思ったです
というか、その答えが一番適切だと思う

でも、個人的にExcal持ってないです
それに、もっと高度な事がやりたい気分なんですよ
>>301
「グラフ」 「ネット」
この時点で C 標準ではダメだ。
環境に依存したライブラリを使う事になるから、開発環境のスレに逝ってくれ。
ゆーても仕様がはっきりしないから、それでも有効な回答が得られるかどうかは知らん。
ちなみに、なるべく簡単にと言うなら VB とかの方が楽だとだけ言っておこう。

>>303
気分と言われても、何やりたいのか結局わからない。
Perlがよさそうだ
>>304
>>305
ありがとう
今日、帰りにエクセル買います(ワライ
>>306
言っておくが、Excel VBA でもかなり高度な事ができるぞ。
何をやりたいのか知らないけど。
>304
そーかー?
pngとかhtmlとか出力させて、見るのはブラウザ、って
ことにすれば、生なCでも大丈夫なんでネーノ。
>>308
グラフについてはそれでも OK かもな。
でも、グラフではなくデータを共有したいと言っているぞ。
nfs でも使えばいいのか。
310ちーん:02/11/18 13:44
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進でも計算できればいいのですが・・
>>312
先に数値と数字の違いを勉強してこい。
314Name_Not_Found:02/11/18 17:48
でもbmpファイルだな。
隣り合うピクセル値の差を取りたいのか?
>>313
申し訳ない。

>>314
そうです目的はBMPの隣同士のピクセル値(RGB)の差です。
>>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
>>322
ムチャするな
326デフォルトの名無しさん:02/11/18 22:07
ちょっと質問なんですけどディレクトリ操作(mkdir等)やディレクトリのファイルの一覧の
入手の仕方(Opendir等)はunixの環境ではwebで調べて分かったんですが、
VC++の環境で(言語はC)同じようなことするにはどんな関数を使えば良いのですか?
VC++ってdirent.hやunistd.hなんかのヘッダーファイルありませんよね。
まだよく分かりませんがヘッダーファイル作るしかないのでしょうか?
#include <winbase.h>

FindFirstFile() & FindNextFile()
328326:02/11/18 22:34
>>327
ありがとうございます。
あとはがんばってやってみます。
ファイルポインタを1行だけ戻す方法はありますか?
もしくはファイルを最終行から上に向かって読む方法はありますか?
その前の行の長さが分かってればできる。

ただし、世の中にはファイルイメージと読み込み後のデータでは長さが違うと
いうプラットフォームが存在するので注意。

より汎用的な方法としては、ブロック単位などでseekして末尾から改行を探す。
331初心者:02/11/19 00:23
引数なしのメイン関数の正しい書法が分かりません。
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初心者:02/11/19 07:35
>>334
なぜでしょう?
>>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 なら検索エンジンで見つかるのですが・・・)
>>340
cdeclって何?
>>341
環境とか判定したいコードとか書けや。
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タイプだと、呼ばれた側がスタックをクリアするので、呼ばれた側
が何個の引数が渡されたか把握してないといけない。
>>341
(1) 元になる文字コードは何ですか?
(2) ありますよ。 ttp://www.google.com/
に、"UNICODE JIS 文字コード 変換 テーブル" とでも入力してGO!
PerlでかかれててもCに変換等すればいいですよね?
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 *でもマルチバイト文字列を使えばできるのでは。
>>347
ハァ?

>>346
当然非標準だが、MicrosoftのCライブラリには判定用の関数あるよ
http://www.microsoft.com/JAPAN/developer/library/vccore/_crt__ismbb_routines.htm
_ismbbkana、_ismbblead、_ismbbtrail
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
試してみれば?
>>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); なんて書き方はできません。
366363:02/11/19 17:29
>>365
あ、その通りですね、とんでもない勘違いをしてました(汗 有難う御座います。
>>364
スミマセン、出直してきます。
367デフォルトの名無しさん:02/11/19 19:44
文字列の浮動小数点数をdouble型へ読みこませたいんですが、
文字列"3.3"
とかの場合、小数部をどう処理すればいいんでしょうか。
整数部と少数部をドットで区切って読んでおいて、

整数部 + 少数部 / 10の(小数部の桁)乗
3   +  3 / 10.0 (この場合1桁なので)
→3.3

除算してるのが不安なんですが、これでいいんでしょうか。
s は定数じゃなくて左辺値。
>>367
> 文字列の浮動小数点数をdouble型へ読みこませたいんですが、
sscanfという関数を小一時間しらべてみろ
>>369
strtodをすすめろ
>>368
左辺値だったら代入可能でない?
>>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
>>374
"%lf"・・・・・・・
マニュアルをよく読みましょう
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);
で出力できるが、おそらく君の期待した方法ではないだろう

おそらく君の期待していることは「デバッガ」という検索キーワードで
解決できるかもしれない。
>>379
マクロで組むとか。
383デフォルトの名無しさん:02/11/20 07:58
 
島谷タソに強引に迫られてみたい…ハァハァ(´Д`;)

島谷「あのね、今日実はお願いがあるんだ…うふふ…」
漏れ「えっ何?言ってみてよ、ひとぴょん」
島谷「私も男の子がオシッコしてるとこ見てみたいなぁ〜…な〜んてねっ♪クスッ」
漏れ「えっ!?も、漏れの!?」
島谷「ねぇいいでしょ?私オチンチンの先からオシッコ出てるの見ると、何だか『可愛い〜』って思っちゃうの…♪」
漏れ「うん…じゃぁいいよ、ひとぴょん」

ジョボボボ…

島谷「立ってオシッコするのって、何か不思議だね…私、ずっと見てても全然飽きないの…」
漏れ「えっ別に普通だよ…ねぇ、ど、どこ持ってるの?ひとぴょん」
島谷「ここ持ってると、オシッコ通ってるのが物凄くよく分かるね…うふふ…」
漏れ「やめてよひとぴょん…恥ずかしいよ…」

(省略されました・・全てを読むにはここを押してください)
385デフォルトの名無しさん:02/11/20 11:56
コンパイラやハードに依存する部分ができるだけ少ない
ソースを書きたいんですが、ANSI C準拠でも油断が出来ないという話を
聞きます。具体的に何を使うとまずい、というのはあるのでしょうか?
386デフォルトの名無しさん:02/11/20 11:59
>>385
そう言った人に聞くのが手っ取り早いんじゃ?
>>385
>>1 に書かれてるリンクは見ました?
それでも不満ですか?
リターンが未定義とか、intの大きさとか?
ちゃんと使えばANSI Cで定義された通りに動きますよ。
コンパイラは人間の意図した通りにうごきません。
仕様にそって、書かれたCのソースに沿った事にしたがって動きます。
389デフォルトの名無しさん:02/11/20 12:21
>>385
peek()なりpoke()なり使うとよろし
なつかしいな
>>384
こぴぺを否定するつもりはない(2ちゃんねるの文化?なので)が、前後の文脈に
合わせてローカライズ(カスタマイズ)するぐらいの努力はしてほしい。
391385:02/11/20 12:26
聞いたというよりはどこかで読んだということなので確かめようがないですが、
マクロや複雑なコードでコンパイラの挙動が異なりうるとか聞いたもので。
携帯からなんでまだ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コンパイラも存在する
例を挙げただけですが何か?
396Warez: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修飾型の(再帰的に包含されているすべての構造体又は共用体の任意のメンバを含む。)メン
バをもたないものとする。
(以下略

より正確に言うと「配列は代入可能な左辺値ではない」かな
402401:02/11/20 15:41

×:「配列は代入可能な左辺値ではない」
○:「配列は変更可能な左辺値ではない」
403400:02/11/20 16:01
401-402 乙
404弁士:02/11/20 16:08
画像処理をしているのですが、JPEGのプログラムを打ちたいのですが、全然わかりません。
JPEGの圧縮プログラムを知っている方がいられるのであれば、教えてください。
>>401
C言語って楽しそうでつね。
言語を使うために言語を使っている感じで。
>>405
> 言語を使うために言語を使っている感じ
自国語も満足に使いこなせない奴にはそう見えるんだろうな
プログラム言語を使いこなすためにはその言語の規格書を読む必要がある
CだろうがJavaだろうがPerlだろうが同じことだ
>>404
えー、”JPEG ライブラリ”で検索すればひっかかりましたよ。
言語やOSは何でしょうか?
http://siisise.net/jpeg.html
とりあえず。
画像のおすすめはPNG☆
410デフォルトの名無しさん:02/11/20 16:36
マルチ歓迎のやさしい住人がおられるスレはここですか
411408:02/11/20 16:41
>>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
仕様です

http://www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html
フィールド幅の最後のあたり
>  もし変換結果がフィールド幅よりも広かった場合、
>  フィールドは変換結果が入るように拡張される。
>>412
%5dは「5桁で」ではなく「最低でも5桁で」だから。
文字に変換して、文字列処理すれば何行と出すのは簡単
#ほかにいいやりかたあるかな
>>416
> 何行
何桁の間違いか?
桁数ならlog10()で一発で出せますが何か?
>>412

scanfで%7dって初めてみた・・・
どういう効果?
419412:02/11/20 17:11
>>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);
の結果が分かっていない厨なだけ。
422418:02/11/20 17:14
ああなるほど。
7文字目までしか見ないのか。
12345678と入力すると1234567になるのか。
>>417
こいつ馬鹿だな
424デフォルトの名無しさん:02/11/20 17:20
pruntfか
馬鹿が逆切れしてるスレってここですか?
読解力のないやつが逆切れしているスレってここですか?
馬鹿の上に粘着きわまりないどうしようもない厨房がいるスレってここですか?
−−−− いつもの煽りあいがはじまりました −−−−
一般市民は以下の場所に避難して下さい
http://pc3.2ch.net/test/read.cgi/tech/1037281411
>>412をのどこに桁数を得る方法を教えろとかかれている。
7桁になっているものを5桁で表示したいということだろ。
>>417
1 発じゃ出ないだろ。


と言ってみるテスト
>>429
412 は、「どうなるか」 を訊いているだけで、「どうしたいか」 は全然書かれてない
と思うんだがどうよ?
>>431
ここはいつから国語のスレになったんだ…
ところで、>>416はどこいった?
>>429
> 7桁になっているものを5桁で表示したいということだろ。
そんなことは書いてありませんが、君の脳内妄想ですか?
433 必死だな
436429:02/11/20 17:42
>>434
確かにどうなるかということ聞いているが、文脈からわかるだろ・・・
>>1が立てたスレは糞スレになる法則
>>1に責任転嫁
>>437
それは Part1 から既にそうだ。
>>439
馬鹿必死だなw
素直に負けを認めろ
441439:02/11/20 17:48
>>440
あなたとは、はなから勝負してませんが何か?
要約:
>>412の予想は「5桁になる」
実際には「7桁になる」

問 6行目のprintfで指定した5は無視されるのか?
>>417
整数の桁計算をdoubleでやるとコスト高くねえか?


と言ってみるテスト
>>439=>>416
必死だな
>>436
文脈からするとprintfの仕様を聞きたいだけみたいだし、
事実>>419で納得している

チミが勝手に脳内妄想をしたのをさっさと認めて粘着逆切れを止めろ
446439:02/11/20 17:50
漏れは本当に 416 でないんだが、何でそう思われたんだ?                          ・・・ま、いっか。
>>443
文字列に変換して長さを測るよりはずっと速いし軽いぞ。
4桁の2進数を文字列として標準入寮から入力し、
これを10進数へ変換して表示するプログラムを作成せよ。

無知な私を助けてください。
449416:02/11/20 17:53
よけいな茶々いれるからだ。
>>443
int i = 12345;
while(i /= 10)
  ;
桁数を求めるだけならこれが最速かな?
また来たよ・・・(;´Д`)

http://pc3.2ch.net/test/read.cgi/tech/1036572120/381
>>450
・・・本気ですか?
>>451
くーるーきっとくるー
>>448
>>1 をご覧下さい。
煽りの最中に宿題教えて君かよ、それに答える奴もおめでてーな
>>455
それに答えるやつって>>451のことか?
まちがえた
int i, n = 12345;
for( i = 0; n /= 10; i++)
  ;
# 0の場合は0桁になるのは仕様です
>>457
430 が示した式には、そんなクソな仕様はありませんが何か?
第一それ、全然速くないだろう。
430の式ってなんだろう・・・
430の式:
(size_t)log10(n) + 1
>>459
もっとくまなく探せ。
お前それで、ちいさなメダル全部集めたとか言わないよな?
攻略本見たクチか?
463458:02/11/20 18:28
んー、待てよ。
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

ダタ
>>473
マジ?
gcc 何でそんなに遅いの?
つーか、gcc 2.95.1 とか MinGW gcc 2.95.2 とかは、やっぱり割り算の方が
倍以上かかってるが。
gcc 3.2 は一体何があったの?
ちょうどいい機会だったので BCC55 インストールした。
やっぱり割り算の方が倍近くかかってる。
>>468
必死の時とそうでない時があり、そうでない時の方が多いですが何か?
 必 至 だ な 
>>479
必至ではありませんが何か?
 ま す ま す 必 至 だ な
482473:02/11/20 19:52
訂正
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 じゃなくて?
484473:02/11/20 20:01
>>483
> SIGN じゃなくて?
違う。Cygwinの出力結果をコピペしたんでタイプミスは無い
ん、Cygwinでやってんのが悪いのか?DOS窓でやってみるか...
rand() * rand() が 0 を生成する事があり、BCC ランタイムはそれを親切に
報告してくれてるのだろう。

しかし、BCC 5.5.1 だけど漏れと随分結果違うな。
CPU は何? こっち PentiumIII-800。
1706
2846
>>481
ますます必至ではありませんが何か?
単に実行時に0になっただけというオチに一票
488485:02/11/20 20:09
ああ、ちなみに log10(r + 1) でやった。
パフォーマンステストに Cygwin を使うか・・・(;´Д`)
r = (rand() * rand()) + 1;//適当だな
まあ好みの問題だが、randを括弧で括る必要は無いと思う。
あ、計算の優先順位気にするのがきらいなもので、括弧はつける習慣なのですY0
いずれにせよ、最適化されれば488と490に違いは無い。
rが別の場所で使われてれば別だが。
494473:02/11/20 20:26
> r = (rand() * rand()) + 1;//適当だな
こいつに修正
gcc -O無し -O有り
3164    3174
3415    3235
bcc55
1642    1642
2764    2764
うーむ、gccは遅いのか?
> CPU は何? こっち PentiumIII-800。
同じ、メモリは128M、OSはWin2000SP2
495473:02/11/20 20:36
あとvolatileをはずした結果
gcc -O無し -O有り
3174    2453
1472    1262
bcc55
1041    1052
2784    2794
なのでgccでvolatileを使わないと>>457の方が速い
bcc55の場合、log10の方が速い
VC++? それは持ってる奴がやってくれ
アセンブラソース出してみないとわからんけど、
GCCがちゃんとvolateilを効かせているという証明かな
497473:02/11/20 20:43
だいたい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"); とかにはなったりするだろうか?
新スレ立ってたりして

char *c[44] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037796472/
>>505
それはこのスレの新スレじゃないんだよな。
どっかで合流した方がいいだろうけど。
深く考えるな
スタンスが違ってるとおもうんだけどな、こちらとあちら。
そうかな。
どうせ見てる人間一緒だろ。
1 のテンプレもほとんど変わらんし。

テンプレと言えば、「質問は通じる日本語で書いてくれ」 というのを追加して欲しいな。
違うと思ってるのはここの>>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
修行が足りません。
文末の 「何か」 には必ずクエスチョンマークをつけてください。
クエスチョンマークをつけると煽り厨丸出しでかっこ悪いと思います
そう思うのは修行が足りない証拠です。
>>517
どっちにしろ変わり無いだろ。
520513:02/11/21 19:52
マジボケですた。すいません。逝ってきます。
「何か?」→「文句ある?」と言いたげで相手の態度を伺うようでガキっぽい。
「何か。」→「文句など言わせねぇ。」と言いたげで不動の信念を持ち合わせているようで漢ぽい。

よって「何か。」の勝ち。
そんなあなたがガキっぽい。
たしかに?をつけるとバカっぽいな。
そんなこと気にしてるやつが一番バカっぽいですが何か?
?が全角だからだめなんです。?を使いましょう。
漢なら「!?」ですが何か!?
今は「伺か」じゃないのでしょうか
というかお前ら全員ガキだな。
オレもその中の一人だけどね。
一番大人なやつは、このあふぉレスを見て、
「ガキだな」と一掃し、ほかのサイトに飛んだ香具師
>>528
わざわざそんな下らんことをageてまで言うお前が一番ガキであることは確かですが何か?
>>529
sageてる分を差し引いても、お前の方が下らない事は猿でも分かりますが何か?
他人を「ガキ」と言って傷つけているつもりになっている奴はガキ
大人はな「ガキ」と言われるよりも、
「 お や じ 」 と 呼 ば れ た ほ う が 傷 つ く ん だ。

良く覚えておけ。糞餓鬼共
>>531
はいはいおやじは士んでね?
>>530
必 死 だ な ( プ ー
このスレっていったい・・・
Cスレじゃないのかよ!
晒しage
>>534
スレ違いです
Cスレはこっち
http://pc3.2ch.net/test/read.cgi/tech/1037796472/
>>534
> Cスレじゃないのかよ!
今はcore dumpしてるだけです。
Cでは良くあることです。
ガベージコレクションしているのかもしれない
>>537
(゚Д゚)ハァ?
メモリリークしてるのは>>537の脳味噌だと判明しますた
core dumpとかガベージコレクションとかCと関係ない話すんなよ
固いこというな。ここはCスレのお面をかぶった糞スレだぞ。
core dump はギリギリ関係あるだろ
>>529
この期に及んでまだ「何か?」を使ってるおまえ。かっこ悪いグランプリだな。
>>542
はぁ? Windowsでどうやってcore dumpすんだよ。
>>543
いつまで引っぱるつもりだよ......グランプリとか言っちゃってるし。もー見てらんない。

>>544
なぜにWindows?
>>545
ほんと、グランプリとか言って馬鹿みたいだな。
むしろかっこわるいチャンピオンだよな。
かっこ(全米No.1)悪い
(悪い)
>>545
かっこ悪代官様だよな
>>544
> はぁ? Windowsでどうやってcore dumpすんだよ。
gccだと*.stackdumpというファイルが吐かれて、画面上に
「Segmentation fault (core dumped)」
出力しますが何か?
いつからガベージコレクションが C 関係無いことになったんだよ・・・。
>>550
だから環境依存だろ。
このスレが C に関係あるかどうかは未定義ですが何か!!
「だから」と言う割に>>544が的外れな罠
罠かどうかは環境依存
環境依存かどうかは未定義
未定義かどうかは不定
ここは FORTRAN を語るスレになりますた。
FORTRAN は超糞言語
560デフォルトの名無しさん:02/11/21 22:54
561Warez: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
>>564
VC.netでMFCを使ったとか
566デフォルトの名無しさん:02/11/22 00:41
>>565
VC ver6です。
567デフォルトの名無しさん:02/11/22 00:51
>>565
ちなみにFMCは使ってないです。
>>564
何かはわからんが99.9%君の作り方がおかしいから安心しろ。
その2000のマシンでデバッグするか開発したマシンに2000インストールしてデバッグしろ。
>>568
みもふたもありませんな。w
>>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 ANSI
>>578
> PGごとに終了コードでどんなエラーが起きたか知らせるのは普通だとおもうんだけど。
ログは出さないのか?
終了コードは正常、異常、警告くらいでいいんじゃないか?
98パターンも終了コードを出されても...
>>580
禿同
>>574
マルチポスト氏ね
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
ど初心者の質問をパースできない専門バカはすっこんでろ
590588:02/11/22 17:52
一桁までしか表示しないのか・・・じゃあだめか。
>>587
あんたの日本語をCに直訳してみそ
>>587
具体的にどこで詰まってるんだ?
割り切れるかどうかの判定方法がわからない?
表示方法がわからない?
>>587
printf("%g\n",x/y);
>>593
xが2、yが8の場合、うまくゆく?
595594:02/11/22 17:58
2じゃなくて2.0
8じゃなくて8.0
596587:02/11/22 17:58
>>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);
600596:02/11/22 18:26
>>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のままやるよ。

>>603
そうか、ありがとう。
その場合はそのままの方が速いのかな。

ところで、
http://pc3.2ch.net/test/read.cgi/tech/1036572120/435-
これよりももっとエレガントで DQN な回答はある?
しまった、"出力例" を出力していないぞ。
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
>>608
(゜Д゜)ポカーン…
610Warez:02/11/22 23:17
>607
問題が分からん・・.なぞなぞですか?
>>607
日本語の勉強を先にしてくれ。
>>607
半島に(・∀・)カエレ!!
覆面算だと思われ。
>>603
しないよ。

floatのまま計算したらdoubleで演算した結果と異なる場合があるから、
doubleと精度が一緒じゃない限りdoubleで演算することはできない。
>>609-612多少パズルと齧った事がある奴は見た事あるだろ。アホ過ぎ(嘲藁
>>615
お前は電波受信良杉(藁
漏れも式があと半キャラでもずれてたら何書いてるかわからんかった
>>615
ネタにマジレスしてるお前が一番アホ。
>>614
違う。必ずdoubleにしてたのはK&Rの時代の話だ。
今は演算子の両方のオペランドがfloatなら、型変換は起きない。
(ISO/IEC 9899:1999, 6.3.1.8)
620デフォルトの名無しさん:02/11/23 03:05
614 と 618 が、それぞれポインタの先の何を否定してるのかいまいちわからない。
622618=603:02/11/23 04:52
>>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標準でできない事の質問は使ってる開発環境のスレに行ってください。
632通りすがり:02/11/23 08:48
>>630
それは大丈夫。引数は元スレッドのスタックを指しているから。
ただ新しいスレッドがstrの参照を完了するまで元スレッドは
スタックの内容を解放してはいけない。だから
MyCreateThread()の_beginthreadの後に同期を入れること。
そうしないとSMPでバグると思われ。
633デフォルトの名無しさん:02/11/23 09:45
>>632
嘘教えるなよ。だめだめじゃん
>>632
つまり、スレッドが終了するまでMyCreateThread()から
抜けられないって事だな・・。
バッカじゃねーの。
635633:02/11/23 10:25
>>632 , 634
そういう問題じゃないだろ。
スタックをどうやって同期とるってんだ。
630の書き方だと、ThreadProcをただの関数にするかメモリを動的に確保してスレッドに渡して、スレッド側で開放するようにしてもらう以外ないだろう。
staticにしといてもいいけど、MyCreateThreadを連続して呼べば問題が起こる可能性がある。
>>633=635
どうでもいいが、暑いよ
スレッド技法をよく知らないなら、もう少し勉強しておいで(ワラ
>>634
>つまり、スレッドが終了するまでMyCreateThread()から
>抜けられないって事だな・・。

ちがう。君もよく勉強してからつっこめよ・・。
638よんだ?:02/11/23 11:48
( ´,_ゝ`)プッ
639デフォルトの名無しさん:02/11/23 11:52
おまえらバカじゃないのか?ほんと自分は出来る風ですか?
ほんとにバカ、オメーラ、みんな、ネット荒らしとどこが違うんだ!?
ほんとな、おまえらはみんな、ここに来る資格ねーな!!
デフォルトの名無しさんだっけ!!おまえしね!!人が頼んでるってのに何が
あやしいっておまえみたいのがいるから日本がだめになるんだ!!
分かったバーカ!!もう荒らしでも何でもいいよ!!
オメーラみたいなバカどもにつき合ってもしかたないから!!
あんたらみたいのはもうこのよにもいらない !!
 
640デフォルトの名無しさん:02/11/23 11:59
そもそも>>1を守らないやつに答えるのが間違い。
まあ未定義だから答えてもいいんだろうが。
641633:02/11/23 12:07
>>636
どこが間違えているか具体的にいいなよ。
642デフォルトの名無しさん:02/11/23 12:13
ヤッタァァァァァァァァァァァァァァァァァァァァ
初めて2をゲットしたぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ!!
うひゃひゃひゃひゃひゃひゃひゃひゃひゃひゃひゃ。
ウレシイなあァァァァァァァァァァァァァァアアアアア!!!!
>>641
なんか悔しかったから適当に反論したかっただけでしょ、>>636 は。
>>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を返すような関数が有りましたら教えて下さい。

無い場合はどうしたらいいのかをおしえてください 。
649manko_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;
}
651650だが:02/11/23 18:24
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;
}
}
660654 :02/11/23 21:05
>>658-659
がメインな部分であります。
661654 :02/11/23 21:06
すみません、エラー内容をはるのをわすれました。
コピペの時にちょっといじったので、行数と一致していません。
(本文が長すぎるとか、改行多すぎるとかいわれたので)

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.)
662654 :02/11/23 21:07
すみません、エラー内容をはるのをわすれました。
コピペの時にちょっといじったので、行数と一致していません。
(本文が長すぎるとか、改行多すぎるとかいわれたので)

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 } };
の部分で指摘されます
663654 :02/11/23 21:08
投稿失敗ごめんなさい。
664素朴な質問:02/11/23 21:09
関数の戻り値に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;
こっちの最初の行のセミコロンじゃないの?
666665:02/11/23 21:21
すまん大ボケでした。変数宣言内での代入の問題だけじゃないですね。
>>664
staticつけると他の関数から参照できないとかそんなんじゃなかったっけ?
>>667
s/関数/ファイル/ では?
669 :02/11/23 21:34
>>664
>>667

他のファイルの関数から参照できないです。
staticてのはメモリの使い方だと思うけどよくわかりません
意味合いとしてはprivateに近いと思います。
他の関数から参照できない関数は永久に使われないです。
670669:02/11/23 21:34
>>668

被った鬱打
>>664
素朴な質問というより低レベル/初心者/厨房の質問だな。
ヘルプ見れや。
文字を引数にしたらASCIIが返ってくる関数があることはわかるのですが、
ASCIIを入れたら文字が返ってくる関数はありますか?
673manko_chinko ◆GLc2rpKRNM :02/11/23 21:47
>>672
寝言ですか?
>>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
何の意味があんの?これ
>>674
int_to_ascii() の方だけだけキャストしてるのは、どういう意味合いを込めてるの?
>>677
>>678
僕が一番聞きたいです
680デフォルトの名無しさん:02/11/23 22:13
>>674
unsigned つけとけ
681 :02/11/23 22:15
>>679
お前の質問が意味わからんことにきづけよ


ものすごい勢いでダメ出しされてるネタの返し
いや、簡潔に言うと

printf("%d\n",toascii(getch()));

これでキーボードをどっか押すとASCIIが出力されるわけね。
これの逆バージョンみたいな感じのが知りたいのね。
文字入力に対して数値を出したいの?
数値入力に対して文字を出したいの?
両方?
ASCIIにこだわるな!
>>685
アメリカは糞ってことか。
むしろ西が(ry
同意
>>683
>これでキーボードをどっか押すとASCIIが出力されるわけね。
>これの逆バージョンみたいな感じのが知りたいのね。
翻訳すると、
「ASCIIを入力するとキーボードが押されるような関数ある?」
たぶん、こいつも「文字型」と「整数」がまったく別物だと
思ってる、Cに不慣れな人間の一人なのだろう。

Cでは「整数型」の一種として「文字型」があるって知ってたか? >>683
691683:02/11/23 23:55
>690 マジかよ! ある意味Cはスゲー
char c='d';
int i=64;
printf("%d %d\n",c,i);
printf("%c %c\n",c,i);
とか、やってみそ。(64が適当かどうかちょっと分からんが)
693 :02/11/24 00:25
>>683
話の流れはよくわからんがやりたいことは
なんとなくわかった。
おおまかにいうとこういうことか?

char str[1024];
int c;

/* 0-127を入力(8bitの場合は 0-255) */
gets(str);
c = atoi(str);
/* 対応する文字を出力 */
putchar(c);
putchar('\n');
ASCII じゃなくて、ASCII コードと言いたいんだろ。
695693:02/11/24 00:40
>>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++)
>>699
関数からならreturn
>>702つまらん事にいちいち突っ込むな。
>>705
それ俺も思った
707デフォルトの名無しさん:02/11/24 05:32
わかる方お助けください
64×64の配列をいっぱい宣言したいんですけど
ある個数を超えるとスタックエラーでてしまうんですけど
宣言できる限界ってあるんですか?
また、解決法があればお教えくださいませ。
>>707
限界はある。環境に依存。

解決法:
1.スタックサイズを増やす。
2.extern変数として宣言する。
3.mallocやcallocで実行時に確保する。
709デフォルトの名無しさん:02/11/24 05:45
>>708
こんな遅くにご丁寧にどうもありがとうございます。
伺わせていただきたいんですけれども
環境というのは具体的に何を示すのですか?
710708:02/11/24 06:05
遅くというか早くというか…

環境ってのは主にOSだが、その他コンパイラや実メモリや
スワップの空き領域などによって、スタックサイズのデフォルトや
上限が決まる。
711707:02/11/24 06:11
>>708
今までスタックサイズを気にしない程度のPGしかやっていなかったんで
まいりました。
extern変数で宣言したらエラーが出たんですけど
グローバル変数にしてみたら稼動しました。
どうもありがとうございました。
>>711
関数の外でstaticをつけずに宣言した変数は
externと言ふのだよ…

まー、別にstatic変数でもいいはずだがナー。
713707:02/11/24 06:19
>>712
勉強になります。
本当にどうもありがとうございました。
今度は、ヒープを食いつぶしたりして(w
ヒープを食いつぶす?
グローバル変数が?
>>714
馬鹿か。ヒープを食いつぶすってどういう意味だ?
Cスレはスレッドもヒープも知らん奴が大口を叩ける場所なんだナ。
>>717
スレッドはC標準じゃないぞ
規格書を百回読んでから来い アホが
calloc は,メモリヒープへのアクセスを提供します。このヒープは,
可変長のメモリブロックで動的に割り当てるために使います。*1

*1:'TURBO C++ FOR WINDOWS Version 3.1'より抜粋
>>718
ハァ? スレッドすら知らないレベルでも大口叩けるってことだボォケ
規格書を何度も読み返してる暇があったら、知らない技術を学べやブタ
721 :02/11/24 11:18
以下のようなプログラムを組みました。
一番外の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);
}
}
}

722 711:02/11/24 11:19
今のままでは、毎回いかのような結果になってしまいます。
$ ./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 が出ました。

こうならないようにしたいのです。
723 711:02/11/24 11:28
自己解決しました。
有難う御座います
ここはひどいスレッドですね
超アフォな質問済みませんが
constとstaticってなんでしょうか?
静的とか初期化とか装飾しなどの専門用語を使わず
具体的に説明してほしいのですが、
どう?
それと>>721はjをsrandに何かしら加えれば良いんじゃないでしょうか?
>>725
初心者本でも買って読んでろ。
727デフォルトの名無しさん:02/11/24 12:10
>>715
グローバル変数ってヒープに領域がとられるの?
初心者の皆さんすいません。
午前中はレベルの高い人は寝ています。
皆さんの質問にちゃんと答えられる人はいません。
レベルの高い人は2chに書き込みなんかしません。
>>728
起きてますよ(^^)/
>>725
constをつけて宣言されたデータは、内容を書き換えることができない。
また、コンパイラや読む人に、こういうデータは値が変わらないんだとわかる。

staticには大きく分けて2つ意味がある。
staticなデータは、プログラムが開始したときから終了したときまで
メモリの同じ位置に割り当てられている。
staticな関数は、同じソースファイルの中からは名前を参照できるが、
ソースファイルの外から名前を参照できない。
732715:02/11/24 12:47
>>727
漏れに訊くな。
714 に訊け。
>>728
漏れはもう寝ます。
>それと>>721はjをsrandに何かしら加えれば良いんじゃないでしょうか?

srandをfor文より前に出せばよい。
>>731
50点ってとこか
736731:02/11/24 12:56
>>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から勉強し直せとしか言いようがない。
ああ、
ワカタ!

なぜこのスレで質問しても
答えられる人間がほとんどいないかというと、
このスレがニセCスレだからだネ!

本物はこちら
http://pc3.2ch.net/test/read.cgi/tech/1037796472/l50
>>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
>>750
ニセスレですから。
本物は↓

char *c[44] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037796472/l50
>>745
成り下がるよ。
hoge の先頭アドレスを指すポインタにね。

で、「hoge の先頭アドレス」 がどこだかわかる?

    ┏━━━┯━━━┓
hoge┃char**.│char**.┃
    ┗━┯━┷━┯━┛            ┌─┬─┬─┬─┬─┐
.      │     └→.どっかのメモリ領域1│'p'│'i' │'y'.│'o'│'\n'│
.      │                     └─┴─┴─┴─┴─┘
.      │                     ┌─┬─┬─┬─┬─┬─┬─┐
.      └────→.どっかのメモリ領域2.│'p'│'i' .│'y'.│'o'│'_' │'2'│'\n'│
                            .└─┴─┴─┴─┴─┴─┴─┘
755754:02/11/24 13:56
逆だった Σ(゚д゚lll)ガーン
756754:02/11/24 13:57
しかも hoge の中身は char** じゃなかった・・・吊ってくる。
>>755
    ┏━━━┯━━━┓
hoge┃char*.│char*.┃
    ┗━┯━┷━┯━┛

こうだろ?
758757:02/11/24 13:59
修正済みだった・・・吊ってくる。
>>754
文字列の終端は'\0'
761754:02/11/24 14:01
打つし
レベル低っ!
763754:02/11/24 14:03
めげずに書き直し。

>>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 :02/11/24 17:05
>>770
断然フォートラン
(参考)
http://www.genpaku.org/realprogrammerj.html
つまり、略すと断然フォートランという事ですか?
>>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 で望み通りの結果が出るかも
790JPS ◆M0LaMzf5rY :02/11/25 18:25
今から3*3のまるばつゲームの対COM版をつくりまつ!
木構造でいいんでつか?
791デフォルトの名無しさん:02/11/25 18:29
main(argc, argv) の引数の "argc" と "argv" の名前の由来って何なのですか?
知らなくても済む事かもしれませんが気になるので解かる方教えてください。お願いします。
>>790
スレ立てるまでもない逝けな。
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って書いた奴に聞かないと。
799798:02/11/26 00:46
あ、valueじゃなくてvector。すまそ
variable は意味違うでしょう。
あと、実際が array であるところを見ると vector も違う気がする。
K&R ってそんなに 「正しい」 の?
>あと、実際が array であるところを見ると vector も違う気がする。
アフォですか?
>>800
ヲイヲイ、一次元の配列をvectorと呼ぶのダヨ…

>K&R ってそんなに 「正しい」 の?
まあ、Cを作って使い始めた人(のそばにいた人たち)が書いてるから。
どう考えてもvector以外は(英語のニュアンスとして)おかしい。
>>802
>まあ、Cを作って使い始めた人(のそばにいた人たち)が書いてるから。
括弧内は余計
>>801-802
どうしても違う気がするんだけど。
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=vector&sw=0

>>803
argument vaules ってどういうニュアンスになるの?
>どうしても違う気がするんだけど。
 お ま え の 気 が 違 っ て る だ け だ
>>806
そうなのかも知らんが、やっぱり納得できない。
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=array&sw=0
array ↑ と違って、明確に 「配列」 という意味が辞書に載ってない単語を、
(802 の弁によるならば) 一次元の配列に限って適用するのは何でだ?
だれも答えてくれんのか?

ポインタが何かを指し示している様子を指してベクトルと呼ぶならわからないでもないが、
それでも無理矢理だし、ポインタを格納しない一次元配列でもやっぱり意味不明だ。
第一、char*[] は (メモリにどう確保されているかは別として) 二次元配列と見なせる
気がしないでもない。
数ベクトル・・・n個の実数x1, x2, ..., xnを順序づけて並べた組を
n項数ベクトルという(藁
>>809
その論で逝くと、vector は入れ物ではなくて、中身の値の羅列が表現するものと
いう事になるが、そういう事なのか?
要するに、(数)ベクトル=配列ってことだろ。
何でもともと array という単語があるのに、そんな面倒な脳内変換をしなくちゃ
いかんのだ?
あのなー。
数学や計算機の用語が
ただの辞書に正確に載ってると思うほうがどうかしてるだろ。
そんなのを根拠に持ってくるなよ(藁
C99 規格書には program parameters と書いてあるな。
argv が結局何の略なのか説明していない。
>>813
【コンピユータ】 ってカテゴリでバンバン載ってるじゃん。
そっちこそ根拠何一つ示さないくせに何を偉そうな。
arrayには「一列」というニュアンスが無い。
縦か横か縦横両方か、とにかく並んだもの。
日本の辞書の人たちなんてねえ...

foldocくらいひいてみれば?
http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?vector
プログラミングに関して言えば「1次元の配列のこと」と書いてある。
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
つまり、説明できないんだね。
よくわかった。
>>824がいいこと言った。
830デフォルトの名無しさん:02/11/26 03:32
>>828
ものわかりのわるい文系の粘着厨房が1人いるな。
824嫁。
>>828は50代のリストラされかけ爺い。
まさに過愚師
>>824
「値」 の意味が違うよ。
引数の値、実体の事と言えば冗長でもないだろう。
「変数」 が冗長なのはわかる。
834デフォルトの名無しさん:02/11/26 03:36
結局ネタなわけだが・・・
ほんとのことは作った本人しかわからない、と
作った本人の降臨キボンヌ
引数をオブジェクトとして考えた時、
 argument.count
 argument.value
は納得できるけど、
 argument.count
 argument.vector
は意味がわからん。
>>837
しつこいなー。
オブジェクトとして考えるわけねーだろ。あの時代に。
配列とその長さってのはFortran以来の由緒ある引数の渡し方だろ。
電波か?
相手しても無駄な香具師:

(1)自分のマチガイが明白なのに認めようとしない、
 最初から議論する気の無い馬鹿。
(2)自分のマチガイが、他人から見れば明白なのに、
 最初から理解する頭の無いアフォ。
>>837
もうそのネタはいいよ…
だから、最初っから元祖K&Rにvectorだと書いてあるっつーに。>>797で。
なぜここまで引っ張るかなー。
argv[i]のように、1次元の添字でアクセスするものを
「ああベクターであることよなあ」と感じない厨房は
もういちど修士課程からやりなおせ。
修士課程って何ですか?
845JPS ◆M0LaMzf5rY :02/11/26 04:09
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
860JPS ◆M0LaMzf5rY :02/11/26 04:57
ヒマだったんで、じゃんけんプログラムをつくりますた。
へぼ思考ルーチンでつ。これから3*3の○×がんがります。

○×って、ヘマさえしなければ引き分けしかならないと思うんだがどうよ?
でも、五目並べならリバーシよりロジック難しそうだ。
863JPS ◆M0LaMzf5rY :02/11/26 06:06
めんどいんで、リーチの時以外はランダムにすることにしますた。
終わったらK&R読破します。
プログラミング作法でrealloc()ミスってたよね
オンラインのソースは直してあった
ミスの仕方が面白い
>>861
引き分けにしかならない、ということを学習するルーチンが出来上がると思いす。
>>863
先手さえ取れれば、その COM には勝てそうだ。
vec・tor
-[名][C]
1◆〔数〕 ベクトル, 方向量; 動径
:〜 analysis ベクトル解析.
2◆〔空〕 方向, 進路(方位).
3◆〔生物〕 媒介動物, 保菌生物 《病原体を運ぶハエ・カなど; 主に昆虫》.
-[動][他]
〈飛行機・ミサイルなどを〉電波によって誘導する.
【ラテン語「運ぶ者」の意】


この「運ぶ者」っていうのはまさに引数を暗示させてるな・・・
西洋の言葉は奥が深いですなぁ。
日本語平面と英語平面の間に抽象的(ry
> 電波によって誘導する

うーむ。
2ちゃんねらにとっては凄い意味になりそうな言葉だ。
>>867
> この「運ぶ者」っていうのはまさに引数を暗示させてるな・・・

こじ付けだとは思わないわけか?
そういう意味だとしたら argument vector は何かおかしいぞ。
872867:02/11/26 08:29
>>871
そだね。言葉の意味なんて文脈でいくらでも変わるからね。 
> この「運ぶ者」っていうのはまさに引数を暗示させてるな・・・
ネタとしては30点くらいかな。
運ぶ者が引数とどうつながるんだ?
>>874
しっ!
釣られるな!
876874:02/11/26 09:49
すまん
ここは 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) 全体を良く混ぜる。
885884:02/11/26 16:03
あ、ステップ1)では0〜19に範囲を限る必要はないね。
a[i]に対して、0..(1000-(a[0]..a[i-1]の総和))の乱数を格納。
>>883
a[0]〜a[98]すべてに負の数
a[99]に1000-それ以外の総和
>>886
最初に1000が出たらどうなるの?
オーバーフローについて指定あるのか
890デフォルトの名無しさん:02/11/26 16:08
>>886
総和が1000になる保証がないよね。
>>888
残り全部0。

>>890
確かに最後を特別扱いする必要があるな。
乱数は、平均が10で非負の一様分布で良いのか?
だったら、
for (i = 0; i < 1000; i++) a[i] = i / 50;
とやって、それからランダムにシャッフルすれば良い。
>>891がいいこと言った
要求仕様をよく読めってのが題意にありそう
1000個の箱を用意して
それに100個の玉をランダムに入れていく。
番号0の箱から見ていって、1つ目の玉が入っていた
箱の番号をa[0]の値とする。
以下同様に、玉が入っていたら
(箱の番号-前の玉が入っていた番号)
をa[i]に入れていく。
895894:02/11/26 16:19
間違い。100個の玉入れちゃだめ99個
で a[99] は
(1000-99個目の玉が入っていた箱の番号)
>>894
「100個の箱に1000個の玉」ってのは正解っぽいな。
負の数を考えないとしたら、最も美しい解だな。

a[i] 全部ゼロにする。
for (k = 0; k < 100; k++)
 a[ (0〜99の乱数) ]++;
897896:02/11/26 16:25
失礼。ループ回数は1000回ね。

a[i] 全部ゼロにする。
for (k = 0; k < 1000; k++)
 a[ (0〜99の乱数) ]++;

どうだ! これが決定版だろ。
>>894-895
間隔を取ると、分布は一様分布でなく
指数分布になっちゃう気がするが。
899894:02/11/26 16:34
>>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;
}
900894:02/11/26 16:36
>>898
あれ?なんで?
901880:02/11/26 16:41
ありがとうございます。
>>894
さんので、やらせていたいただきます。
902894:02/11/26 16:44
>>901
あ、私じゃなく896さんの考えた方法です(念のため
903880:02/11/26 16:50
>>896
さんありがとう。他のみんなもありがとう。
904デフォルトの名無しさん:02/11/26 17:38
C言語自体のことではないのですが
Cを書く際に使いやすいエディタってどんなのがありますか?
今までCPad使ってたのですがもう少し上級なのを使おうかなと思いまして。
よろしくお願いします。
>>904
板違い
>>900
間隔が一様分布だと、総和はガウス分布に近づく。
総和が一様分布だと、間隔は指数分布に近づく。
907894:02/11/26 17:47
>>906
総和は一定なんだけど...
>>907
まちがいた。

単位区間内に起きる事象の回数(たとえば、100個の箱の中の玉の数)
の平均値が決まっていて、どの時点で起きるか(玉が入る箱の番号)
が一様分布だとすると、事象の間隔は指数分布。
909894:02/11/26 17:57
>>908
それって箱に複数の玉が入ることも想定してるのかな?
910894:02/11/26 18:02
てか混乱してた
よく考えたら一様分布になりそうにないね
ありがとう>>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

ガウス分布だね。
一様分布のアルゴリズムは未だ誰も考え付いていない。
914896:02/11/26 18:21
>>913
あー!そうかー。

足してくとガウス分布に近付いちゃうよなあ。
中心極限定理という香具師だな。

うーん。一様分布じゃなきゃだめなの?
915894:02/11/26 18:22
てか一様分布ってどうなるの?ありえなくない?
>>915え?
どの値の出現確率も同じなのが一様分布だけど?
まあ、1000個くらいだとぴったり全部同じにはならんだろうけど、
ほぼ同じになるはず。グラフの形は、

******
******
******
******
******
******
...

にわずかなでこぼこ、っていう感じになるはず。
917894:02/11/26 18:27
>>916
値の範囲は0〜1000だけど.....
>>917
0〜1000と決まってたっけ?

また、そうだとしても同じこと。
0〜1000の範囲の数が1/1001の確率で出現すれば一様分布。
919918:02/11/26 18:35
ああ、そうか。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になれますか?
MIT(マサチューセッツ工科大学)人工知能研究所では
「現在、研究されているプログラム生成AIは10年後に
は実用化されることはがほぼ確実。」としている。
http://science.2ch.net/test/read.cgi/future/1022864257/l50
↑【転送】また、騙された訳だが【完了】
924デフォルトの名無しさん:02/11/26 20:03
やっぱり確立とか勉強しないとゲームも書けませんか?
別に確率を使用しないゲームもあるしランダム程度知っていればゲームは作れる。
リアリティやゲームバランスの向上を目指すなら確率を知っていたほうが良いと思うが。
ゲームに限らず、ちゃんと勉強しとかないと
rand() % N
なんて書くDQNプログラマになっちゃうぞ。
>>926
確率の勉強をしてもrand() % Nと書かなくなるわけではない罠。
928894:02/11/26 21:03
>>926
D Q N は お ま え だ っ つ ー の ( ワ ラ
929894:02/11/26 21:06
しまった!名前欄消し忘れた!(汗
乱数、こんなのどうですか?
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);}
931926:02/11/26 21:13
>>927
確率だけでいいなんて書いてないが?
932894:02/11/26 21:15
>>931
なんで rand()%N がダメかって説明できんの?
>>930
ものすごくDQNなプログラムの群れがニホヒ立つ.
randMT()%Nではいかんのか?
>>932
ええ、できますけど、そうやって説明させようと言うつもりなら
素直に「教えて下さい」と頼むのが礼儀と言うものですよ。
>>934
Mersenne Twisterなら%Nで大丈夫でしょうけど、
標準関数ではありません。
>935
もし、randの下位のbitが云々、とやりたいなんら、
VCのrandは
return(((holdrand = holdrand * 214013L + 2531011L) >> 16) & 0x7fff);
となっていることを云っておく。
>>937
だから何?
>>938

>そうやって説明させようと言うつもりなら
>素直に「教えて下さい」と頼むのが礼儀と言うものですよ。
>>937
スレ違い。
>>937
なぜC言語スレでVCの実装の話がでてくるのか教えて下さい。
942894:02/11/26 21:55
>>941
前にも出てきたけど、最近のバージョンのglibcのrandも
rand()%N
で無問題
昔むかしにrand()%Nはダメと教えられて
それを単純に覚えてるだけのやつはDQNだよ
結局

926 :デフォルトの名無しさん :02/11/26 20:13
ゲームに限らず、ちゃんと勉強しとかないと
rand() % N
なんて書くDQNプログラマになっちゃうぞ。

は実装の話になるから間違いって事だろ。
>>942
そんな処理系に依存した話は他のスレでやって下さい。
>944
926に言ってくれ。
「rand()の下位ビットが十分ランダムだ」と仮定すると
処理系に依存したプログラムになる。
「あまりランダムでないかも知れない」と仮定すると、
移植性の高いプログラムになる。
947894:02/11/26 22:02
>>946
それには同意
でもダメな理由も知らないのに >>926
みたいなこというのは感心しないってこと
946は、識別子を6文字に押さえるタイプ
結局DQNは>>942-943の方だったわけですね。
D Q N は お ま え だ っ つ ー の ( ワ ラ
>>950
次スレよろしくなDQN
>>950
ここに、むりやり割り込みませんか?
もちろん、過去スレへのリンクもちゃんとはってしまう。

char *c[44] = {"C言語のことは漏れに聞け!"};
http://pc3.2ch.net/test/read.cgi/tech/1037796472/
むりやり割り込むも何もここがむりやり派生したんだろが。
>>226-234
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 の結果と比べてみてください。
9571:02/11/27 07:18
次スレもこのスレも腐っているから安心していい。
>>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'''  /____  /  ___________________   _  _  _
         ∨          _____/ / /___________________/ /_//_// /
          ゚         /______/                /_/
   ゚   ゚    。
   /゙////_.. 〃   ゚
  く    ∧∧  ) ゙゙゙\,,_______ _,,  _ ...,,
   ゝ⊂(Д゚ 〇 _`つ ......... ............................. ..............    ・…∵...・・ ・
   く  ....... .......... :::::::/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄'' ̄ ~"
  ゚ \,|'\゙∨  ゙̄ ~   ゚
      ゚  。  ゚  。
がんばれ!あと少しだゾ!
汗り杉
 
>>995
何か書けYO!
あー、てすてす。
998デフォルトの名無しさん:02/11/28 23:23
999デフォルトの名無しさん:02/11/28 23:23
a
1000デフォルトの名無しさん:02/11/28 23:23
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。