- 1 名前:デフォルトの名無しさん [2011/12/23(金) 22:51:14.19 ]
- C言語の*入門者*向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 93 toro.2ch.net/test/read.cgi/tech/1322866566/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 154代目 hibari.2ch.net/test/read.cgi/tech/1322562648/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
- 331 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:17:46.19 ]
- W32を敵視する奴がいるから
- 332 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:32:34.93 ]
- >326
プロジェクトをWin32コンソールアプリケーションで作成する。
- 333 名前:290 mailto:sage [2011/12/29(木) 20:42:25.03 ]
- おすすめサイトや書籍の質問は駄目なのか?
- 334 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 21:27:20.85 ]
- すいません
#include<stdio.h> int main(void) { int a, sum=0; for(a = 1; a <= 10; a++ );{ sum= sum+a; } printf("1から10の数の和は・・・%d", sum); return 0; } だとなぜか11になるのですが なぜでしょう
- 335 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 21:30:55.69 ]
- >>334
);{
- 336 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 21:58:09.79 ]
-
| ┏━━━┓ 従軍慰安婦は反日朝日新聞の捏造でした。 | ┃借収安┃ デマだらけの報道に注意しよう | ┃三三婦┃ | ┃○○大┃ | ┃○○募┃ | ┃○圓集┃ | ┃圓以 ┃ | ┃迄上 ┃_ \┃可 ┃ \ ┗━━━┛ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | img04.ti-da.net/usr/wishcomestrue/t02200190_0220019010786142693.jpg
- 337 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:42:56.45 ]
- int n = 1234;
↑のような数字の各桁を上から取り出す方法はあるでしょうか? 最初に1を取り出し、次に2を取りだしていくような感じです。 nの桁数は決まっていません。 よろしくお願いします。
- 338 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:44:53.84 ]
- >>337
遅くても良いなら sprintf してから一文字ずつチェック
- 339 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:56:00.70 ]
- むしろsprintfでいい
- 340 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 23:58:20.03 ]
- 桁数が決まってないなら無理。
実装上の int や long の最大数を制限値とするならできる。
- 341 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:04:26.96 ]
- いやどっちにしろできるだろ。
- 342 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:08:42.62 ]
- >>340
どういう形であれロジック中で表現されているのに、それを取ることができないと断言するのはいかがなものか。
- 343 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:16:50.59 ]
- >>337
ほらよ。 codepad.org/XhObtVpm
- 344 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:17:59.15 ]
- 皆さん意見ありがとうございます。
桁数の方は2桁のときも4桁のときもありますが 最高は6桁で抑えれそうです。 引き続きsprintfを調査します。
- 345 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:18:20.93 ]
- 桁数が決まってないってどんな状態だよw
そんなもん扱えるわけねーだろw
- 346 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:19:15.50 ]
- >>345
もういいから。
- 347 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:22:13.36 ]
- 実る前の林檎を食べることはできない。
時空を超越してる。
- 348 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:24:00.49 ]
- >>347
そんなことはない。>>343
- 349 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:25:53.41 ]
- >>343
凄いスマートなコードですね。 ありがとうございます。
- 350 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:26:13.53 ]
- codepad.org/Mr8A4yOo
- 351 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:29:22.16 ]
- まぁsprintf()の中で同じことをやっているわけだが。
>>350 せめてlimits使え。
- 352 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:37:02.91 ]
- 関数形式マクロの展開で、
#define max(x,y) (x>y?x:y) ・ ・ printf("max(x,y) = %d\n",max(x,y)); ・ ・ この場合""内のmax(x,y)が置換されないってのがいまいちしっくりこないんですが ""中の文字列は、定数としてメモリ上に取っておかれるようなイメージであってるでしょうか?
- 353 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:38:18.26 ]
- limits.hに最大桁数がマクロ定義されてるの?
- 354 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:42:33.87 ]
- >>348
>>>343 f()を呼び出すときに桁数決まってるじゃん。
- 355 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:49:09.72 ]
- じゃぁ桁数決まってない場合を書いてみろよ。
- 356 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:49:39.72 ]
- >>353
そんなこともわからんのか?
- 357 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:51:58.95 ]
- >352
なんか難しく考えてないか? コンパイラが文字列にはマクロを適用しない様にしてるってだけだろ。
- 358 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:53:12.66 ]
- >>355
だから桁数決まってないと無理ってんじゃん。
- 359 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 00:54:20.95 ]
- >356
なんだ、適当に反論したいだけか。
- 360 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:03:47.30 ]
- >358
元の要求は int n = 1234; なんだから問題ないだろ。
- 361 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:04:24.41 ]
- >>359
アホは黙ってろって。
- 362 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:13:03.12 ]
- 環境が書かれていない以上intの最大値(最大桁数)も決まっていない。
よって桁数が決まっていない。
- 363 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:14:25.96 ]
- つ アホは黙ってろって。>361
- 364 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:15:54.85 ]
- >>362
で、その場合、>>343だと何の問題があるわけ?
- 365 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:18:41.99 ]
- そいつと俺は違う人。
- 366 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:19:40.90 ]
- >>343 が桁数を決めずに処理できる良い例ってことだろ。
- 367 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:20:50.71 ]
- 桁数が決まってない = 値が決まる前
これを扱うのはこの四次元時空においては不可能。
- 368 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:23:15.96 ]
- >>360
なんだからintの上限に決まってるだろ、アホ。
- 369 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:24:02.86 ]
- おこちゃまは寝る時間だぞ
- 370 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:25:21.77 ]
- intの最大値と最大桁数は違うと思うの。たとえ計算で求めることが出来るとしても。
- 371 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:26:59.27 ]
- 最大値がわかれば桁数もわかるだろ。
どこの世界に住んでんだよお前は。
- 372 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:31:27.50 ]
- ( <. | l //
__ ヽ\,.ィ´ .ニニェ‐、// 〈〈〈〈 ヽ >、.く^┘ `) 〈 〈⊃ } // ´ , -‐-、 〈,ヘヘ ∩___∩ | | | l <丶`Д´> l | | ノ ヽ ! ! | l ヽ、__.ノ /./ / ● ● | / ,,・ ヽヽヘ、____,,..ィ,ン′ | ( _●_) ミ/, ’,∴ ・¨ `/`'‐--ヽ''´ 彡、 |∪| / 、・∵ ’ /、//|/  ̄ヽ / __ ヽノ / / // 異常 /\ 〉 (___) / / // TV/\ /
- 373 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 01:53:44.48 ]
- >371 子供は寝る時間だよ。
- 374 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 02:02:38.61 ]
- >371
アスペ乙
- 375 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 02:08:21.14 ]
- 低脳乙。
- 376 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 02:53:38.46 ]
- >>355
桁数の決まってない数字を出力するから、入力が終わっている状態を示してくれ
- 377 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:21:47.78 ]
- >>376
getchar()が-1を返したら終わり。
- 378 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:30:43.88 ]
- 1休さんかよw
屏風の虎w
- 379 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:32:30.81 ]
- >>377
ttp://ideone.com/2jocf
- 380 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:08:52.51 ]
- >>379
それだとnがINT_MAX越えたらAUTO。
- 381 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:12:14.92 ]
- INT_MAXを超える桁数ワロタ
- 382 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:15:28.48 ]
- 元々そういう話だろ、何言ってんだお前。
- 383 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:18:34.50 ]
- 元々そういう話ワロタ
元々はちげーだろw
- 384 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:24:14.62 ]
- INT_MAX桁以上の数を扱うのってどういうときだろう
天文学的な数字っていうのもせいぜい数十桁だろうに
- 385 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:30:02.86 ]
- そんな話だったのならとっくに終わってるってこと。
- 386 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:30:42.41 ]
- >>384
intが16bitならいくつかわかるか?
- 387 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:33:11.05 ]
- DXライブラリってどこでダウンロードすべき?
- 388 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:34:54.76 ]
- >>387
homepage2.nifty.com/natupaji/DxLib/
- 389 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:36:54.45 ]
- 有限でない数を内部で扱うのはむりだろ、それで結論?
>>386 3万ぐらいでしょ
- 390 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 13:59:09.72 ]
- >>375
- 391 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:02:45.24 ]
- >>388
dクス
- 392 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:15:34.07 ]
- ファイル数制限を外して、UTF-16LEに対応するためにここまでできた。関数の中身はこれから調べて作る。
typedef void _WOFILE; _WOFILE* _WOfopen( const wstring &fn , const wstring &mode){} int _WOfseek(_WOFILE *fp, long offset, int origin){} long _WOftell(_WOFILE *stream){} size_t _WOfread(void *buf, size_t size, size_t n, _WOFILE *fp){} size_t _WOfwrite(void *buf, size_t size, size_t n, _WOFILE *fp){} int _WOfclose(_WOFILE *fp){} int _WOfeof(_WOFILE *fp){} #define FILE _WOFILE #define _wfopen _WOfopen #define fseek _WOfseek #define ftell _WOftell #define fread _WOfread #define fwrite _WOfwrite #define fclose _WOfclose #define feof _WOfeof
- 393 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:34:29.35 ]
- C言語で無限大の数を扱うにはどうしたらいいですか?
- 394 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:34:36.77 ]
- >>392
ファイル数制限を超えてしまうような設計は考え直した方がいい
- 395 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:35:11.50 ]
- >>393
"無限大"って文字列でおk
- 396 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:45:29.90 ]
- >>393
n = 1/0;
- 397 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 14:48:32.05 ]
- C言語で桁数の不明な数を受け取って表示するにはどうしたらいいですか?
何桁になるかは全くわからず、制約もつけられませんが、受け取り終わってから表示したいです
- 398 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:00:25.04 ]
- どんな方法にせよ、上限は必要
- 399 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:08:57.78 ]
- 結論が出ました
- 400 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:09:10.99 ]
- >>397
まだやってるのかw
- 401 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:11:07.84 ]
- >>393
IEEE754に定義があるからそれ使え。大抵の実装で使える。
- 402 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:26:35.95 ]
- >>397
toro.2ch.net/test/read.cgi/tech/1313183984/22
- 403 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:40:01.02 ]
- 最近「頭悪い質問で釣ってみた」の投稿多いな。
- 404 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 15:40:58.52 ]
- 冬休みで暇なんだよ
面白いTV番組も無いし
- 405 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:27:10.92 ]
- >>404
これでも解いてろ judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0120 制限時間1秒以内 メモリ32MB 以内だからな
- 406 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:30:14.66 ]
- >>392
違ってたら悪いんだけど、先頭4KBの人?
- 407 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:32:02.05 ]
- >>405
AOJって問題が日本語で書かれてるからか、ここ最近よく見るようになったね。 海外サイトならお金くれたりするのにね。。
- 408 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:39:00.44 ]
- 日本語で書かれていても条件の見落としが多いのに
英語だと問題文何回も読み直さなきゃいかんのがしんどい
- 409 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:42:55.01 ]
- >>408
ちなみにAOJ、英語設定で解いていくと条件の翻訳不足で詰む問題がいくつかあるんだぜ
- 410 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:46:00.99 ]
- まちまちな大きさのロールケーキをたくさん作るケーキ屋さんなんて、ない。
- 411 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:19:35.70 ]
- >>407
マジで金くれるの? 未解決問題でもコンテストでもないのに?
- 412 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:25:20.52 ]
- メールで鍵を交換するソフトのことなんですが
質問いいでしょうか
- 413 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:26:50.35 ]
- スレタイとどう関係あるかを説明できたらな。
- 414 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:55:44.49 ]
- sscanfで、一度読んだところは飛ばして次から読むような方法って何かありますか?
char *str = "1 2 3 4"; while(sscanf(str,"%d",&i)) で4回ループして1〜4を読むような感じのことがしたいです
- 415 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:57:30.52 ]
- ポインタ(アドレス)を進める
- 416 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:58:24.26 ]
- >>414
%n ってのを調べればおk
- 417 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 17:59:45.84 ]
- 【フジテレビ】東日本大震災を体験した人々の証言を集め、
被害の実情を検証 『わ・す・れ・な・い〜東日本大震災・命の記録』 12月30日(金)午後6時〜午後8時54分放送 prtimes.jp/main/html/rd/p/000000251.000000084.html
- 418 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 18:05:49.40 ]
- >>415-416
%nで取得した分だけポインタを進めることでできました ありがとうございます
- 419 名前:デフォルトの名無しさん [2011/12/30(金) 19:29:27.09 ]
-
朝日新聞は一時期300人のネット工作員をかかえ、反日工作していた。 捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。 Domain Information: [ドメイン情報] a. [ドメイン名] ASAHI-NP.CO.JP e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ f. [組織名] 株式会社 朝日新聞社 −「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」− これはおそらく週刊誌さえ書けない。 「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ 09.3
- 420 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 20:30:59.82 ]
- ロールケーキの問題わからんなあ
普通に総当りしたら時間切れになるし どういう考え方で並びを求めるんだろう?
- 421 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 20:57:01.68 ]
- 凸凹になるようにする。
たとえば半径5と5をつなげると、距離20を使ってしまう。 凸凹だと節約出来る。
- 422 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 20:59:26.05 ]
- そうね、一番凸凹になる並びを求めて入るかどうか調べればいいんでないか。
つまり、隣同士の半径の差の合計を最小にする問題かな。
- 423 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 20:59:38.68 ]
- あ、最大ね。
- 424 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 21:19:52.33 ]
- うむ、一番凹凸になる並びとはどのように求めるのかわからん
- 425 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 21:34:47.35 ]
- てんさいです
【東京都渋谷区】 12/31(土) 年忘れしてはならない!紅白さくら祭 みんなで「韓流紅白」をぶっ飛ばせ! 年忘れしてはならない!紅白さくら祭 みんなで「韓流紅白」をぶっ飛ばせ! 12時00分 渋谷駅ハチ公前広場 「街頭演説」(〜13時30分) 13時30分 移動 14時00分 渋谷公会堂前 「街頭演説」(〜14時45分) 15時00分 代々木公園・NHK横「イベント広場」 「年忘れしてはならない!紅白桜祭」 抗議集会・コンサート・炊き出し等々 盛りだくさんでお送りします!(〜21時00分)
- 426 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 21:36:22.19 ]
- 誰も行かないだろ
- 427 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 00:04:10.36 ]
- 動的計画法にすればよいことが分かり
保持すべき結果も分かったつもりなのにacceptされない。。。 どこが悪いのか指摘ください ttp://ideone.com/uWKcO 数時間かけてできないなんて俺やばいなあ
- 428 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:00:44.90 ]
- >>427
何やってるのかさっぱり分からん 俺やべー
- 429 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:00:55.97 ]
- >>427
printf("%d %.5f¥n",width,min); ↑の行が余計とか?
- 430 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:27:09.54 ]
- >>427
while(sscanf(buf+offset,"%d%n",&cake[num],&oftmp) > 0){ ↑ケーキ12個の場合、cake[12]をアクセスしているみたいだが。
- 431 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:55:23.02 ]
- #include <stdio.h>
int main() { printf("円の面積計算機\n"); printf("半径を入力してください\n"); double pi,hankei,S; pi=3.1415926535; scanf("%f",&hankei); S=hankei*hankei*pi; printf("面積は%fです",S); return 0; } 結果が0.000000になるんだが
|

|