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


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

C言語なら俺に聞け(入門篇) Part 21



1 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 06:24:18 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 20
pc11.2ch.net/test/read.cgi/tech/1192455273/

教えて欲しいのではなく丸投げしたいならこちらへ
C/C++の宿題を片付けます 99代目
pc11.2ch.net/test/read.cgi/tech/1194262698/

654 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:14:15 ]
>>653
すまん。
前2行と後ろ2行の関係が分からん。
出来ればもうちょい詳しく頼む。

655 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:39:55 ]
別のスレに翻訳単位をよくわかってない奴がいたな。
ヘッダファイルは彼にとって何か特別なものなのかもしれないが。

656 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:52:05 ]
>>654
前2行の理由により、普通はヘッダファイル内にあるプロトタイプ宣言より先に
static なプロトタイプ宣言や関数定義が現れることはないから、
実質的には暗黙的に extern になると考えても問題ないという話。

657 名前:デフォルトの名無しさん [2007/11/23(金) 19:14:43 ]
ここに来てるのってみんなプログラマーなの?

658 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:36:03 ]
プログラムが出来るって意味ではみんなプログラマーだろうな

659 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:59:26 ]
職業=プログラマはあんまいないと思う
学生とSEばっか

660 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:09:55 ]
いや、プログラマーって普通にいるだろ。

661 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:13:13 ]
>>659
SEが居るならプログラマも居る事になるんだよ

662 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:19:42 ]
SEと職業プログラマはちょっと違うけどな



663 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:21:40 ]
あ、名刺はSEだけどプログラマって人はいっぱいいると思う
特に若い人。

664 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:35:16 ]
昔職業プログラマって優れたコードを書く人だと思ってたけど、
なってみたら優れたコードとかは二の次で動くコードを書く人だと知った。

665 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:40:15 ]
資格とかいらなくて、基本的にだれでもやれる職業だしな。

666 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:25:12 ]
頭使うドカタだしな。

667 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:44:55 ]
名刺もってるプログラマに出会ったことないんだけど

668 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:46:47 ]
名刺は持ってるぞ
渡す機会は無いけど

669 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:47:29 ]
名刺に「プログラマ」と書くとどうしても低く見られるから、
「システムエンジニア」と書くんだよ。


670 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:48:33 ]
みんな普通にもってるでしょ?
自社以外の人にいっさい会わないで、こもって仕事してるならいらないけど。
名詞の肩書きに「プログラマー」とか入ってないって意味?

671 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:50:10 ]
所属とか役職は入ってるけど、プログラマーとかSEとかってのは書いてないよね。

672 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:50:43 ]
いや、会社が名刺をつくってくれないらしいんだが……



673 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:54:02 ]
たまにしか使わないのに何十枚も刷ると高いから、
使うときに1枚だけプリンタから出せってことだよ。

674 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 21:58:23 ]
数十枚刷れば数年もつ

675 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:03:15 ]
プログラマが名刺出すような状況にならんだろ
SEとして派遣されたら名刺だすけどさ

676 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:10:23 ]
>672-673

どんだけ貧乏な会社なんだよ。
100枚1000円ぐらいなのに…


677 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:11:36 ]
使わないものを作ったってねぇ

678 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:15:03 ]
あんま名刺出すとセールスの電話が増えて業務が滞る

679 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:19:51 ]
>>678
わたくしどもはお客様の会社にプログラマを派遣いたしております
わたくしどもは常に優秀な人材を取り揃えてございます
おたくの会社にもおひとついかがでしょうか?

680 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:23:29 ]
おもしろくないよ

681 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:32:04 ]
そのとおり
笑えない話なのさ

682 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:47:54 ]
Cでpow(5,i)の計算をした時のことでお聞きしたいことがあります。
最初はpow(5,0)=1,pow(5,1)=5,(5,2)=25....と順調です。
しかし、pow(5,23)の時に本来ならば11920928955078125のはずなのですが、
なぜか11920928955078124と1小さい数になってしまいます。
pow(5,24)以降も正しい数値が得られず誤差がどんどん大きくなっていってしまいます
この原因が全く分からず途方にくれている状態です…よろしくお願いします。



683 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:50:40 ]
>>682
ttp://ja.wikipedia.org/wiki/%E8%AA%A4%E5%B7%AE#.E8.A8.88.E7.AE.97.E8.AA.A4.E5.B7.AE.E3.81.AE.E7.A8.AE.E9.A1.9E

684 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:51:45 ]
>>682
doubleの有効桁数を超えてるとか。

685 名前:デフォルトの名無しさん [2007/11/23(金) 23:57:53 ]
多売長ライブラリ

686 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 00:15:23 ]
>683

倍精度浮動小数点で普通使われるIEEE 754 形式だと仮数部52ビットだけど、
pow(5,23)で52bitを超えるから、以降は誤差が出る。
誤差を避けるためには自分で作るしかない。
でも多分そういうアルゴリズムは探せばあるよ。


687 名前:デフォルトの名無しさん [2007/11/24(土) 01:53:27 ]
0*0.003=0

をlog計算するためにプログラムでかくにはどうすればいいですかね?

0*確率なら0になるから処理の結果に影響ないんだけど
logだと0にならないんで困るわ。

688 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 01:54:20 ]


689 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 02:09:44 ]
わからないかな?
たとえばこの図であらわすと
kossie.net/up/src/kos1247.jpg
startから1回目の移動で↑と↓に移動できるそのときの確率が0.5と0.5
start地点の状態確率が1とすると↑と↓に移動した段階の状態確率はそれぞれ0.5 0.5

プログラム的に1回の移動ごとに、すべての状態をまわって、
そのあとに2回目の移動をすることにしてます。そうじゃないと作れないので。
これを小数点でなら最初すべての状態の確率を 0にしておけば、それぞれの移動ごとに
すべての状態をまわっても0*移動確率 =0になるので変な数値が値がでることはありません。

ただlogで計算する場合に、logはlog(A*B)=logA+logBという性質があるので
Aが0であってもBが0でなければ数値は残ってしまういうわけ。

これでプログラムになやんでるんですよ。

690 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 02:13:56 ]
そもそもlogxって定義域x>0だろが

691 名前:689 mailto:sage [2007/11/24(土) 02:35:46 ]
まあ問題はこういう感じなんですけど、図は>>689のとおりです

いま、start,1,2,3,10,11,endという状態がありまして、
以下のような確率で移動することとします。
最初はstartで最後はendです。startの状態確率は1.0です。
1.0から移動する確率をかけると状態1のその時点での状態確率が0.5、状態2の状態確率が
0.5となります。
ただし状態1は入ってくる矢印が3つですので、その時点では0.5ですが
次の状態に状態1から状態1へ移動すると0.5X0.6の計算をして0.3となるわけで
す。この(startから状態1への移動確率)
(状態1の状態確率)X(状態1から状態1への移動確率)と、(状態11の状態確率)X(状態11
から状態1への移動確率)の和が状態1の状態確率となります。
startから状態10に移動したり、状態2に移動したりして計算をしていって
endにきたときの最終状態確率を求めよ。っていうのが問題です。

これをlogで計算しないといけないっていう前提にプログラムを作るとしたら
どうつくっていきますか?ただし状態に入ってくる3つの値は比較しながら
計算しないといけないんでね。logの計算なので。

692 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 02:39:14 ]
>>689
なんだお前か
氏ね



693 名前:689 mailto:sage [2007/11/24(土) 02:46:15 ]
どうせできないのにいばんな。

694 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 02:47:25 ]
非友好的な態度だな

695 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 03:40:22 ]
負の無限大?

696 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 03:57:50 ]
>>691
人に説明する気はありますか?
宿題スレでも、簡単なことを訳の分からない説明してたし
考えていることを整理してみてはどうでしょう?

エスパーしておくと、対数を使うのは外部データの入出力のときだけで
内部での計算は対数を使わなくていいんじゃないかと・・・
(どうせ浮動小数点だし)

697 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:14:10 ]

             「 ̄ `ヽ、   ______
             L -‐ '´  ̄ `ヽ- 、   〉
          /           ヽ\ /
        //  /  /      ヽヽ ヽ〈
        ヽ、レ! {  ム-t ハ li 、 i i  }ト、
         ハN | lヽ八l ヽjハVヽ、i j/ l !
         /ハ. l ヽk== , r= 、ノルl lL」
        ヽN、ハ l   ┌‐┐   ゙l ノl l
           ヽトjヽ、 ヽ_ノ   ノ//レ′
    r777777777tノ` ー r ´フ/′
   j´ニゝ        l|ヽ  _/`\
   〈 ‐ 知ってるが lト、 /   〃ゝ、
   〈、ネ..         .lF V=="/ イl.
   ト |お前の態度が とニヽ二/  l
   ヽ.|l         〈ー-   ! `ヽ.   l
      |l気に入らない lトニ、_ノ     ヾ、!
      |l__________l|   \    ソ

698 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:21:52 ]
>>689
>ただlogで計算する場合に、logはlog(A*B)=logA+logBという性質があるので
>Aが0であってもBが0でなければ数値は残ってしまういうわけ。

なんで、そんな偉そうにウソを語るんだ。

699 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 09:53:50 ]
log0 は未定義だから log(A*B)=logA+logB で A が 0 の場合を考える事自体がナンセンス

700 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:03:19 ]
>>689
よく分からんが、log0って出来ないんじゃないの?

701 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:06:58 ]
エスパーすると、確率を log した値で保持しておいて、
確率変化を積じゃなく和で表現したいんだろうな。
log(0) は CPU によっては -inf (マイナス無限大) として扱われるから、
そういう CPU では特に問題は発生しないと思うんだけど。

702 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 10:45:05 ]
>>683-686
レスサンクス!
結局、多倍長演算をするためにGMPとやらを入れてみました。
しかしGMPの関数を解説してるサイトの少ないこと…
どんな関数があるのか、引数の意味は何かとかさっぱり分からないorz



703 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:32:52 ]
練習で、サーバーソケットとクライアントソケットを両方持つプログラムを作ってます。
サーバーはサーバーでリッスンさせといて、クライアントはメッセージを入力すると相手サーバーへ飛ぶ、
と考えたんだけど、先にサーバーソケットをaccept()でループさせとくと、後のクライアント処理に行けなくて困ってる。
スレッド使わないとムリ?

704 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:55:20 ]
>>703

>スレッド使わないとムリ?

無理。素直にスレッド立てれ。


705 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 11:57:22 ]
プロセスでもいいけどな

706 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 12:00:22 ]
selectとその仲間


全然(標準)Cじゃねーじゃねーか

707 名前:デフォルトの名無しさん [2007/11/25(日) 00:04:32 ]
for文とwhile文の使い分けがよく分かりません。
苦Cのサイトに、「for文はwhile文を拡張した文」と書いてあったのですが、
while文が先にできて後でfor文を追加したのでしょうか?

while文でなければできないことや、while文でやった方がいいこと、またその逆など、
ありましたら教えてください。よろしくお願いいたします。

708 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:10:58 ]
>>707
とりあえずループカウンタをつかってるループはfor()を使っておけばいいんじゃないの?



709 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:17:10 ]
>>707
while文でできてfor文でできないことや、その逆のことは、ない。
 i = 0;
 while (i < 10) {
  ....
  i++;
 }

 for (i = 0; i < 10; i++) {
  ...
 }
のどちらが読みやすいか?
その程度の問題。

710 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:19:45 ]
do{}while(); // 必ず一回は行う処理
for(;;) // ループ途中で continue を行っても for の第三項が実行される

711 名前:デフォルトの名無しさん [2007/11/25(日) 00:36:29 ]
>>708-710
ありがとうございます。
文法的にwhile文の方が見やすいので、個人的にはそちらを使おうかと思っています。
一般的にはどういう使い分けがされてるとか、「慣習」や「常識」みたいのはありますでしょうか?

712 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 00:54:11 ]
文字列処理とか数値処理とかで使い分けるだろ。




713 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 01:03:14 ]
ここでfor文の方が速いからfor文使え、とその後200レス程費やす無駄な議論を起こす為のネタ投下

714 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 01:04:49 ]
慣習とかは無いだろうけど,
回数が固定なら for,未定なら while が一般的だと思う
たとえば,「荷物を10個選ぶ」なら for で,「荷物を10kg分選ぶ」なら while とか


715 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 01:07:00 ]
そうだな
内容の容量の制限したいときにforではせんわな。

あープログラムつくらないといけないのに
作る気がしない。
作り始めたら5,6時間いけるのに
そういうのが全然ない。

716 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 09:10:10 ]
たしかに for でも while でもよいネ。
オイラは無限ループは while 使うようにしてるな。
do while は使わなくなった。


717 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 09:50:56 ]
ループするごとに毎回行いたい処理があれば for を使うね。
continue しても実行されるから。

718 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 11:06:17 ]
vcだとwhile(1)は警告レベル最大だと文句言われるのでfor(;;)を使うようになった
この辺の習慣は環境で変わるんだろうね

719 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 11:08:38 ]
泣く泣く for (; ;) を使うように

720 名前:デフォルトの名無しさん [2007/11/25(日) 13:30:51 ]
>>718
どういう警告?


721 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 13:42:40 ]
>>720
C4127

722 名前:デフォルトの名無しさん [2007/11/25(日) 15:10:01 ]
CとC++はもう仲良くできないの?
C99すごすぎ。



723 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:28:24 ]
認識率1%とかの実験のプログラムを前の先輩をつくられて
再実験でそのプログラムを作ってるんだけど。
データ100でそのうちの何個かで認識率を出すって感じで
今ようやくデータ1つで数値を出せるようになった。
データ100個をプログラムで入力できるようにして自動でしたいんだけど
結構複雑。
データ1つ入力して値をだして100回するのも
認識率1%とかいうやって意味あるのか的な感じがして自重してる。

しかしプログラムの内容を率でだされるのっていやだね。

724 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 17:36:31 ]
日記帳にでも書いてろカス

725 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 18:57:23 ]
www.nicovideo.jp/watch/sm1619083
これか

726 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 19:48:10 ]
文字列処理を極めたいのですが、何から手を付けたらいいですか?

727 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:01:28 ]
左から。

728 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:02:51 ]
まずは文字列の表現方法を考えることから

729 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:03:10 ]
修辞的疑問文というやつだな

730 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:13:07 ]
ファイルを読み取る時に一文字ずつ読み取る方法と
一行ずつ読み取る方法がありますが、
どういう場合に使い分けるんですか?

731 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:14:23 ]
カンタンなことだ。
ファイルを1文字ずつ読み取りたい場合は1文字ずつ読み取る方法を使い、
1行ずつ読み取りたい場合は1行ずつ読み取る方法を使う。

732 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:16:09 ]
その日の気分による



733 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:30:51 ]
一行ずつ、もしくは一文字ずつ読み取らなければいけない場合とは、
例えばどんな場合がありますか?

734 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 20:43:56 ]
>>733
行に意味があるときには行単位で読んだほうが楽
行に意味がないときには文字単位で読んだほうが楽

735 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:13:40 ]
バイナリファイルは1文字ずつ読んで、
テキストファイルは1行ずつ読む。

736 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 22:39:40 ]
>>735
さらっと嘘教えるな

737 名前:デフォルトの名無しさん [2007/11/25(日) 23:10:37 ]
型変換しないのに型変換するとコストかかりますか?

たとえばunsigned int型を同じ型でキャストした場合です

738 名前:737 [2007/11/25(日) 23:17:16 ]
どうやらたいして差がないことが分かりました

739 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 23:39:11 ]
まず間違いなく出力は1バイトもたがわないと思う。

740 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 00:22:38 ]
ビルドしてfc /bで比べればいいんじゃね

741 名前:デフォルトの名無しさん [2007/11/26(月) 01:08:03 ]
>>714
分かり易い説明をありがとうございます。
>>709の例で言うと、for文を使う方が一般的、ということですね。
どちらも i を宣言しないといけないことに変わりはないんですね。

742 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 05:05:13 ]
ループの終了条件がループカウンター以外の場合はwhileを使う。
ループごとにある関数を呼んで、その結果が真の時のみループを抜ける、とかな。

while (func() != 0)
{
〜何かの処理〜
}

まあforでも実現できるから、どっちでもいいんじゃない?



743 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:16:58 ]
C言語の参考書Lvを卒業して、線形リストとかアルゴリズムみたいなのをある程度組んでみた。
30日位考えれば作れるようなプログラムとかどのような物があります?
大学にも行けなかったような頭なので、そこまで難しい物はまず出来ませんが。

744 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:31:01 ]
>>743
トランプのポーカーを AI 付で

745 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:36:18 ]
>>743
OS。本が売ってるからそれに従えばおk

746 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 09:55:58 ]
>>744
色々ネットにソースありましたが、AIって部分が難しそうですね・・・
ゲーム作ってみたかったので参考にさせて頂きます。

>>745
アセンブラも使うそうですし、OSとなると自分には無理な気がしてならないですがw
30日でOSが出来るならとなると少し興味もありますね。
レビューのみでは分からなかったのでこれから本屋行って二つを見て周って来ます

レス下さった方有難うございました

747 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 13:45:16 ]
int a[256]={0} という配列を定義して
例えば1024をscanfでこの配列に
a[0]=1024 , a[1]=0 ,a[2]=0,......,a[255]=0
ではなく
a[0]=4 ,a[1]=2, a[2]=0, a[3]=1.a[4]=0,.....,a[255]=0
という風に格納したいのですが、どういう風にプログラムを書けばいいのか思いつきません
よろしくお願いします。

748 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 13:48:11 ]
int n, a[256] = {0}, i;

scanf("%d", &n);
for(i=0; n; i++, n/=10) a[i] = n % 10;

749 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:06:25 ]
>>748
ありがとうございます!
int型やdouble型以上の桁の数字を扱う方法として
一桁ずつ格納する方法ならば!と思ったのですが、
どちらにしろ一度int型の変数に代入しないといけないことにプログラム見て気付きましたorz

char型の配列(例えばstr[256])に文字として数値を文字として格納した後に、
それをint型の配列(a[256])に入れなおすことって出来ませんよね…


750 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:19:16 ]
>>749
こういうこと?

char buf[] = "123456789";
int val[sizeof(buf)];
for (unsigned ic = 0; ic < sizeof(buf); ++ic) {
val[ic] = buf[ic] == '\0' ? 0 : buf[ic] - '0';
}

751 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:20:01 ]
int i, j=0, a[256];
char str[256];

scanf("%s", str);
for(i=0; str[i]; i++);
whil(i--) a[j++] = str[i] - '0';

752 名前:デフォルトの名無しさん [2007/11/26(月) 14:20:10 ]
void array_double(int *a, int n)
{
int i;
for(i=0;i<n-1;i++,n--)
{
a[i] = a[n-1];
}}
配列aとそのサイズnを受け取り、要素を逆順にするプログラムを考えているんですが、
うまくコンパイルすることができず、1,2,3,4,5と入力すると、5,4,3,4,5と出力されます。
どこがおかしいのでしょうか?



753 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:25:38 ]
>>752
>どこがおかしいのでしょうか?
頭。

コードと結果が合致してさえいないぞ。自分のコードくらい間違うな。

754 名前:デフォルトの名無しさん mailto:sage [2007/11/26(月) 14:29:45 ]
>>752
ヒント: 上書きと交換は違う







[ 続きを読む ] / [ 携帯版 ]

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

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