C言語なら、俺に聞け! <26>
■ このスレッドは過去ログ倉庫に格納されています
0001日下部?はつみみです
NGNG・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/
推薦図書/必読書のためのスレッド PART4
http://pc.2ch.net/test/read.cgi/tech/1022961238/l50
・前スレ
<25> http://pc.2ch.net/test/read.cgi/tech/1024918442/
<24> http://pc.2ch.net/test/read.cgi/tech/1024033400/
<23> http://pc.2ch.net/test/read.cgi/tech/1023024817/
コンパイラなどのリンクは>>2-3 あたり
void日下部氏の激動の半生は過去スレを参照
0153デフォルトの名無しさん
NGNGどうせ有効桁数6桁だからその部分と'0'をずらっと並べる。
"3.40282000000・・・・"と
0154初心者
NGNG殺すぞ!おい、543!この野郎邪魔すんな!
0155デフォルトの名無しさん
NGNGあなたはこのスレに誤爆しないで・・・
0156デフォルトの名無しさん
NGNG完全な整数は無理。
そこまでの精度は無い
0158543
NGNGもしかして「近似」の結果なんすか???
ちなみに上の
「3.40282e+038 」
の意味を教えていただければと。。。
初心者でスンマソーン。。。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG3.40282 * 10^38
0162543
NGNG本当にありがとうございます。
0163161
NGNG3Pハァハァ
0164初心者
NGNG無視すんな!
真面目ぶってもおもしろくねぇぞ!
笑わせろ!
0165161
NGNGおまえが笑わせてみろよ(プ
0166543
NGNG「素数か否か」
を判定するプログラムってかなり難しいと考えていいですかね?
0167543
NGNGおっきい?
0168初心者
NGNG0169543
NGNG0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG多倍長整数演算のライブラリとか、どっかで拾ってくればいいよ。
0172543
NGNG0173デフォルトの名無しさん
NGNG割れなきゃ素数。
どおしても大きな値を扱いたいならそれなりに工夫が要る
組込型じゃ扱えない。
0174543
NGNG例えばですね、
全ての1以上の自然数nに対して、
n^2と、(n+1)^2 の間には必ず素数が存在する(リーマン予想)
はnが何兆の時まで正しい事が確認されている、らしいんです。
うーむ。。。これをCで動かすには。。。グタ。
0175デフォルトの名無しさん
NGNG0176543
NGNG0177デフォルトの名無しさん
NGNG文字列を使って計算すれば?
たとえばunsigned shortは65535までしか扱えないけど
char num[10]なら"100000000"だぞ。
もちろん四則演算も自分で実装する。
plus(num1, num2);とか
あるいは大きな数字は複数のintで表すとか。
12345678=
1234*10000 + 5678だろ?
そうすればint num1 = 1234, num2 = 5678で表して
2で割るならおのおのを2で割れば?
0178543
NGNGアイデアは嬉しいっす。
ありがとうございます。
ただですね、a+bをcで割る時に、
a,b両方がcで割り切れなくとも、a+bがcで割れることが
あるんです(例 a=b=1,c=2)。
0179デフォルトの名無しさん
NGNGまぁいいか。
0180デフォルトの名無しさん
NGNGそのへんも、ちゃんと実装するのよ
0181543
NGNGありがとうございました。
一旦落ちて飯の支度をします。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGどうしてもCじゃないとだめっすか?
このスレに書いている以上、どうしてもCじゃないとだめなのかもしんないけど。
標準でないライブラリを使ってもいいのであれば、
ttp://www.score.is.tsukuba.ac.jp/~okuma/OpenMath/
なんてどうだろう、って使ったことないんだけども。
bignumのある処理系使うと手軽なんだけど。
scheme (たいていbignum持ってる) とか、Rubyとか(この名前出すと厨房よってくるか?)。
でも処理の規模を考えるとこの辺の処理系使うのは速度に問題あり、かな。
0185543
NGNGええとですね、
俺はCの勉強も兼ねてるんです。
もう直ぐ三十路なのに職も無く、ぷらぷらするのも
なんなので、C(VC++)を勉強してそれ関係の仕事にと。。。
遅い?
0186デフォルトの名無しさん
NGNGどういう方面に就職希望かわからんけど、
素数の計算とかはあんまり深入りしないで、違うことやったほうが
いいと思う。
0187543
NGNGサンクス。
当方VBAはそこそこ使えますが、それ以外のプログラムは
html言語をちょろっと出来る程度なので凄く不安。。。
はぁ。。。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGなるほど、そういうことね。
おれも>>186の言うことに半分賛成。
でもこういう風に自分で課題を設定して何かやろうとするのはいいことだと思うよ。
ただ、今回の課題は初心者にはレベルが高すぎるような気がする。
やるとすると、
struct bignum {
unsigned int *buf;
size_t len;
};
みたいな構造体を使ってごにょごにょすることになるんだろうけど、
メモリ管理とかややこしい問題が絡んでくるんでかなりきついと思う。
どういった本を読んでます? (この話題も荒れるかも)
とにかくCに関してはクズ本が99%を占めてるんで、
下手な本で勉強するとロクなことにならん。
おれが今まで読んだ中では Practical C というオライリーから出てる本がいいかな。
入門書はそんなに読んでないけど。他にちゃんと読んだつったらK&Rくらいだからなあ。
ttp://www.oreilly.co.jp/BOOK/cpra/
これね。岩谷の粗悪な翻訳も以前出てたのでそれを掴まされないように注意してね。
0190デフォルトの名無しさん
NGNG遅くないよ。
0191デフォルトの名無しさん
NGNGバリバリ稼いでいる奴がいるよ。
最近はさすがに疲れたのか、学生にアルバイトさせているが。
0192543
NGNG今手元にある本は、
「新C++言語入門 ビギナー編」 by 林晴比古
「新VisualC++6.0入門」 by ヾ
です。
先にも述べたとおり、これまで組んできた事のある言語は
HTMLとVBA。
VBAのほうは(マクロを組むと言うのかな)、ちゃんと金融会社
に勤務中に、ある計算をするためにプログラムを組んでいました
(moduleを沢山使いました)。
あとUNIXも使った事はあるんです。
手元にある本は
「UNIX プログラミング環境」 by kernighan and Rob.Pike
(石田 晴久訳)
です。
0193デフォルトの名無しさん
NGNG速く身に付くよ。
0194デフォルトの名無しさん
NGNG組めるらしいのですが、 具体的にどのくらい細かくまでプログラミングできるのでしょうか
0195デフォルトの名無しさん
NGNG細かさの意味がわからんが、大して変わらんかと
0196こうやって細切れに出来るって事かな
NGNGint
main
(
int
argc
,
char
*
*
argv
)
{
printf
(
"Hello "
"World.\n"
)
;
return
0
;
}
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGどーい。この分野ほど、知っているだけではなにもできない分野はないね。
なんでもひたすら試してみるといいよね。
0199デフォルトの名無しさん
NGNGrandomize
って使ってる?
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGfree
って使ってる?
0202デフォルトの名無しさん
NGNGって最近使ってる?
0203デフォルトの名無しさん
NGNGって知ってる?
0204199
NGNG020533
NGNG>34 36
ありがとう。
0206543
NGNG再び543っす。
仮に面接で、
「C言語できますか?」
ってきかれたら、俺のレベルで、
「簡単なプログラムなら出来ます」
って答えて問題無いすかね???
0207543
NGNGここの543でした。
すみません。。。
0208デフォルトの名無しさん
NGNG「簡単なプログラムなら出来ます」
なんて回答をしている時点で
相手には君のレベルが分かっちゃうからOK!
0209543
NGNGよくわからんです(笑)
0210デフォルトの名無しさん
NGNG具体的に作ったプログラムを言った方がいいのでは?
0211543
NGNG最新のものだと人に言えないかも。。。
http://pc.2ch.net/test/read.cgi/tech/1023530449/
C言語二日目。。。
0212デフォルトの名無しさん
NGNG0213543
NGNG0214デフォルトの名無しさん
NGNG0215543
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGプログラムは細かく関数化したほうがいいですか?
フローチャートを書くことは勉強になりますか?
フローチャートって楽しいですか?
おねがいしまする
0218デフォルトの名無しさん
NGNG・物による。いろんな分割法あり
・まぁ、いい加減に書きまくるよりはイイかと
・俺は嫌い
0219デフォルトの名無しさん
NGNG厳密にはCには二次元配列はないと思った。
で、たとえば、
int ary[10][10];
なんて配列があったとして、要素数を求めるのは
sizeof(ary) / sizeof(ary[0][0])
だろうねえ。
0220デフォルトの名無しさん
NGNGありがとうございました
ググルで 関数 分割法で調べてみまする
0221デフォルトの名無しさん
NGNGありがとうございました。
C++にはあるんでしょうか・・・・?
でもそれはスレ違いになりそうなのでC++スレに逝ってきます
0222デフォルトの名無しさん
NGNGフローチャートは百害あって一利なしだと思う。
あっちゃこっちゃ飛ぶgotoの乱用みたいなチャートになりがちだし。
PADとかHCP(だっけか?)のほうがましだけど、
こういうのって擬似コード使うほうがよっぽどいいと思ってる。
0223217
NGNGやっぱり良くないですよね…
0224デフォルトの名無しさん
NGNGあっちでレスしてみたよ。584ね。
で、このレベルでプログラム書けます、というのは、うーん。
嘘じゃないけどもね(ニガワラ
まあでも仕事でやるとスキルがむちゃくちゃあがるからね。
独習よりははるかにいいと思う。
問題は、採ってくれるところがあるかどうかだけども(w
0225217
NGNG関数なんですが
0226543
NGNGどうもです。
あっちのレス読んできました。
ありがとうございます。
とりあえず俺としては、
「プログラムを組む上で最も基本的なことが抑えられていて、
且つ余計な事をしていないか?」
ということが問題だったのです。
といいつつ、気になるので質問させてください。
sm = ((a + b) * (b - a + 1)) / 2;
のほうが計算が速くなるとかっていうメリットはあるのでしょうか?
初心者ですんません。
0227デフォルトの名無しさん
NGNGうーん。まあVC++よりはCの話題だからこっちのスレでいいか(w
で、一般にループまわすよりは速くなります。
ただし欠点もあって、forでまわすよりもオーバーフローしやすいという問題があります。
掛け算してるところでね。
0228デフォルトの名無しさん
NGNG値が4つあって、その値を大きい順に並べて、
その順番を数値に当てはめて返すという
関数なんですが
例
A=2 B=5 C=4 D=1
だったら
cbadなので5を返す
というのなんですが、
ifとかつかわずに可能でしょうか。
if使うとものすごく長くなってしまったので
おながいします
0229デフォルトの名無しさん
NGNGわからん…
>例
>A=2 B=5 C=4 D=1
>だったら
>cbadなので5を返す
最大値を返すってこと?
0230デフォルトの名無しさん
NGNGポカーン
0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG今世紀(はじまって間もないけど)最大の難問だ
何が言いたいのか全くわからん・・・
0233デフォルトの名無しさん
NGNG宿題?
A, B, C, Dが0未満じゃないと仮定して、こんな感じかな。
ただし、試してないよ。
#define numitem(a) (sizeof(a) / sizeof((a)[0]))
int max(a, b) {
return (a > b) ? a : b;
}
int foo(a, b, c, d) {
int i, m = 0, ary[4] = {a, b, c, d};
for (i = 0; i < numitem(ary); i++) {
m = max(m, ary[i]);
}
return m;
}
0234デフォルトの名無しさん
NGNG0235233
NGNG0236デフォルトの名無しさん
NGNGユークリッドの互除法でぐぐってみれ。
0237228
NGNG例えば
abcdという順番で大きければ1を返す
bacdならば2を返す
でbcadなので5を返すという風にしたいのです。
この数字はなんでもよいです…
何かしら返り血から順番がわかるようにしたいのです
おねがいします(;_;)
0238デフォルトの名無しさん
NGNG楕円曲線法でぐぐってみれ。
0239228
NGNGabcdを大きい順に変数M1からM4に格納して
M1が何なら どの値を返すという風に
IFを羅列しようと考えているのですが…
すいません
0240デフォルトの名無しさん
NGNGわかた〜よ!!
abcdの順列に番号をつけておいて
大きい順に並べ替えたものに対応する番号を返すんだね!!
0241228
NGNG配送です。
おめがいします
すいません
0242デフォルトの名無しさん
NGNGreturn (srt[0]*10000 + srt[1]*1000 + srt[2]*100 +srt[3]);
0243228
NGNG誤植ばっかりですいません2ch怖いので…
それってひとつの値が10を超えても大丈夫ですか?
引数の値は不定値で桁数がわからないのです。
0244デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int A=2, B=5,C=4, D=1;
int values[] = {A, B, C, D };
int result = 0;
for( int j = 0; j<4; ++j ) // j 番目に大きい数字を見つけて result に入れる
{
int min = 0;
int minIndex = -1;
for( int i = 0; i<4; ++i )
{
if ( values[i]>min )
{
minIndex = i;
min = values[i];
}
}
result |= (minIndex+10)<<(j*4);
values[minIndex] = 0;
}
printf( "%X\n", result );
return 0;
}
0245デフォルトの名無しさん
NGNG0246228
NGNGおおすごい
なるほど、
たしかにそうなんだな…
abcdを数字にすれば返せるし
ありがとうございました
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGここはどう?
http://www.mars.dti.ne.jp/~torao/program/appendix/japanese.html
0250デフォルトの名無しさん
NGNGと書くのですか?
0251デフォルトの名無しさん
NGNG#define NULL 0と書かれている場合もあるよ。
それとセミコロンはいらない。
0252デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています