C言語なら、俺に聞け! <32>
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001SHOW-A孫
NGNGいろいろな言語を極めたけど、一番漏れになじんだのはCかな。
Cのことなら父をも超えた。疑問な点があったら漏れに聞け。
便所とメシ食ってる時以外は暇だが、いちいちFAQに載った質問に応えるほど暇じゃないよ。
課題丸投げなら別スレにいってね。あと、至急父に仕事を与えてやってください。
コンパイラ、過去ログなどのリンクは>>2-5 あたり
0809デフォルトの名無しさん
NGNG俺も威張れやせんが、厨房英語も程々にしとけ
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGWinMainの方がよくない?
つーかmain関数を使っているなら,分割していないってこと?
DOS?
0814デフォルトの名無しさん
NGNGUNIX系OSは考慮外ですか…(涙
0815デフォルトの名無しさん
NGNG( ´,_ゝ`) プッ
0816813
NGNG0817デフォルトの名無しさん
NGNG( ´,_ゝ`) プッ
0818名無しさん@Emacs
NGNG>>815
厨学生はそっとしておいてあげなよ。
0819デフォルトの名無しさん
NGNGやっやめろ、はらわたがよじれる〜。
0820813
NGNG0821デフォルトの名無しさん
NGNGまあゆっくりしてけ
0822デフォルトの名無しさん
NGNGまあゆっくり氏んでいけ
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG写真のように出力することです。
いまCodeWarrior7をMacで使っていて、簡単な例プログラムを試しに
動かそうとしたら、"graph.h"が見つかりません と出てしまいます。
Cの問題というよりCodeWarriorの問題のような気もするんですが全く分からず
困っています。誰か分かる方教えて下さい。おながいします。
0826デフォルトの名無しさん
NGNGグラフィック用の関数、全部置き換えて、
#include <graph.h>
を外せ。
0827デフォルトの名無しさん
NGNGそもそも、その例プログラムは Mac用なのか?
0828825
NGNGとりあえず例プログラムはこんな感じです。
#include <stdio.h>
#include <graph.h>
void main ()
{
_setvideomode(_98RESCOLOR);
_setcolor(6);
_setpixel(100,100);
getchar();
_clearscreen(_GCLEARGRAPH);
_setvideomode(_DEFAULTMODE);
}
グラフィック用の関数を全部置き換えるというのはどのようにすれば
いいんでしょうか?何に置き換えればいいのかがわからないんですが・・・
Mac用でないとだめなんですか?CodeWarrior上でつくってCodeWarrior上で
動かしているんですが。
0829デフォルトの名無しさん
NGNGそれはPC98用のTurboCのコードなんじゃないの?
0830825
NGNG本屋で調べたとき、graph.hが普通にでてきていたので、Cの標準的な
ものかなー?と思ってしまったわけです。
CodeWarriorに似たようなgraphとかつくようなものをハードディスクから
探したんですが、それらしいものが見当たらなくて分かりません。
CD-ROM上のマニュアルにも見つからない状態です。
0831デフォルトの名無しさん
NGNGMacのサンプルを探してください、私は林檎はサパーリ
0832デフォルトの名無しさん
NGNGディレクトリを扱うための関数すらないくらいだし。
汎用言語だからしかたないか。
0833デフォルトの名無しさん
NGNGいまどきQuickCの本が売ってあるのか…
ちょっとビクーリ。
Mac&CodeWarrior用の本を見つけて、それ買ってくださいです。
0834825
NGNGという本です。
昨日、八重洲ブックセンターに行ってMacとCodeWarriorの本を探したんですが
1冊出てきたものでも、欲しい内容がありませんでした。
0835デフォルトの名無しさん
NGNGそろそろスレ違いだから他スレに行ってね。
なければ立てればいい。
0836デフォルトの名無しさん
NGNGそもそも、Mac(OS9まで)では標準入出力という概念すらない世界なの
で(CodeWarriorにはそれをエミュレートするライブラリがあるけど)、
DOS/UNIX系の書籍はほぼ役に立たないと思っていいです。
0837825
NGNG0838ななしさん♪
NGNGhttp://www8.big.or.jp/~000/CyberSyndrome/rsa/rsa2.html
ここを見て、Cでプログラム組んでたのですが、
1=de mod φ(n)となるd(秘密指数)を計算する
この部分でつまずいています。。。
eとφ(n)はもう知っているのですが、dを出す方法がわかりません。
どなたか教えてくださいなヽ(゚▽、゚)ノ
0839デフォルトの名無しさん
NGNG理解する必要はありません)を用いて秘密指数dを計算します。 つまり,
e^-1=d mod φ(n) のdを計算して求めます。
d=3988493
となります。つまり,秘密鍵(d,n)は(3988493,5621977)となります。
0840マイクロシステムズ
NGNG0841839
NGNGd=3988493
となります。つまり,秘密鍵(d,n)は(3988493,5621977)となります。
これよく考えると無理じゃないですか?
e^-1って1/eで、eは6万くらいだから、すごい小さいかずになっちゃいますよ・・・
0842デフォルトの名無しさん
NGNG0843839
NGNGなんなんだよあんたw>842
0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850848
NGNG0851デフォルトの名無しさん
NGNG関数内にstaticを作るとマルチスレッドに対応できない
0852デフォルトの名無しさん
NGNGマルチスレッドまだ勉強してないので,そん時は手直しするかな。他のところでも使ってるし。
0853デフォルトの名無しさん
NGNGそれは迷信。
すべてのケースで使えないわけでもない
0854デフォルトの名無しさん
NGNGというか、再帰関数ならマルチスレッドでなくても
staticが問題になる可能性があることはわかってるのか?
0855デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNGそれでもあかんですか?
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGなにが死体んだ?
0860デフォルトの名無しさん
NGNG目的を果たせていれば別にそれでいいんじゃないの?
0861デフォルトの名無しさん
NGNGどういうこと?
0862デフォルトの名無しさん
NGNGこれを見る限り、bsearchは必ずバイナリサーチで実装することとなっているみたいですが、
規格上もそうなっていますか?
整列した配列から探索するのでバイナリサーチ以外の探索法を使う人はいないと思いますが。
0863デフォルトの名無しさん
NGNG再帰の場合の「1回だけ」とstatic変数の意味は
ちゃんと分かって実装しているんだよな?
もしそうだとしたら、シングルスレッドでは
別に問題ないぞ、ボケナス。
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGISO/IEC 9899には"binary search"という言葉は出てこない。
0867デフォルトの名無しさん
NGNGまた、出来るとして、CとC++で方法/挙動が違ったりしますか?
0868デフォルトの名無しさん
NGNGできます。しません。
0869デフォルトの名無しさん
NGNGてきとーにやりまくれ
int (*func)(int hage);
int hogera( int hage) { printf( "gora %d\n", hage); return 0; }
int gora = 100;
func = hogera;
func( gora);
C/C++ を混ぜるときは extern "C" を忘れずに
0870デフォルトの名無しさん
NGNG??? >>518 と何が違うんだ ?
0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNGスタックエリアは空になるよ。
再起 = 再起動の略だろ ?
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGn=0;
m=n+++n;
printf("%d",m);
で、0が出力されました。
n=0;
m=(n++)+n;
printf("%d",m);
で、0が出力されました。
n=0;
m=n+(++n);
printf("%d",m);
で、2が出力されました。
0876デフォルトの名無しさん
NGNGあ、というか、++と+の優先順位から考えたら当然のことで
聞くまでもないしましてや実験するまでもなかったですね。
ほんとうに全く意味の無い実験をさせてしまいすみません。
0877デフォルトの名無しさん
NGNGお前等、いいかげん C-FAQ ぐらい読めよ。
ttp://www.catnet.ne.jp/kouno/c_faq/c3.html#0
結果は、「未定義」だぞ。
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGあの・・・わかってますか?
i++が同一行内の複数の式にあれば その動作は未定ですけど
同一の式内に複数あるときはその動作は一意に決定されますよ。
0880デフォルトの名無しさん
NGNGお前が読み直せよ。
未定義なのは
n = n+++n;
だっつーの
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG>>882は2ch(以下略
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNGつまり、
m = n++ + n
↑(1) ↑(2)
(1)と(2)のどちらが先に評価されるかは処理系依存?なわけで、
(1)が先なら1
(2)が先なら0
がmに代入されるのでは?
同様に、
m = n + (++n)
↑(1) ↑(2)
の場合、
(1)が先なら1
(2)が先なら2
がmに代入されるはず。
で、これは「未定義」や「不定」ではないけど
「処理系定義」なのでは?
コンパイルオプションによっても変わりそうだし。
printf("%d %d", ++i, --i)の結果が確定できないのと同じだと思うけど。
0885デフォルトの名無しさん
NGNG右からスタックにつまれる。
だけど、これは必ずしも「右の引数(--i)から評価される」を意味するわけではないので。
0886デフォルトの名無しさん
NGNG↑(1) ↑(2)
(1)と(2)のどちらが先に評価されるかは処理系依存?なわけで、
(1)が先なら1
どちらが先に評価されようとも、式の値はそれぞれnである。
後置インクリメントはシーケンスポイントが来て始めて値に反映される
0887デフォルトの名無しさん
NGNGに、それが出現するたびに HOGEを1づつインクリメントしていく、というような
ことはできるのでしょうか?(VC++6)
・・・
int a = HOGE; //ここでは HOGE=1で展開される
・・・
int b = HOGE; //ここでは HOGE=2で
・・・
int c = HOGE; //ここでは HOGE=3で
・・・
0888デフォルトの名無しさん
NGNG答えは「未定義」なんだけど、コンパイラは「とりあえず」計算してくれる。
gcc2.95だと 23 になったけど、どうでもいいな。
0889デフォルトの名無しさん
NGNGint asoaiuzoixyhzophaazxhxufzighiaern.krjbrr=1;
main()
{
int a = HOGE;
int b = HOGE;
int c = HOGE;
}
0890デフォルトの名無しさん
NGNGムリだよ。
0891デフォルトの名無しさん
NGNG??
m = n+(++n)
が2になるのはなぜ?
0892デフォルトの名無しさん
NGNGそれは前置インクリメントだから評価順により左右されるだけだろ
0893デフォルトの名無しさん
NGNGこっちの方が意味不明だな。
「式の評価」はそれがどの変数に入っていたかなど全く関係ない。
評価された結果(の数値)が全てであり、それを元に+演算し、その結果をmに代入する。
#include<stdio.h>
int main()
{
int n;
n = printf("abcde") + (printf("12345") + 3);
printf("\n");
n = printf("abcde") + (printf("12345") + 0);
return n;
}
bccだと、1行目と2行目で表示が変わった。
gccだと変わらない。
0894デフォルトの名無しさん
NGNGm = n++ + n の結果は必ず0で、
m = n + (++n) の結果は未定義なのね。
0895デフォルトの名無しさん
NGNGn=0とあるとき、
(n++)の値は?
(++n)の値は?
0896デフォルトの名無しさん
NGNGそれも未定義。
m=(n++)+(n++)+(n++)+(n++);
とかやってみ。運がよければ0かも知れんけど。
ところで、未定義でもコンパイルできるのはコンパイラの過剰なサービスだよな。
「未定義」ならWarningなりなんなり出せよって感じだ。
0897デフォルトの名無しさん
NGNGあんた馬鹿だろ
n++ + nと n++ + n++は別物。
一つの式に複数の副作用を生じる式が入っているんだから
0898デフォルトの名無しさん
NGNGA+B
Aが n++、Bが n なわけだが
n++ のインクリメントの実行が A の評価後なのは確実なんだけど
それがさらに A+B の評価後なのかは 未定義 なのよ。
0899デフォルトの名無しさん
NGNGわかんない奴だな、あんたは。
後置インクリメントが反映されるのは、副作用完了点を通過した時点。
n++ + nには副作用完了点が存在しないので、間違いなく0として評価される。
n = 0としたとき、
n++ == 0 が1となるかは未定義だとでもいうのですか
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNGn++ +nには副作用完了点が存在するよ
nが2回以上出てきてるから
0902デフォルトの名無しさん
NGNG>nが2回以上出てきてるから
勝手に副作用完了点を作るなよ。
完了点はC FAQにも記載されてるからよく見ておけ。
で、一つの式中に*副作用を伴う式*が2回以上出てきた場合の動作は未定義。
n++ は副作用を伴うが、 nは副作用を伴わない。
わかる?
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNGすまないけど、その説明じゃ誰もわかんないぞ。
もうちっと筋道立てて話してよ
0905デフォルトの名無しさん
NGNG3.2
後置増分演算子++も後置減分演算子--も元の値を返した後で、その演 算を行う。
この"後"の意味付けがしばしば誤解を招く。前回値を産み 出したすぐ後で、
かつ式のその他の部分が評価される前に、++や--が 増分や減分を行うことは保証されていない。
単に式が"終了"する前 (ANSI Cの用語でいえば次の"副作用完了点"(sequence point)の前。
質問3.8を参照)のどこかで更新が実行されることが保証されているだ けである。
これを読むと、>>898が正しくて>>899(つまり>>886)は間違っている。
後置インクリメントは、シーケンスポイントに来て初めての結果が反映される ×
後置インクリメントは、シーケンスポイントまでの間のどこかで結果が反映される ○
どこで結果反映されるかは規定されていない。
0906デフォルトの名無しさん
NGNGn++ + n の後ろのnを評価したときに 1 か 0 かは未定義。
副作用完了点の前にnが参照されてるから。
C FAQ の3.1がなぜ未定義なのか、考えれ。
0907デフォルトの名無しさん
NGNGm=n++ + n
において、
n++を評価し、(1)
nに1を加え
再度nを評価し、(2)
(1)と(2)を加算する
ということもありうる。
ってことだね。
0908デフォルトの名無しさん
NGNGCのFAQも、もう少し素人にもわかりやすく書かないと
>>899のような誤解を生むってことだね。
>>899さんも挫けず勉強がんばってくれぃ
レス数が900を超えています。1000を超えると表示できなくなるよ。