- 1 名前:デフォルトの名無しさん [2012/01/13(金) 22:05:06.14 ]
- C言語の*入門者*向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 94 toro.2ch.net/test/read.cgi/tech/1324648274/ ★過去スレ 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++の宿題片付けます 155代目 toro.2ch.net/test/read.cgi/tech/1325685876/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
- 467 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:59:17.25 ]
- どこまでもうぜえなコイツ
- 468 名前: ◆QZaw55cn4c mailto:sage [2012/01/21(土) 00:46:36.37 ]
- >>467
相手にするなカス
- 469 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:23:37.04 ]
- 466 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
468 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん これが正しい対処法
- 470 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:41:15.32 ]
- 469 名前:あぼ〜ん[レスあぼ〜ん] 投稿日:あぼ〜ん
- 471 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:48:10.53 ]
- >>469
透明にしたほうがよくね?
- 472 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:50:55.03 ]
- このスレを開かないのが一番いいと思う。
- 473 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:35:27.45 ]
- いや、にちゃんなんか見ないのが・・・…...
- 474 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:49:08.28 ]
- 死ねばいいと思うよ・
- 475 名前:uy mailto:sage [2012/01/21(土) 13:08:01.48 ]
- 生まれてきてごめんなさい
- 476 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 14:15:20.40 ]
- あやまる前にやる事があるんじゃないか?
- 477 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:40:05.55 ]
- _____
.ni 7 / \ ご冥福をお祈りします l^l | | l ,/) / /・\ /・\ \ .n ', U ! レ' / |  ̄ ̄  ̄ ̄ | l^l.| | /) / 〈 | (_人_) | | U レ'//) ヽっ \ | / ノ / /´ ̄ ̄ ノ \_| \rニ | `ヽ l
- 478 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:49:56.91 ]
- 文字列を読み込んで判定すんのってどうやるのが1番いいんですか?
(厨房にわかるレベルでお願いします)
- 479 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:52:03.71 ]
- >>478
国語の勉強すりゃいい
- 480 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:52:06.95 ]
- 「判定」について
↓
- 481 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 15:55:40.81 ]
- 文字列を読み込んで?
- 482 名前:馬鹿で中2病な厨房 mailto:sage [2012/01/21(土) 15:58:40.18 ]
- 要するにriverと書き込むとmountainと出力されるプログラムが書きたいのです
- 483 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:08:44.71 ]
- >>482
strcmp()とか普通の方法じゃご不満なんですかね。 どうご不満とか書かないと、回答もないですよ。
- 484 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:49:03.21 ]
- >>482
#include <stdio.h> #include <string.h> void main(){ char buf[20],*p; fgets(buf,20,stdin); if((p=strchr(buf,'\n'))!=NULL)*p='\0'; if(strcmp("river",buf)==0)puts("mountain"); }
- 485 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:51:13.88 ]
- 答えられる頭のない奴は黙ってたほうがいいよ
- 486 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 16:55:17.01 ]
- 答えられない人はだれも発言してないように見えるけど。
- 487 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:07:57.40 ]
- >>486
>>485は答えられないんじゃないかな
- 488 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:08:06.18 ]
- 一人だけいるよ >>485
- 489 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:08:36.76 ]
- うぉっ、かぶった ... orz
- 490 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 17:50:37.51 ]
- 答えられない>>485は黙ってたほうがいいよ
- 491 名前:485 mailto:sage [2012/01/21(土) 18:07:48.60 ]
- 雑魚共がごちゃごちゃうっせーな
俺はプロだから答えられるに決まってるだろ
- 492 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 19:10:09.97 ]
- じゃあ答えろよ
何をと訊かれても知らないが
- 493 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 21:36:33.96 ]
- >>491何のプロなん?
- 494 名前:485 mailto:sage [2012/01/21(土) 21:52:58.18 ]
- >>492
何を?
- 495 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:03:31.36 ]
- >>494何のプロなん?
- 496 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:24:45.54 ]
- >>482 に俺はプロだから答えられるって言うのもプロっぽくないよな。
- 497 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:07:06.97 ]
- ああ成る程、プログラマ未満でプロか。
- 498 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:18:27.22 ]
- 何でID無いんだよ
- 499 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:20:27.02 ]
- QZが自演できるようにだろ。
- 500 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:30:12.37 ]
- ID化必要だよな
- 501 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 02:03:16.11 ]
- C言語にsprintfがあることを知った時、感動したな
- 502 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 04:35:58.10 ]
- >>501
昨日の俺だわw strcatとか使う意味ないわwww
- 503 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 08:57:59.99 ]
- sprintf使えるよな
win32apiでMessageBoxで変数の値を出力したいときとかも重宝する
- 504 名前:馬鹿で中2病な厨房 mailto:sage [2012/01/22(日) 14:34:55.78 ]
- >>484
ありがとうございます
- 505 名前:デフォルトの名無しさん [2012/01/22(日) 16:15:06.90 ]
- awabi.2ch.net/test/read.cgi/poverty/1327050821/3
- 506 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:09:40.27 ]
- >>444です。
n = 10 * n + (s[i] - '0'); これの意味がわかりました。 ヒントを下さった>>448さん、ありがとうございました。 これはK&Rに載っているatoi関数、 int atoi(char s[]) { int i, n; n = 0; for (i = 0; s[i] >= '0' && s[i] <= '9'; i++) n = 10 * n + (s[i] - '0'); return n; } の一部分でした。
- 507 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:10:41.90 ]
- K&Rに習って、自分でもatoi関数を書いてみました。
#include <stdlib.h> int myatoi(char s[]){ char *p = s; int i, j, n, length, len, sum; int *ptr; length = 0; while (*p++) length++; ptr = calloc(length, sizeof(int)); len = length; i = 0; while (s[i] >= 0x30 && s[i] <= 0x39) { ptr[i] = s[i] - 0x30; n = 1; for (j = 0; j < length - 1; j++) n *= 10; ptr[i] *= n; i++; length--; } sum = 0; for (i = 0; i < len; i++) sum += ptr[i]; free(ptr); return sum; } ------------------------------------------- n = 10 * n + (s[i] - '0'); この式ってすごいうまいことやってるんですね
- 508 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 18:56:12.52 ]
- #include<stdio.h>
#define NUMBER 5 int main(void) { int i; int tensu[NUMBER]={0}; int b[NUMBER]={0}; puts("please put an points of your students"); for(i=0;i<NUMBER;i++) { printf("Student No.%d,Student point:",i+1); scanf("%d",tensu[i]); if(tensu[i]>=60) b[i]=tensu[i]; } puts("The success students are....."); for(i=0;i<NUMBER;i++) { printf("student No.%d:%d points.\n",i+1,b[i]); } return 0; } コンパイルできるんですがどうも全て実行できません 16行目がいけないでしょうか?
- 509 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:05:41.91 ]
- scanf("%d",&tensu[i]);
- 510 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 19:14:23.06 ]
- \(^o^)/
ありがとうございます 初歩的なミスですね。。。
- 511 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 21:51:57.76 ]
-
就活中 (p)livedoor.blogimg.jp/jin115/imgs/3/1/31a6f8e6.jpg 就職後 (p)livedoor.blogimg.jp/jin115/imgs/2/b/2b790359.jpg 街の人(やらせ業者)募集中です
- 512 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 22:58:40.48 ]
- 平方根を求める関数sqrt(double x)は
「math.h」をインクルードすることで使えるようになりますが このヘッダ内を文字列「sqrt」で検索しても、よくわかってないせいもありますが それらしい計算式が見当たりません sqrt関数はどのようにして、平方根を求めてるのでしょうか? 数学的な計算式は理解しています math.h内でどのように処理されてるのか知りたかったので、聞いてみました win7でVC2010を使用しています
- 513 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:15:17.23 ]
- プログラム自体はふつう、objやlib、DLLなどにあります
ヘッダは宣言のみです
- 514 名前:デフォルトの名無しさん mailto:sage [2012/01/22(日) 23:21:47.22 ]
- >>ヘッダは宣言のみです
勘違いしてました ありがとうございます
- 515 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:00:27.01 ]
- 本来は使用する側が、関数が組み込まれているライブラリを指定するように作られてるが
標準関数や基本的な関数ははじめから組み込むようにコンパイラやIDEが指定してくれている。 このオマケのような仕組みのために間違えたんだろう。
- 516 名前:デフォルトの名無しさん [2012/01/23(月) 01:32:34.59 ]
- C言語で二点の緯度経度から距離を求めることができますか。
- 517 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:36:10.21 ]
- できない理由はありません。
- 518 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:37:30.57 ]
- >>512
これはGNU libcのものだが、 とにかく高速である事が求められる数値計算系の実装は パッと見て何をやっているのかさっぱり分からないことも多いw sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/ieee754/dbl-64/e_sqrt.c
- 519 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:38:23.05 ]
- ちゃんと考えると難しいな、高低は別としても
- 520 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:39:17.77 ]
- >>516
できるよ 地球の中心を原点として2点の座標のなす角を 内積(内積が0に近いときは外積)から求めて半径を掛ければおk
- 521 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:42:00.26 ]
- 地球は楕円だから、その分を考慮した
やや大仰でめんどくさい式があったはず
- 522 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:43:42.87 ]
- どこまでの精度が必要か明確にしないとな
- 523 名前:デフォルトの名無しさん [2012/01/23(月) 01:44:06.59 ]
- >>517
ありがとうございます。 どのように行えばいいのでしょうか。 >>520 ありがとうございます。 むずかしそうな話ですね^^; 今探してたら www2s.biglobe.ne.jp/~satosi/gmap/map_length.html こういうのがあったんですが、これで可能でしょうか。
- 524 名前:デフォルトの名無しさん [2012/01/23(月) 01:45:31.89 ]
- >>521
ありがとうございます。 ヒュベニの公式みたいなやつでしょうか。 >>522 制度は一応、mぐらいあれば大丈夫です。
- 525 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:49:23.81 ]
- mまで必要ならもっと正確な計算が必要だな
その計算じゃ無理だし地形データと海抜情報も必要だろう
- 526 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 01:56:21.45 ]
- 緯度経度のほか高さも必要だな。
東京タワー一階と、展望台では移動距離違うしな。直線も。
- 527 名前:デフォルトの名無しさん [2012/01/23(月) 02:18:43.44 ]
- >>525
ありがとうございます。 そうですか。 結構複雑な式になるんですかね^^; >>526 ありがとうございます。 高さもですか。。。 高さは平らとして考えていました。
- 528 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 02:30:51.20 ]
- そもそもの目的を言え。
m精度がいるのに高さ無視とか、どうせ大した意味もないんだろうけど。
- 529 名前:デフォルトの名無しさん [2012/01/23(月) 02:40:10.74 ]
- >>528
はい。 2点の距離を図り速さで割って そこまでにかかる時間を求めたいのです。
- 530 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 02:44:24.19 ]
- だったら道路情報じゃねえか
話にならんわ
- 531 名前:531 mailto:sage [2012/01/23(月) 03:43:29.63 ]
- 系列データの始点座標(x,y) 移動方向dir ステップ数stepsといった
入力されたデータをテキスト形式でファイルへ保存しないといけないのですが ファイルには-1076994648 2516192 8 1536358 といったわけの分からない数字が保存されます どうすればいいでしょうか? codepad.org/T7yR4vHH
- 532 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 03:49:24.86 ]
- x,y,dir,stepsに適切なデータを代入してやればいい
- 533 名前:531 mailto:sage [2012/01/23(月) 04:11:49.03 ]
- >>532 すいません具体的にはどういうことでしょうか?
- 534 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 04:20:00.15 ]
- 課題説明に記載されている書式なんてわからんから答えようが無い
- 535 名前:531 mailto:sage [2012/01/23(月) 04:36:55.59 ]
- >>534 すいません課題説明はこちらです ideone.com/eZmWI
ファイルの入出力以外は問題ないようです
- 536 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 04:43:16.68 ]
- めんどくさいからよく読んでないけど
save_textfil(int startpos[][2], int movedir[][MAXMOVE + 1], int movesteps[][MAXMOVE + 1]) のように渡してそれらを順次出力するだけでは?
- 537 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 08:13:05.15 ]
- まぁ、宿題スレに行け、と。
- 538 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 13:15:54.94 ]
- 宿題スレでは干されていました。
- 539 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:02:51.92 ]
- じゃ、諦めろ。
- 540 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:16:49.74 ]
- #include<stdio.h>
double asd(double dx,int no) { int i; double tmp = 1.0; for(i=1;i<=no;i++) tmp *= dx; return (tmp); } int main(void) { int n; double x=0.0; printf("No.1:"); scanf("%f",&x); printf("No.2:"); scanf("%d",&n); printf("answer=%.2f",asd(x,n)); return 0; } 実行結果が No.1:5.0 No.2:2 answer=inf となります。なぜでしょう?
- 541 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:18:01.17 ]
- >>540
%f だから
- 542 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:20:40.25 ]
- #include<stdio.h>
double asd(double dx,int no) { int i; double tmp = 1.0; for(i=1;i<=no;i++) tmp *= dx; return (tmp); } int main(void) { int n; double x; printf("No.1:"); scanf("%4.1f",&x); printf("No.2:"); scanf("%d",&n); printf("answer=%.2f",asd(x,n)); return 0; } 実行結果が No.1:5.0 No.2:answer=inf となりました\(^o^)/
- 543 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:25:04.22 ]
- >>542
%4.1f だから
- 544 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 20:27:58.60 ]
- >>543
lですかぁ ありがとうございます 本には1とかいてあるようにみえたので・・・
- 545 名前:デフォルトの名無しさん [2012/01/24(火) 20:07:37.80 ]
- C言語を知っていれば、なんでもできると思う人います?
- 546 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:10:33.78 ]
- そう思うやつはC言語を理解してない。
- 547 名前:デフォルトの名無しさん [2012/01/24(火) 20:32:53.92 ]
- 結局、基本はC言語だよね
- 548 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:37:02.06 ]
- >>545
君の言う「なんでも」というのが「妹を作りたい」とか 「ヨガファイアを身に付けたい」とか云うことなんだとすれば、 そんなことを思う人はキチガイだ。
- 549 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:37:21.10 ]
- >>545
はい
- 550 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:46:11.59 ]
- C言語を始めたいと思ったんだけど、「Borland C++ Compiler 5.5」の設定ができない…
ilink32.cfg は拡張子変更できたんだけどbcc32.cfg が .txtファイルのままになってしまう
- 551 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:50:19.84 ]
- >>548
自己紹介乙。
- 552 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:53:55.18 ]
- >>550
setbccでググるといいかも
- 553 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 20:56:02.76 ]
- >>545
Cを知っていれば他の言語は簡単、みたいな意味だったら20年くらい前はよくそんなこと言われてたなって感じ。
- 554 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:00:30.49 ]
- 「妹を作りたい」、「ヨガファイアを身に付けたい」と言う理由で
C言語を学ぼうと思った人がいるかも知れない。
- 555 名前:デフォルトの名無しさん [2012/01/24(火) 21:02:51.91 ]
- 同一翻訳内で同じ文字列は、
同じ領域に割り当てられると 規格で保証されていますか? char *amanojaku(char *str) { return str == "YES" ? "NO" : "YES"; } char *say(char *str) { printf("%s,", str); return str; } main() { // VCでは期待通り、"YES,NO,YES"と出力された say(amanojaku(say(amanojaku(say(amanojaku("NO")))))); }
- 556 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:07:14.39 ]
- >>555
"YES,NO,YES,"になると思うけど 保証されないはず
- 557 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:07:31.46 ]
- >>555
× str == "YES" ?
- 558 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:10:04.14 ]
- >>547
違うな。 ゴールに近い言語を使うのが正解。 VBで目的が達成できるものに、Cを敢えて使う理由なんか、無い
- 559 名前:デフォルトの名無しさん [2012/01/24(火) 21:12:47.63 ]
- char型の数字を配列にいれたいんですけど
どうすればいいんですか? char a[10]=
- 560 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:13:58.37 ]
- >>558
大概excelで出来ちゃうので、プログラムくむ必要がなくなる。
- 561 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:14:11.05 ]
- >>555
コンパイラオプションによる。
- 562 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:14:35.89 ]
- >>559
char a[10] = { 1, 2, 3 };
- 563 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:15:04.56 ]
- 数値じゃなく数字なら
char a[10] = { '1'. '2'. '3' };
- 564 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:15:26.43 ]
- >>555
コンパイラ依存だったような。 >>557 この話でそこに突っ込みを?
- 565 名前:デフォルトの名無しさん [2012/01/24(火) 21:22:10.34 ]
- a3b4と入力したらaaabbbbと出力するようにしたいんですが
できません。 教えてくれませんか?
- 566 名前:555 mailto:sage [2012/01/24(火) 21:24:14.11 ]
- >>556
やっぱり保証はされないですか 残念です。 >>561 具体的にこのオプションがあればOKとかあれば 注意書きして、この方法を使ってみたいのですが >>564 大抵のコンパイラならOKそうな気がするんですけどね
- 567 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 21:30:16.43 ]
- >>565
ab3と入力したら ・abbb ・aaabbb どっちになるの? あと0の扱いは? a01bb2 とかの文字列はどう解釈すんの? プログラム以前の問題だ
|

|