C言語なら俺に聞け! Part 〈55〉
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG質問する前には最低限Googleで検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo!
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だゴルァ!!
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
---------------------------------------------------------------------------
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG}
0004デフォルトの名無しさん
NGNGメール欄に「ぬるぽ」と入れてください。
0005デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsot C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
0006ぬるぽ
NGNG0007デフォルトの名無しさん
NGNGC言語なら俺に聞け! Part 〈55〉
http://pc2.2ch.net/test/read.cgi/tech/1051528386/
【過去ログ】
53 http://pc2.2ch.net/tech/kako/1048/10489/1048995232.html
52 http://pc2.2ch.net/tech/kako/1047/10472/1047275669.html
51 http://pc2.2ch.net/tech/kako/1046/10461/1046104909.html
50 http://pc2.2ch.net/tech/kako/1044/10449/1044938752.html
49 http://pc2.2ch.net/tech/kako/1042/10426/1042646178.html
49 http://pc2.2ch.net/tech/kako/1042/10426/1042640474.html
48 http://pc3.2ch.net/tech/kako/1041/10411/1041127646.html
47 http://pc3.2ch.net/tech/kako/1040/10400/1040048202.html
46 http://pc3.2ch.net/tech/kako/1039/10393/1039328710.html
45 http://pc3.2ch.net/tech/kako/1038/10384/1038405432.html
44 http://pc3.2ch.net/tech/kako/1037/10377/1037796472.html
43 http://pc3.2ch.net/tech/kako/1037/10372/1037281411.html
43 http://pc3.2ch.net/tech/kako/1037/10371/1037134356.html
42 http://pc3.2ch.net/tech/kako/1037/10371/1037101156.html
41 http://pc3.2ch.net/tech/kako/1036/10368/1036876790.html
0008過去ログ続き
NGNG39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1031/10313/1031340950.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
0009デフォルトの名無しさん
NGNG39 http://pc3.2ch.net/tech/kako/1036/10364/1036409391.html
38 http://pc3.2ch.net/tech/kako/1035/10357/1035729526.html
37 http://pc3.2ch.net/tech/kako/1035/10356/1035623265.html
36 http://pc3.2ch.net/tech/kako/1035/10352/1035211039.html
35 http://pc3.2ch.net/tech/kako/1034/10343/1034337064.html
34 http://pc3.2ch.net/tech/kako/1033/10332/1033240509.html
33 http://pc3.2ch.net/tech/kako/1032/10326/1032606064.html
32 http://pc3.2ch.net/tech/kako/1031/10319/1031905402.html
31 http://pc3.2ch.net/tech/kako/1031/10313/1031340950.html
30 http://pc3.2ch.net/tech/kako/1030/10307/1030786546.html
29 http://pc3.2ch.net/tech/kako/1029/10296/1029605182.html
28 http://pc3.2ch.net/tech/kako/1028/10284/1028495798.html
27 http://pc3.2ch.net/tech/kako/1027/10271/1027160374.html
26 http://pc.2ch.net/tech/kako/1026/10260/1026048820.html
25 http://pc.2ch.net/tech/kako/1024/10249/1024918442.html
24 http://pc.2ch.net/tech/kako/1024/10240/1024033400.html
23 http://pc.2ch.net/tech/kako/1023/10230/1023024817.html
22 http://pc.2ch.net/tech/kako/1022/10224/1022402165.html
21 http://pc.2ch.net/tech/kako/1022/10220/1022045622.html
0010過去ログ
NGNG19 http://pc.2ch.net/tech/kako/1020/10207/1020756993.html
18 http://pc.2ch.net/tech/kako/1020/10202/1020260813.html
17 http://pc.2ch.net/tech/kako/1019/10193/1019372139.html
16 http://pc.2ch.net/tech/kako/1018/10184/1018453690.html
15 http://pc.2ch.net/tech/kako/1016/10165/1016519243.html
14 http://pc.2ch.net/tech/kako/1015/10152/1015286974.html
13 http://pc.2ch.net/tech/kako/1013/10139/1013990673.html
12 http://pc.2ch.net/tech/kako/1012/10123/1012348974.html
11 http://pc.2ch.net/tech/kako/1009/10094/1009499565.html
10 http://pc.2ch.net/tech/kako/1008/10083/1008300863.html
9 http://pc.2ch.net/tech/kako/1007/10072/1007272267.html
8 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
7 http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
6 http://piza2.2ch.net/tech/kako/999/999617524.html
5 http://piza2.2ch.net/tech/kako/994/994908590.html
4 http://piza.2ch.net/tech/kako/992/992357382.html
3 http://piza.2ch.net/tech/kako/989/989929288.html
2 http://piza.2ch.net/tech/kako/979/979529893.html
1 http://piza.2ch.net/tech/kako/967/967985026.html
0011デフォルトの名無しさん
NGNG>>7
×【前スレ】C言語なら俺に聞け! Part 〈55〉
○【前スレ】C言語なら俺に聞け! Part 〈54〉
http://pc2.2ch.net/test/read.cgi/tech/1049968153/
00127 (>>1ではないっす。)
NGNG訂正サンクスです。
このスレのリンク貼ってどうする>>俺
しかも2重カキコになってるし。
すまそ。吊ってきます。>>all
0013デフォルトの名無しさん
NGNGこれで C の勉強始めて良い物なのか・・・。
Ch -- an enbeddable C/C++ interpreter for script computing
http://www.softintegration.com/
CINT
http://root.cern.ch/root/Cint.html
EiC -- The enbeddable/extensible interactive, pointer-safe, bytecode
C interpreter/compiler
http://eic.sourceforge.net/
The ups debugger for C, C++ & Fortran ;; C interpreter included.
http://ups.sourceforge.net/
Al Steven's Quincy C Interpreter
http://www.ddj.com/ftp/packages/quincy/
0014デフォルトの名無しさん
NGNGC のお勉強するなら cygwin インストールして gdb なんかがお手軽だと思うけど。
ステップ実行とかも visual にできるから、試す価値アリだと思うですよ。
0015デフォルトの名無しさん
NGNGp に後からアドレスを代入して
p[3][5]=3 という様なアクセスをしたいのですが、
最初のpの定義の仕方がわかりません教えてください。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGありがとうございました
0018デフォルトの名無しさん
NGNG奴が多いんだろう…。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGおいらの学校では動的確保すら教えてもらえなかったよぉ。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG/::::::::::::::::::::/ \:::::::::::::::::::::::
/:::::::::::::::::::/ \::::::::::::::::::::
/::::::::::::::::::/ ,,,,-―''`\::::::::::::::::::
|:::::::::::::::::/,,,,,, '' _ ヽ:::::::::::::::::
. |::::::::::::::::/ ヽ ∠'-' ` \:::::::::::::
|:::::::::::::::/ ,-、-、 l ヽ |:::::::::::::::
. |::::::::::::::| `´ | |::::::::::::::::
ヽ,-―_| | __,- ) |:::::::::::_/
// ̄ヽ /⌒ リ \ |:::::::/ ̄\
/ /:::糸工::\ _ _ ) /::::::/ /
>'つ:::::::イ::::::::ヽ ヽ/,ー―-ヽ /::::/ /
( < \:::モ::/~~\(::::::::::_/ / ̄ /
) ̄ ̄ヽ:::/:::::::::::::::\⌒ / /
\ ̄ ̄\ ググラないとしちゃうぞ♥
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGども。どうせたいしたコードは書けないので、gcc で頑張ってみます。
gdb も勉強します(使ってみたけどよく分からんかったです・・・)。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG配列の要素は、定数じゃないと駄目。
constは読み出し専用って修飾子だから定数では無い。
0027デフォルトの名無しさん
NGNGconstつけても変数は変数という理解でいいですか?
0028デフォルトの名無しさん
NGNG二次元配列のメモリの並びはリニアになってる。
つまり、arg[3][5];なんて
arg[15];と同じ。
具体的には
arg[0][0]→arg[0][4]→arg[1][0]→arg[1][4]→arg[2][0]→arg[2][4]
と並んでいる。
二次元配列の動的確保なんて馬鹿な事言ってるなよ。
因みに、ポインタの配列で、そのポインタでまた動的確保だと二次元配列とは全く別物。
メモリがリニアに並んで確保されないから。
0029デフォルトの名無しさん
NGNGC FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
スレ立てた時に言われてますよ〜
多分、読めって事ですよ〜
0030デフォルトの名無しさん
NGNG読み出し専用だけどね。
0031デフォルトの名無しさん
NGNGどちらも読みましたけど・・・
C99は別として、配列の要素数指定は定数式でなければならないのは知っています。
ただ、constつけたものを定数として扱えるかどうかということです。
定数と呼ぶことはできても、扱うことはできないんですね。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG規格の問題。
定数なら、配列の添え字に出切るよ。
しかし、const付けたって定数とは限らない。
だからconstつけたら配列の添え字にする事が許されないだけ。
いちいちコンパイラが判別してくれる分けがない。
100%定数とは為らないなら、許さないって事だ。
0034デフォルトの名無しさん
NGNG> 100%定数とは為らないなら、許さないって事だ。
やっぱりそうなんですね。
その例として>>25を出したんですけど、もっと一般的な例がありますね。
constつけた引数が・・・
とにかくありがとうございました。
0036デフォルトの名無しさん
NGNG全然分ってなさげ。
値が分っていて、定まっていても出来ないの。
const int num = 10;
int arg[num];
これは不可。
つまり、値が分っていてもconst付けたら配列の添え字にはならないの。
規格の問題って書いてあるだろ。
0037デフォルトの名無しさん
NGNG定まっているとは限らないから規格でNGにしたんでしょ?
定まっているとは限らない = 定まっていることもある じゃないの?
0038デフォルトの名無しさん
NGNG> 定まっているとは限らない = 定まっていることもある じゃないの?
そうだが、だからどうした?
0039デフォルトの名無しさん
NGNGなんで「定まっていても・・・」なんて話をするわけ?
004039
NGNG0041デフォルトの名無しさん
NGNGたとえばプログラム実行時にその変数は
ROM 上にマップされてるとか
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNGどうして他の言語の話が出るんだ
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG最適化禁止・・・組み込み系でつか?
0046デフォルトの名無しさん
NGNG実際に使うときはアドレス指定しなきゃいけないからポインタ変数になるだろうけど。
0047デフォルトの名無しさん
NGNGmemory mapped I/Oの例だろうな。
>>46
リンカが解決するという方法もある。
0048デフォルトの名無しさん
NGNGあれ?C99では、できるんでないの?
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGRC232cの標準出力をCで作るとか一番最初のページで挫折しました。
見たこともないプリプロセッサや回路図を作ってそれに合わせて
出力する等々みたいなことなんですがわかりますか?
0051デフォルトの名無しさん
NGNGわかりません。(涙
ただ、UNIXのほとんどはCで書かれているらしい。
だから、それくらいの許容量は持ち合わせているっぽい。
0052デフォルトの名無しさん
NGNGワケの分かってない奴の説明で何か分かる奴は非常に珍しい。
0053デフォルトの名無しさん
NGNG標準Cの話題ではないからな。
制御系のスレかで聞いたほうがスレ違いにはならないかと。
(PCIのスレあったっけ?)
0054デフォルトの名無しさん
NGNGSystem-C とかのことなら多分スレ違い
0055デフォルトの名無しさん
NGNGx=1<<31 とすると、xに0x80000000
が入るのですが、
x=~(1<<31)とすると、 0xffffffff
が入ってしまいます。
本当だったら0x7fffffff が入ると思うのですが、理由が解りません。
コンパイラ固有の問題なのでしょうか?
よろしくお願いします。
0056デフォルトの名無しさん
NGNG1を1ULにしてみぃ。
0057デフォルトの名無しさん
NGNGありがとうございます
005856
NGNG0059デフォルトの名無しさん
NGNGそのまま試してみたらそうはならなかった
他に間違いがあるのでは?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG55はintが16ビットの環境じゃないの?
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG関数名に()をつける。
0065デフォルトの名無しさん
NGNGWinのAPIならこうだ。
#include <windows.h>
int main() { MessageBox(NULL, "へろー。", "へろー。", MB_OK); }
0066デフォルトの名無しさん
NGNGint main() { MessageBox("全てのファイルを削除していいですか?","確認",MB_OK); }
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG(・∀・)エキサイティング!
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGたとえそれが初心者の使うウェイトだとしても。
0071デフォルトの名無しさん
NGNGこれならな
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGだったら、パーティションの事はなんといったらいいのですか?
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGついてるよ。
0079デフォルトの名無しさん
NGNGなんかエロいな
0080デフォルトの名無しさん
NGNGやっぱそう思う?エロいよな
0081デフォルトの名無しさん
NGNGBSDではパーティションのことをスライスといいます。
0082デフォルトの名無しさん
NGNGOK ボタンだけかよ !!
0083デフォルトの名無しさん
NGNG10から20とかの乱数ってどうやって書いたらよいですか?
0084デフォルトの名無しさん
NGNGまず、自分が何を書いたのか見直せ。
話はそれからだ。
0085デフォルトの名無しさん
NGNGwindow()こんなんでウィンドウ出すような関数ないんか!
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG今時そんなの書いてる奴いないって。
0088デフォルトの名無しさん
NGNG他の言語をお勧めします。
0089デフォルトの名無しさん
NGNG雛形作っとけ。
0090デフォルトの名無しさん
NGNG文句を言いたくなるほど書けるんだ?
0091デフォルトの名無しさん
NGNGそのプログラムは、このスレに従って「C言語」で書きましたか?
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGMFCでも使ったんちゃう?
SDKベースで作るとガリガリ書く必要あるけど
0094デフォルトの名無しさん
NGNGその後もCreateWindow、WM_CREATE
3段も初期化が必要。
0095デフォルトの名無しさん
NGNGをgccでコンパイルすると次のエラーが出るんだけどなんで?
ex.c:18: warning: passing arg 4 of `qsort' from incompatible pointer type
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGで、なんで?
0098C初心者
NGNG参考書の1/4も進んでない・・
とりあえず無償コンパイラの使い方だけで時間を
使い果たし・・配列をシコシコ書いてます。。
もうダメポ・・・・
こんなもんでつか??
0099デフォルトの名無しさん
NGNGvoid qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
qsortに渡す関数(のポインタ)は引数の型が二つともconst void *だから。
int compare(int *v1,int *v2){...}などという形だと警告が出る。
int compare(const void *v1,const void *v2){...}という感じで作ればその警告は出ない。
ただし、void *だとそのままでは参照できないので、比較する際には適切な型へのポインタにキャストするなどして参照できるようにする。
0100デフォルトの名無しさん
NGNG僕もプログラムの勉強<プログラムまでの勉強でした。パソコン購入==プログラムの
勉強だったので、ファイル、フォルダもわからず。そこまでではないと思いますが。
がんばってください。
010199
NGNG0102デフォルトの名無しさん
NGNG正しい
0103デフォルトの名無しさん
NGNGそれでいいよ。
010497
NGNGわかったような気がする。C Reference見ながら例題を試しにコンパイルしてみたら
警告がでたからなんでだろと思ってたけど、例題が間違ってたってことね。
http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.13.html#qsort
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGHello World表示させてるくらいでプログラミングは面白くてしかたなかった?
ここで面白さを感じられないやつは素質無し?
それともある程度山を越えてから病み付きになった?
教えてくれないの豚。
0110デフォルトの名無しさん
NGNG画面に文字表示させたところで一体何がおもしろいんだと。
・・・あ、楽しかったかも。
まぁ、ここはぐっと我慢してifとかwhileとかまで進んでみ?
0111109
NGNGいやさ。Hello Worldレベルは比喩なわけで。
一応入門書で関数のところまでいったんだけどおもしろみを感じない。
映画みたりネトゲしたほうがおもしろいとおもってさ・・・
0112デフォルトの名無しさん
NGNGならやめればいいじゃないか
0113デフォルトの名無しさん
NGNGそりゃダメだわ。
0114デフォルトの名無しさん
NGNGDelphiならおもしろいよ。
0115デフォルトの名無しさん
NGNGエクセルのマクロでもエディタのマクロでも、
繰り返しや条件分岐を書き始めるとそこはもう、
プログラミングの世界だよ。
何もHelloWorldだけが入り口じゃない。
だから、スレ違いだしとっとと帰れ。
0116デフォルトの名無しさん
NGNG0117109
NGNG山を越えてから楽しくなるや。俺の場合。がんばって続けてみまるくす。
0118デフォルトの名無しさん
NGNGDelphiならすぐに楽しくなるよ。
VBでもいいけど
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGint i,j=0;
for(i=0;i<=2;i++)j=j+a[i];
return j;}
void main(){
int t[3]={1,2,3};
int q;
q=func(t[3]);
printf("%d",q);}
これをコンパイルしたら下のようなエラーが出てきました
配列を関数に渡すにはどうすればいいのでしょうか?
パラメータ 'a' は int ( *)[3] 型として定義されているので int は渡せない(関数 main )
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG・・・・Fortranスレじゃないのか
0125デフォルトの名無しさん
NGNG上手くいきました、有難うございます!
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG多分123の意味分ってないんだろうな。
配列は式の中ではポインタに置き換わる。
int func(int a[3])なんて普通はやらない
int func(int *a)とやる。
それと、プログラマのコード以外でコンパイラは配列長なんて分らない物だから
(つまり、int func(int a[3])の3は意味をなさない、int a[]でもint *aでも同じ)
int func(int *a, int a_num)と先頭のポインタ(配列の先頭)と配列の要素数を渡す。
固定の配列長やループなんて危険すぎる。効率悪い。
将来、配列の長さを変えた時に関数の中も書き換えなきゃいけないだろ。
因みにq = func(t)はtを配列に宣言してるので配列の先頭ポインタを渡している事になる。
0128C初心者
NGNG参考本の1/3程度進んだとこで復習してみると
そのとおり書きたくない。これでいいじゃんって。
少しでも進歩したな・・と思うと楽しい。
0129デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG0134122
NGNG詳しい解説有難うございます
int func(int *a,int a_num){
int i,j=0;
for(i=0;i<=a_num-1;i++)j=j+a[i];
return j;}
とすればいいという事ですね
0135デフォルトの名無しさん
NGNGいいのかな?それとも全部コード覚えたほうがいいのかな?
VCで作ってもwindowsアプリ作れるっていっても平気ですか?
0136デフォルトの名無しさん
NGNGi<=a_num-1
これ、変だとおもわんか?i<a_numでいいだろ。
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG平気
0139デフォルトの名無しさん
NGNG> VC使って簡単にウインドウ作っちゃってもいいのかな?
→ YES.
> それとも全部コード覚えたほうがいいのかな?
→ 意味不明。何のコードだ ?
> VCで作ってもwindowsアプリ作れるっていっても平気ですか?
→ 一般的には YES。
暗黙に「私が」と言うのであれば、自分の腕と相談しろ。
0140122
NGNGそ、そうですね
0141デフォルトの名無しさん
NGNG別に変じゃないだろ。
なんか間違ってるか ?
0142デフォルトの名無しさん
NGNGchar str[]={'a','b','c','\0'}と書いても間違いではないが、変だ。
0143デフォルトの名無しさん
NGNGってことは、WindowsSDKは全く知らんってことか?
0144デフォルトの名無しさん
NGNGハァ ?
0145デフォルトの名無しさん
NGNG悪い。スレ違いだったな。
0146デフォルトの名無しさん
NGNGそういう問題ですらない。>>143が日本語が不自由なんじゃないかということだ。
0147デフォルトの名無しさん
NGNG143=145=俺だけど。
「それとも全部コード覚えたほうが」 の全部のコードってのは、
あの長ったらしい印象のあるソース(コード)のことだと思ってたんだが。
0148デフォルトの名無しさん
NGNG「あの長ったらしい印象のあるソース(コード)」ってのが何をさしてるのか、が不明なんだが。
0149デフォルトの名無しさん
NGNG空域読めてるか?
ちなみに俺は読めてないからな
0150デフォルトの名無しさん
NGNG多分、MFCアップウィザードで
スケルトン作っちゃってもいいのかな?ってことでしょ?
そしたらCの範疇からはずれるよね。
それともSDKで雛型コピペしてもいいか?って事をいってんのか?
どちらにしても135の日本語なんか変。
0151デフォルトの名無しさん
NGNGサイズがdouble以下の浮動小数点数引数はdoubleに格上げされるんですよね?
ということは、va_argの第二引数にはcharやshort、それにfloatを与えることはないということでOKですか?
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGWindowsSDKって言った時点で気づけよ。
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG実行形式をC言語に直すってこと?
だとしたらアナトマイザーとか?
でもぶっちゃけそんなの使うより逆アセンブラで見た方が楽
0159デフォルトの名無しさん
NGNG丸暗記してなければいけないのでしょうか?例:現在の時間を得るソースとか
0160デフォルトの名無しさん
NGNGどっちかというと瞬時に閃く感じ。
結局、日本語で文章を書くのと要領は同じ。
0161デフォルトの名無しさん
NGNGということは、ソースを完全に理解してないとダメだということですね?
0162デフォルトの名無しさん
NGNG当たり前ですな。
0163デフォルトの名無しさん
NGNG当然、APIとかの知識は必要だけど、その辺はやってりゃ自然と覚えるし
色々作ってれば、>>160が言うように感覚的にこんな感じかな〜っていうのが思い浮かぶようになる
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG興味持って書き込んでいけば自然とできるようになる。がんばれ。
0166デフォルトの名無しさん
NGNG英語と同じだな。がんばれ。
0167デフォルトの名無しさん
NGNGファイルをコピーする関数です。
int filecopy(const char * strfile, const char * dstfile){
FILE *strfp, *dstfp;
if(NULL == (strfp = fopen(strfile, "r"))){
return -1;
}
if(NULL == (dstfp = fopen(dstfile, "w+"))){
return -1;
}
char c;
while(!feof(strfp)){
c = fgetc(strfp);
fputc(c, dstfp);
}
fclose(strfp);
fclose(dstfp);
return 0;
}
これでテキストファイルをコピーした際に、最後の行に化けたような文字が入ってしまいます
何が問題でしょうか?
0168デフォルトの名無しさん
NGNGwhile(!feof(strfp)){
c = fgetc(strfp);
fputc(c, dstfp);
}
一度だけcにEOFが入ってしまうから。
while((c=fgetc(strfp))!=EOF)
fputc(c,dstfp);
と書こう。
dstfileのみオープンに失敗した場合はstrfileがプログラム終了まで開かれたままになっちゃうよ。
0169デフォルトの名無しさん
NGNG0170168
NGNG0171デフォルトの名無しさん
NGNGint c; /* 普通はintで受け取る。EOFもらうためね */
while((c = fgetc(strfp)) != EOF){ /* Cの定石だから覚えとけ */
fputc(c, dstfp);
}
0172デフォルトの名無しさん
NGNGfclose(NULL);も問題ないのですか?
0173デフォルトの名無しさん
NGNG大丈夫とはどこにも書いていないし、俺の環境だとセグメンテーション違反が起きた。
だからきちんとチェックした方がいいよ。いや、すべき。
0174デフォルトの名無しさん
NGNG引数を二回評価するけど、まあいいでしょ。
0175デフォルトの名無しさん
NGNGvoid co(int *a,int n,int i,int j,int *b){
int k,l;
for(k=0;k<=n-1;k++){
for(l=0;l<=n-1;l++){
if(k<i&&l<j){b[k*(n-1)+l]=a[k*n+l];}
else if(k<i&&l>=j){b[k*(n-1)+l]=a[k*n+l+1];}
else if(k>=i&&l<j){b[k*(n-1)+l]=a[(k+1)*n+l];}
else {b[k*(n-1)+l]=a[(k+1)*n+l+1];}}}}
int det(int *a,int n){
int d=0;int b;int i;int m;
printf("14 ");printf("n=%d ",n);
if(n==1){d=a[0];printf("15 ");}
else {for(i=0;i<=n-1;i++){
printf("i=%d ",i);
co(a,n,1,i,&b);
m=det(&b,n-1);
d=d+((i%2)*(-2)+1)*m;}}
printf("21 ");
return d;}
int main(){
int a[9]={1,0,0,0,2,0,0,0,3};int n=3;int d;
printf("27 ");
d=det(a,n);printf("28 ");
printf("deta=%d",d);
return 0;}
0176デフォルトの名無しさん
NGNG0177175
NGNG何故動かないかも分かりません
どこに問題があるのか教えて下さい
表示結果はこうなりました
27 14 n=3 i=0 14 n=2 i=0 14 n=1 15 21 i=1 14 n=1 15 21 21
0178175
NGNG0179デフォルトの名無しさん
NGNGまてぃ!
どう動いてほしいのかも書かないでそれはないでしょ。
0180175
NGNG行列aの行列式を求めたいのです
3*3行列aを
a[9]={1,0,0,0,2,0,0,0,3};
と定義しました
0181デフォルトの名無しさん
NGNG高校三年の時は数学を取らなかったから全然わからん。
0182175
NGNGvoid co(int *a,int n,int i,int j,int *b)関数は
n*n行列aから,ij成分を覗いた(n-1)*(n-1)行列bを作る関数です
0183デフォルトの名無しさん
NGNG自分で書いたソースがあるならうぷキボンヌ
0184175
NGNG「自分で書いたソース」の意味が分かりません・・・
>>175の事ではないのですか?
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG・
int c;
printf("[ ]に調べたい文字を入力してください [ ");
c=getchar();
printf(" ]");
・
・
てな感じでつくって
[ ]に調べたい文字を入力してください [ ]
みたいな感じで[]のなかに1文字だけ入力できるようにしたいのですが、
最後の[ ]だけうまく表示できません。『]』 が改行されてしまいます。
どうにかうまくできる方法はありませんでしょうか?
0187デフォルトの名無しさん
NGNG標準 C の範疇では無理 (≡ 実行環境を書け)
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGdetを
int b; -> int b[1000];
co(a,n,1,i,&b); -> co(a,n,1,i,b);
m=det(&b,n-1); -> m=det(&b,n-1);
にして幸せになろう。
27 14 n=3 i=0 14 n=2 i=0 14 n=1 15 21
i=1 14 n=1 15 21 21 i=1 14 n=2 i=0 14
n=1 15 21 i=1 14 n=1 15 21 21 i=2 14
n=2 i=0 14 n=1 15 21 i=1 14 n=1 15 21
21 21 28 deta=0
0190284
NGNGそれから co 内のループだが、
a には 0 から n-1 までの二次元配列の中に値が入っていたわけだから、
b には 0 から n-2 までの中に代入しなければならないはずだよな。
0191190
NGNGあと、ちょっと日本語が変だよなぁ俺……
0192デフォルトの名無しさん
NGNGm=det(&b,n-1); -> m=det(&b,n-1);
じゃなくて
m=det(&b,n-1); -> m=det(b,n-1);
>>190
coまでは見てないが何か勘違いしてない?
0193175
NGNGレス有難うございます
co(a,n,1,i,&b);
の部分はn*n行列aに対して(n-1)*(n-1)行列bを返すようにしているのですが
ここで
co(a,n,1,i,b);
としてしまうと、bの値が変化しないので、
上手くいかないような気がします
最終的に
deta=6
になって欲しいのですが・・・
0194デフォルトの名無しさん
NGNG確かに187が言うように実行環境依存になるかもしれんが、一応VCを使ってANSIC準拠で作るとするなら
printf("文字を入力:[ ]");
printf("\b\b");
c = getchar();
だな。
環境によっては\bで文字が消えるかもしれん、、
VCなら消えなかったが。
0195186
NGNGできました!。ありがとうございました。
0196にゃんkp
NGNGどこ通いサイトなんか無いでしょうか?
0197デフォルトの名無しさん
NGNG基本的な使い方判ってるなら、C-FAQのプリプロセッサの項読めば十分。
マクロで覚えるべき事なんて多くないから。
0198デフォルトの名無しさん
NGNGn-2までにしなきゃいけないね。
void co(int *a,int n,int i,int j,int *b) {
int k,l;
for(k=0;k<=n-2;k++)
for(l=0;l<=n-2;l++)
b[k*(n-1)+l] = a[(k<i?k:k+1)*n+(l<j?l:l+1)];
}
>>193
bを配列にしたので問題無い。アドレスが渡されるから。
co(a,n,1,i,b);だと
行列の一番上のところの数字だけで行列式が決まってしまうんだが・・・。
0199デフォルトの名無しさん
NGNG3次の行列式を調べるとこうだと思う。
co(a,n,0,i,b);
m=det(b,n-1);
d=d+a[i]*((i%2)*(-2)+1)*m;}}
0201デフォルトの名無しさん
NGNGわざわざ配列にしてループ回してる意味が分らん。
構造体にすれば直感的なループで済むのに?
struct MATRIX
{
float A11, A12, A13, A14;
float A21, A22, A23, A24;
float A32, A32, A33, A34;
float A41, A42, A43, A44;
};
まあ、mallocかけて可変長の正方n次行列にしたいのか?
どの道、ij成分の入力があるんだから構造体で扱いやすくした方が良いと思うが…
…行列式なんて逆行列を求める時程度しか使ってないな…
3DPG野郎ですた。
0202デフォルトの名無しさん
NGNGファイルに書き出す必要はなくて、
fgetcとかfprintfをバッファに対して使いたいんですが。
sscanfやsprintf使えという回答は不要です。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGなんでsprintfとかじゃだめなの?
0205デフォルトの名無しさん
NGNG既存のファイルへの入出力をバッファへも行う必要が出てきたので。
一旦完成してるソースなので、あんまり変更したくないんです。
関連付け不能ならsprintfに切り替えるつもりですが。
0206デフォルトの名無しさん
NGNG無いと思う。 OSによっては有るかもしれないけど・・・
文字列がfopenで開けなければアウト。
つまりデバイスとして用意されている必要が有るかと。
逆に、テンポラリファイル作って、そこに文字列当てはめるのは
mmapで出来るだろうけど。
RAMディスクとか使えそうな環境なら、これに割り当てるって手段は?
0207デフォルトの名無しさん
NGNGイレギュラーな方法になるけど、
fprintfを無理矢理再宣言してオーバーライドしちゃうって手もあるけど
そこまでするならsprintf使った方がいいだろうね
0208デフォルトの名無しさん
NGNGずっとMSDN眺めてましたが、該当する機能は無さそうですね。
setvbufはそういう用途と違うみたいですし。
FILEとバッファをラップするインタフェース作ってお茶濁すことにします。
ありがとうございました。
0209206
NGNG方法も有るんだけどね。
そこまですんなら、sprintf使った方が激しく早いが。
0210デフォルトの名無しさん
NGNG書き込むファイルをtmpfileでつくったものとする。
そこに通常と同じように書き込み、rewindしてからバッファにfreadしfclose。
ファイルへの出力の時はrewindの前にリターン。
0211デフォルトの名無しさん
NGNGってなんだ?
0212デフォルトの名無しさん
NGNGrewindしてからバッファにfreadしfclose。の前に関数を抜けると。
void func(const char *s,FILE *fp,char *buf,size_t size)
こんな関数じゃないの?fpがNULLならばbufにsizeバイト書き込むとか。
0213212
NGNG0214デフォルトの名無しさん
NGNGFUNOPEN(3)
BUGS
The funopen() function may not be portable to systems other than BSD.
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG・(検索なら)grep、(置換なら)awkなどを呼んでしまう。
・諦める。
0217デフォルトの名無しさん
NGNGWindowsなら秀丸エディタのパッケージなどに含まれるJRE32.DLLがそれにあたるかな。
http://www.yamada-labs.com/software/spec/jre/
0218デフォルトの名無しさん
NGNGなるほど。ソースつきのライブラリを探して
改造しようと思います。ありがとうございました。
0219デフォルトの名無しさん
NGNG{
scanf("%d",&a);
if(a==0){
break;
}
else{
printf("1を入力してください\n");
}
}
数字の1以外だとelseの処理をしてまたscanfで数字を入力できるのですが、
文字を入力してしまうとprintfが無限ループしてしまいます。
文字を入力してもちゃんと動作するにはどうしたらよいでしょうか?
0220175
NGNG有難うございます
ちゃんとdeta=6に成りました
0221デフォルトの名無しさん
NGNGhttp://seclan.dll.jp/c99d/c99d05.htm#dt19990607
整数の除算に何か問題があるの?そう思う人も多いでしょう。しかし現在の C 言語では、整数の除算に関しては移植性がありませ
ん。どういう場合に移植性がないのかといえば、整数を割るときのどちらかのオペランドが負であった場合です。
現在の C 言語の規格では両方のオペランドが正の数の場合、商は小数点以下を捨てた数になることになっています。例えば、1/2の
場合、正しい値は、0.5 ですが、小数点以下を捨てるので商は 0、余りは 1になります。余りは、(a/b)*b + a%b == a を満たす値となりま
す。
しかし、どちらか一方の数が負の場合、その結果は実装依存になっています。例えば、-1/2 の正しい結果は、-0.5 ですが、環境によ
って商0余り-1になったり、商-1余り1になったりします。
今回の新しい C 言語では、割り算の結果はすべて 0 方向に切り捨てることになりました。例えば、-1/2 では結果が、-0.5 ですが、
0 方向に切り捨てるので、商は 0 になります。すると余りは、-1 ということになります。これがすべての環境で保証されることになりまし
た。
0222デフォルトの名無しさん
NGNGフリーじゃなくても構いまません。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNGインテルC/C++コムパイラ
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG0228227
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGscanf()の%d指定は、数字文字を変換する指定でしかない。
なので、数字以外の文字を入力しても変換すべき文字がないので
入力を処理することなく終了してしまう。
解決方法としては、
・%s指定にして数値への変換は自前で行う
・scanf()の戻り値をチェックする
・fgets()に読み込んでから上記に注意しつつsscanf()で変換する
などの方法がある。
まぁ、一番最後の方法が一番確実だね。
0232デフォルトの名無しさん
NGNG%sで読み込んでatoiで数字変換
0233デフォルトの名無しさん
NGNG1を入力してください。
じゃなくて
0を入力してください。
だろ?
1だと、終了しねぇ〜よ!
0234219
NGNG1番上のでやりました。
ありがとうございます。
>>233
打ち間違いです
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG書式指定に空白を入れときなさい。
scanf(" %d", &a)
書式指定子の空白は空白文字(スペース、タブ、改行コード)を読み飛ばす。
入門本よりマニュアルをよく読むべきだよ。
じゃないと>>231 >>232みたいに頓珍漢なこと言い出すやつが出てくるからね。
0239デフォルトの名無しさん
NGNG平 子 太
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGよしこちゃんの下の兄弟だっけか?
0243デフォルトの名無しさん
NGNG> 入門本よりマニュアルをよく読むべきだよ。
219をよく読むべきだよ。
0244デフォルトの名無しさん
NGNGこの「->」の意味を教えていただきたい。
0245デフォルトの名無しさん
NGNG構造体のポインタのメンバを参照するときのお約束。
0246デフォルトの名無しさん
NGNGthx!分からないんで調べてみます。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGデータベースのスレ逝け
0249デフォルトの名無しさん
NGNGそうします。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGいやじゃ教えろ
0253デフォルトの名無しさん
NGNGマウスが壊れるほどにサイト駆け巡ってきます
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG名称からも分かるようにBasicを元にしたようだが、大きく異なる。
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGどこがや・・・
02581
NGNG0259デフォルトの名無しさん
NGNG当方、C言語の独学中で、任意の数字の階乗を計算するプログラムを作ってます。
それで、main関数の他に、実際に階乗を計算するkaijou関数を作成しました。
main.c、kaijou.c、kaijou.hがあります。
それで、kaijou.cにprintf()やscanf()等を使ってるのですが、コンパイル時に
「関数 'printf' は定義されていません。int 型の値を返す外部関数と見なします。」
「関数 'scanf' は定義されていません。int 型の値を返す外部関数と見なします。」
と出てしまいます。
今まではprintf等をつかっててもこんなことは言われなかったのですが、なぜこのようなエラーが起きたのでしょうか?
どなたか、わかる方教えていただけ無いでしょうか?
よろしくお願いします。
0260デフォルトの名無しさん
NGNGstdio.hをインクルードしていないから。
0261259
NGNG速レスありがとうございます。
私のkaijou.cにはstdio.hをインクルードしてませんでした。
早速インクルードさせてコンパイルしたところエラーがでませんでした。
初歩的な質問に答えていただいて、本当にありがとうございました。
0262デフォルトの名無しさん
NGNGchar choice;
choice = getchar();
という表記をしたところ、コンパイル時に
choice = getchar();の時にintからcharに変換しました。データが失われてるかもしれません。
と警告が出ます。
で、実行するとその処理が飛ばされてしまい、ちゃんと動作しません。
なぜこのような事が起きるのでしょうか?
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG>その処理がとばされてしまい
int→charとは違う部分でも間違ってる、に2000$++
0266デフォルトの名無しさん
NGNGおそらく改行文字よりひとつ前まで読む処理が上にあって、その時読まれなかった改行文字がgetcharに拾われているんじゃないかな。
例えば、scanf("%d",&n);とやって数字列+改行文字を入力すると改行文字は読まれずに残っちゃうよ。
0267デフォルトの名無しさん
NGNG0268あふぉ
NGNGx^2+100.1x+1.234=0
のような場合でも出来るだけ桁落ちがなく正確に計算できるようにするには
どうしたらいいんですか?
0269bloom
NGNG0270262
NGNGソース
#include <stdio.h>
int coice()
{
char choice;
printf("Yesの場合はY、Noの場合はNを入力してください。\n");
choice = getchar();
if(choice=='Y')
{ (省略 }
if(choice=='N')
{ (省略) }
else
{printf("YかNを入力してください。\n");}
return 0;
}
間違ってるんですか?
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNG0273262
NGNG0274デフォルトの名無しさん
NGNG0275262
NGNG0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGその関数だけ出してそのようなことはありませんなんて言われても信用できないんだけど。
0278デフォルトの名無しさん
NGNG>どこが間違ってるのか教えてくれませんか?
あんたの態度。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG多倍長演算と浮動小数点演算
0281デフォルトの名無しさん
NGNG{
main();
}
次のifはreturn 0;です。
ただ、これだけだったらコンパイル時にエラーが出たのでヘッダファイルにmain関数の宣言を書きました。
0282デフォルトの名無しさん
NGNGせめて、どうなってほしいのか、どうなってしまったかが分からないと答えようがない
0283デフォルトの名無しさん
NGNGループさせたいんだったらループ用の終了フラグ作ってwhileとかそういうことやらんのかね。
0284デフォルトの名無しさん
NGNGmain関数呼び出しって……いったいどんなプログラムやねん!
ついでに、そういうときはswitch文を使うのが定石かつ他人にソースを見せる時、理解を助ける。
main関数
-menu関数
--処理関数
で、menu関数で
int flag=true;
do{
getchar等
switch(){
case 'y': 処理する関数;break;
case 'n': flag=false;break
default : エラーじゃごら
}
}while(flag);
みたいに書くなぁー
0285デフォルトの名無しさん
NGNGmain関数からmenu関数を呼び出して、そのmenu関数から処理関数を呼び出す、ね。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG…よく分らないんだけど、普通さcoice関数を宣言してmainで呼ぶんじゃないの?
coice関数の戻り値は何に使うの?まさか、mainの戻り値と同じ扱いじゃないよね?
0288鈴木健一郎 (NT4.0/2000/XP)
NGNG「引数の数がいくつ渡されたか」っていう情報は明示的に
教えてあげなくちゃいけないんでしょうか?
argc みたいな感じで va_list がどこかの構造体に格納されていないんですか?
0289デフォルトの名無しさん
NGNGそのために最低でもひとつは固定の引数が必要となる。
その固定引数が与えた引数の数を知るヒントになる。
0290281
NGNGある任意の数をいれ、その階乗計算し、
その後もう一度計算するか選択してするならまたmain関数に戻るというものです。
なのでmain関数の中身はkaijou();とchoice();、return 0;しか書いてません。
大体理解していただけましたでしょうか?
0291デフォルトの名無しさん
NGNG構造化プログラミングについて勉強しましょう。
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG当方、WinXP+BolandC5.5+CPadでプログラムつくってるんだけど
エスケープシーケンスが使えないという現象に遭遇してます
多分XPがいけないんだと思うけど、この問題の回避策ってある?
OS変えないとだめ??
0294デフォルトの名無しさん
NGNGwhile文かdo〜while文を。
0295デフォルトの名無しさん
NGNGttp://www.hakodate-ba.ac.jp/hp/etc_hp/mizukami/TrRoom8.htm
ぐぐれよ。
0296デフォルトの名無しさん
NGNGググったけど見つからなかったんだよー
thxです、ってかこれって有名だったのね 汗
0297デフォルトの名無しさん
NGNGボーランドーのヤツなら、ライブラリに
問題のないlocate()とかが用意されてるから
conio.hを読んで使ったら?
0298デフォルトの名無しさん
NGNG神!
0300デフォルトの名無しさん
NGNGゲーム脳
0302デフォルトの名無しさん
NGNGまともなコードなら書きなおす必要はないとおもうが・・・
・・・そうか、ベタ書きか・・・
0303デフォルトの名無しさん
NGNGそれなら main() じゃなく exec(argv[0]) にしたら?
0304デフォルトの名無しさん
NGNGしかも動的に。
0306デフォルトの名無しさん
NGNG普通データ構造から作るだろ。ってのはオブジェクト指向に慣れすぎた者の発想なのだろうか。
0307デフォルトの名無しさん
NGNG構造化プログラミングでもデータ構造は重要。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG何行じゃなくて何ステップ、ですか?
行とステップはどう違いますか?
0311デフォルトの名無しさん
NGNG行数気にしてちゃだめでしょ
複雑な処理をいかに簡潔で高速に書けるかの方が重要な気がする
0312デフォルトの名無しさん
NGNG0313293
NGNG文字の移動、画面の消去はconio.h使って出来たんだけど
文字色が変えられない・・・
textcolorって使えないの?
誰か教えてくれー
うーむ、XP恐るべし
0314デフォルトの名無しさん
NGNG初めて知った。
0315デフォルトの名無しさん
NGNGモレまだ10日も勉強してないけど、全然進んでない気がしてな。
今から配列勉強・・ヽ(´ー`)ノ
0316デフォルトの名無しさん
NGNGがんばれよ。後、先輩に対する口の利き方位勉強しとかんと無職ダメ板住人みたくなるぞ。
0317デフォルトの名無しさん
NGNGプログラミング初心者から抜け出せたと思うまでには5-6年掛かったな。
Cはそれから使ったから初心者だったのはおよそ一週間だ。
それから10年以上Cをメインに使ってきて、一ヶ月前にC++を本格的に
使い始めたが、C++は未だ初心者の気分だな。
0318デフォルトの名無しさん
NGNG文字列が入った変数から、?byteだけ数値として取り出す方法とかmemcpy
でできると思ってるんですがどうでしょう?
0319デフォルトの名無しさん
NGNGgotoの使い方に慣れたら中級者。
列挙型とintとint*しか使わなくなったら上級者。
charとchar*も使い分ければ達人。
0320デフォルトの名無しさん
NGNGスミマセンついつい・・・。結構年だしね(;´Д`A ```
しかしここはプログラムの先輩ばかりなわけだ。。
気をつけます。
>>317
やはりそんなにかかりますか。。
本職ではなくとも私も用途は趣味と仕事なわけですが・・、
CマスターしたらC++習得は早いってわけでも無いのですか?
0321デフォルトの名無しさん
NGNG普通はもっと大量のデータをコピー、セットするのに使うんじゃないかな。
例えば画像データをVRAMにコピーするとか。
0322デフォルトの名無しさん
NGNGchar mojiretsu[] = "test";
int suuji;
suuji = (int)mojiretsu[0];
0323デフォルトの名無しさん
NGNGintは何バイト?
0324デフォルトの名無しさん
NGNGchar mojiretsu[] = "test";
int suuji;
suuji = *(int *)mojiretsu;
0325デフォルトの名無しさん
NGNG> 文字列が入った変数から、?byteだけ数値として取り出す方法とかmemcpy
> でできると思ってるんですがどうでしょう?
おお、そんなんできるんだ。
やり方の詳細キボン。
>>320
> 本職ではなくとも...仕事なわけですが・・、
プログラマーじゃないけど、仕事のためにプログラミングするってこと ?
(なんかの研究者で、数値解析とかが必要とかなのかなぁ...。)
> CマスターしたらC++習得は早いってわけでも無いのですか?
だいぶ、新しい概念が入ってるからね。
でも、ベースは C だから、C を覚えておくに越したことない。
0326デフォルトの名無しさん
NGNG>gotoの使い方に慣れたら中級者。
>列挙型とintとint*しか使わなくなったら上級者。
>charとchar*も使い分ければ達人。
誰も読めないソースを書けるようになったら、神と阿呆の紙一重(笑
どうせマシンパワーが余ってるんだから、最適化の必要の無い部分は徹底的に
可読性重視でいいと思うがし。
ただ、シミュレーションとかで最適化するべき部分に対しては、
自分以外読めないくらいでもかまわない。ただ、変数名のスコープだけは気をつけて。
0327デフォルトの名無しさん
NGNGネタにマジレ...。
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNG激しく同意
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG手作業で最適化しないといけないコンパイラですか。
0332317
NGNG学生の頃だからね<5-6年
しかも習ったわけじゃないし。
で、C++は取り敢えずクラスの利用と演算子オーバーロードの辺りで止まっている。
テンプレートは使いこなしたとは言いきれないし、継承に至っては結構怪しい。
会社のC++マスターに、「それだけできれば充分でしょう」とのお墨付きはもらったがね。
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG> 「それだけできれば充分でしょう」
その言葉は見込みのない人に対しても使うよね(笑) 「もうやめろ」という意味で(笑)
0335デフォルトの名無しさん
NGNG{
char *ten;
char *one;
ten = ntof(15);
printf("%s\n", ten);
one = ntof(15);
printf("%s\n", one);
strcat(ten,one);
printf("%s\n", ten);
return 0;
}
char *ntof(int org)
{
char *answer;
switch (org)
{
case 15: answer = "f";
break;
}
return answer;
}
0336デフォルトの名無しさん
NGNGSegmentation fault
と異常終了してしまいます・・・
f
f
ff
という結果がほしいのですが、どうしたら良いか教えてもらえないでしょうか?
strcatのところが悪いと思うのですが・・・
今日の半をこれでつぶしてます。
どなたかお願いします!!
0337デフォルトの名無しさん
NGNGmyAry.Lengthみたいなのやりたいです
0338デフォルトの名無しさん
NGNG>char *one;
>ten = ntof(15);
>printf("%s\n", ten);
ぬるぽ
0339デフォルトの名無しさん
NGNG無理です。
0340デフォルトの名無しさん
NGNGsizeof(a)/sizeof(a[0])
0341デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
void ntof(int org, char *str)
{
switch (org) {
case 15: strcpy(str, "f");
break;
}
}
int main(void)
{
char ten[128], one[128];
ntof(15, ten);
printf("%s\n", ten);
ntof(15, one);
printf("%s\n", one);
strcat(ten, one);
printf("%s\n", ten);
return 0;
}
これじゃ駄目なの?
0342デフォルトの名無しさん
NGNGなるほろ。。そうするしかないのれすか・・さんくすこ
0343デフォルトの名無しさん
NGNGcase 15: strcpy(str, "f");
break;
}
0344デフォルトの名無しさん
NGNG文字列リテラルは書き換えられない。
書き換えられないはずの文字列リテラルにstrcatで書き込んでいるから
セクメンテーションフォールトが起きる。
0345デフォルトの名無しさん
NGNGいや、わからん
こっちの方が一般的かなと
0346デフォルトの名無しさん
NGNG他にはないでしょ?
0347デフォルトの名無しさん
NGNG>>344
ありがとうございました!!!
できました!!
これからも精進します。
0348デフォルトの名無しさん
NGNGものによるかなと
グローバル変数を使うとかさ
0349デフォルトの名無しさん
NGNGえ、グローバル変数使ってどうやるの?
0350デフォルトの名無しさん
NGNG反対のintから文字列はどうすればいいですか?
0351デフォルトの名無しさん
NGNGchar buf[1024];
sprintf(buf,"%d",i);
0352デフォルトの名無しさん
NGNGitoa
0353デフォルトの名無しさん
NGNGhttp://219.96.231.242/wizonline/player/world.html
0354デフォルトの名無しさん
NGNG恐らくこう言う意味。
int global_len = 10;
extern int global_len;
int main(void)
{
int arg[global_len];
return 0;
}
0355デフォルトの名無しさん
NGNG昔のCだと動かない罠。
0357デフォルトの名無しさん
NGNG規格としては昔でも、現役な気がする。
0358320
NGNG遅レス
研究者ではないが製品開発には関わることあります。
基本的には生産技術要員。
僕はどちらかというと大規模な設備なんかを買う方なんだけど
いまいちその、、プログラマーとの打ち合わせがウマク
いかないし理解できないんだな。それは漏れがアフォだから。
「いやぁ、ソレハ難しいですよ、予算がかかります」
といわれてもよくワカランし。。
「ソースコードは要りますか」と聞かれても貰ってもわからないし。
趣味も兼ねて勉強したいと思いました。
ちなみに今まで会社ではHP-BASICしか使ったこと無いです。
0360デフォルトの名無しさん
NGNGあー、つまり奴らに騙されて大金払わせられないように知恵つけたいってわけか。
0361デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
char buf[128];
void ntof(int org)
{
switch (org) {
case 15: strcpy(buf, "f");
break;
}
}
int main(void)
{
char str[256];
str[0] = '\0';
ntof(15);
strcat(str, buf);
printf("%s\n", buf);
ntof(15);
strcat(str, buf);
printf("%s\n", buf);
printf("%s\n", str);
return 0;
}
とかかな?あまり好ましくはないけど
0362デフォルトの名無しさん
NGNGcase 15: strcpy(buf, "f");
break;
}
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGなんなんだ?
これって駄目なの??
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGつける
ってかdefaultも意味が無くても必ずつける
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1051545341/
0371デフォルトの名無しさん
NGNG>ってかdefaultも意味が無くても必ずつける
ifにもかならずelseを付けると言うことですね?
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG当然です
0374デフォルトの名無しさん
NGNG当然だろ?
if(あれこれ) ;
else if(0) ;
else ;
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG}
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG一応つけてる
0379デフォルトの名無しさん
NGNGいやいや
default:
値が変ですよ
みたいな感じで書くってこと
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNG> 僕はどちらかというと大規模な設備なんかを買う方なんだけど
ああなるほど、昔の俺と同じような立場なわけね。
ハード/ソフトは自社開発だったけど、筐体とかメカの部分を外部にお願いしていた。
確かに俺もメカの部分でいろいろ言われても、ちんぷんかんぷんだったよ...。
> ちなみに今まで会社ではHP-BASICしか使ったこと無いです。
HP-BASIC はそこそこ使える ? その実行環境は今もある ?
とりあえず、1つの言語でプログラム組めるようになれば、他の言語の勉強も楽だよ。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG最初にbreakだけかいてまう。
0385デフォルトの名無しさん
NGNGお節介コンパイラさんから到達できませんと怒られますよ。
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNG俺は、大体そうする。環境によるけど、
default:
abort();
とか。
UCSD Pascal みたいに、switch() 文で default: 節が無い場合は、case に引っかからなかったら異常終了するようなコンパイルオプションが欲しい。
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG0391318
NGNGなんつーか、peek,pokeのような、、、感じで0xFFFFFFくらいも文字列のある(適当)部分から読み出す
とか書きこむとか、memcpy,memsetでできるんではと思ったんで。
memcpyいまいち分からないし探してもほとんど良いのなかったです。
>>325
C言語→暗号化アルゴリズム の方になっちゃうんですが
ブロック暗号てのである部分ごとに(ブロック)暗号化するんで、ソースコードもちょっとあったからできるんじゃないかと思ってます。
ソースコードの理解がまだまだだし、それに関することも無いわけで書いてみました。
0392デフォルトの名無しさん
NGNG文字列を切り出す方法はsprintfしか無いのでしょうか。
0393デフォルトの名無しさん
NGNG俺ならstrncpyを使うが。
char s1[234],*s2="string";
strncpy(s1,s2+2,3);
s1[3]='\0';
0394デフォルトの名無しさん
NGNGstrncpy, strncat, strncmp, strchr, strstrなど
0395デフォルトの名無しさん
NGNGstrncmp??
0396デフォルトの名無しさん
NGNGアホがいます。
0397デフォルトの名無しさん
NGNGstrncmpでどうやって切り出すの?
strchrやstrstrもよくわからない・・・・
0398デフォルトの名無しさん
NGNG0399392
NGNGそういう便利関数は自分で用意するしか無いようですね。
ありがとうございました。
0400デフォルトの名無しさん
NGNGポインタを動かすとかができないのなら、memmove
0401394
NGNG直接は切り出せないけど比較して切り出すのに使えるかなと
ってかsubstrが何をやるものかよくわかってない俺
0402デフォルトの名無しさん
NGNG\0を挿入
0403デフォルトの名無しさん
NGNG後ろが切れるぞ。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNGおまえ何言ってんだ?
0406デフォルトの名無しさん
NGNGchar str[]="abcdefg";
char *p;
先頭の2文字(ab)を切り捨てたいなら、
p=str+2;とするか、memmove(str,str+2,6);
0407デフォルトの名無しさん
NGNGどうやればいいのでしょうか?
ただソース中にmain();と書いてもエラーがでます。
どなたか、どうすればいいのか教えていただけ無いでしょうか?
よろしくお願いします。
0408デフォルトの名無しさん
NGNGソースの先頭にでもint main(void);かint main(int,char **);と書く(mainの引数にあわせて)。
でもなんでまたmainを呼び出すのよ。
0409407
NGNGあ、そうです。警告です。
そのmain関数を呼び出したい関数を書いてあるCソースファイルにmain関数の宣言を行えばいいのですね。
実はまだ初心者で、関数の使い方を勉強してるのです。
なので簡単なプログラムを関数で色々やってみたりしてるんです。
0410デフォルトの名無しさん
NGNGCっぽくて素敵。
0411デフォルトの名無しさん
NGNGの中身"inside"を
char *test;
に代入することはできますか?
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGtest = bur;
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGその場合は、stdlib.hをインクルードするだけで使えるのでしょうか?
できたら、exit関数の使い方を教えて欲しいのですが・・・
どうかよろしくお願いします。
0416デフォルトの名無しさん
NGNGすばやいお答えありがとうございます。
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG当たり前だが、そのままだとburの値が変わるとtestの値まで一緒に変わる
別にその後burを使わないなら問題ないけど。
>>415
exit(0);
0421デフォルトの名無しさん
NGNGとりあえず、ググれ。
0422デフォルトの名無しさん
NGNG中身を代入なら、strcpyの方がいいんで内科医?
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG未来にレスしてるお前が、一番アフォだろ。
0425デフォルトの名無しさん
NGNGいや案外ものすごい才能のもちぬしかもしれない。
0426デフォルトの名無しさん
NGNGC言語を勉強して最終的にはC言語を使用してテトリスと作ろうと思ってるのですが
テトリスはC言語で記述可能でしょううか?
やはりVisualCなどでないと無理でしょうか?
0427デフォルトの名無しさん
NGNGいいえ。
0428デフォルトの名無しさん
NGNGっていうか、書いたし。
問題は言語じゃなくて、どんなライブラリを使うかじゃないの?
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGサンクス
>>428
自分でライブラリまで作るってのは時間的に難しいですかね?
そんなこったものでなくてただぶろっくが落ちてきて
それをこっちが操作して横が揃ったら消える程度でいいんですが
0431デフォルトの名無しさん
NGNGCで書かれたテトリスのソースは探せばあるから参考にしては?
0432デフォルトの名無しさん
NGNGえ?ありますかね?
結構捜したつもりなんですが見つかりませんでした
外国のHPかな?英語はちょっと苦手で・・
0433デフォルトの名無しさん
NGNGに入れた8文字をそれぞれ別々の
変数8個に代入する方法を教えてください
お願いします。
0434デフォルトの名無しさん
NGNGまずは、それぞれ別々の変数8個に代入してみるのだ。
0435デフォルトの名無しさん
NGNGこういうヤツが10年後、
エリートSEとなって世界へ羽ばたいていたりするんだな
0436デフォルトの名無しさん
NGNGUNIX系のフリーウエアは普通Cでしょ
ましてテトリスなら、いくらでも見つかると思うが・・
http://www.ibiblio.org/pub/Linux/games/arcade/tetris/!INDEX.html
とか
0437デフォルトの名無しさん
NGNGとりあえす入門書の一冊でも読んでから質問すれや。
0438デフォルトの名無しさん
NGNGC言語でベキ乗演算子が使えないのはどうしてですかね・・?
自分で作るとかは別として。根本の理由はなんなんでしょう。
0439デフォルトの名無しさん
NGNGpowがあるし、自分で書いても難しくないからいいんじゃないの。
0440デフォルトの名無しさん
NGNGここの14.7
0441デフォルトの名無しさん
NGNGなるほど・・
3乗根やn乗根となると、目的の割りに”少しだけ”めんどうですね。
有難うございました。
0442デフォルトの名無しさん
NGNGフリーでありますか?とりあえず cygwin/gcc-3.2 は
対応してないようですが。。
0443デフォルトの名無しさん
NGNGていうか、ほとんど使わないからだろ。
0444デフォルトの名無しさん
NGNGgcc用のcomplex.hは寡聞にして存じ上げませんが、
g++用でしたらg++-includeに含まれていたかと。
0445デフォルトの名無しさん
NGNGif("a" == *p)
というのがだめで
if(0x61 == *p)
と
if('a' == *p)
がOKというのはなぜなんでしょうか。
0446デフォルトの名無しさん
NGNGそれは多分""で囲まれた部分が文字列リテラルへのポインタになってるからだと思う
0447デフォルトの名無しさん
NGNG最初のうちは、文字列の比較はstrcmpを使うものだ、そういうものだ、
と納得しておこう。
後々理屈が自然にわかるから。
0448デフォルトの名無しさん
NGNGダヨ
0449デフォルトの名無しさん
NGNGはオッケー
ダヨ
0450デフォルトの名無しさん
NGNG*p は 'a' そのもの。意味が全く違う。
0451デフォルトの名無しさん
NGNG'a'は文字そのもの
0452445
NGNGみなさんありがとうございます。"a"はaと\0の文字列で
449さんの場合はそのうちの先頭1文字を比較している
というわけですね。よくわかりました。ありがとうございます。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG>>445
最初のうちは、文字列の比較はstrcmpを使うものだ、そういうものだ、
と納得しておこう。
後々理屈が自然にわかるから。
0458デフォルトの名無しさん
NGNG447 名前:デフォルトの名無しさん 投稿日:2003/05/05(月) 13:16
>>445
最初のうちは、文字列の比較はstrcmpを使うものだ、そういうものだ、
と納得しておこう。
後々理屈が自然にわかるから。
0459デフォルトの名無しさん
NGNGそのデータのポインタやファイル場所を受け取りたいのですが
どのような関数が必要なのかわかりません。
どなたか、ご教授お願いします。
0460デフォルトの名無しさん
NGNGfsetpos
0461デフォルトの名無しさん
NGNGあの説明でよくわかったな。
0464459
NGNG例で表すと・・・
解凍ツールで解凍するファイルの名前を
ドラッグ&ドロップで知りたかったのです。
0466462
NGNG実行ファイルにドラッグ&ドロップしたファイルの名前はargv[1]に格納されるんだな。
>>464
mainをint main(int argc,char *argv[])として、argv[1]からファイル名を得る。
0469デフォルトの名無しさん
NGNGちょっと補足すると、複数ファイルの場合はargv[1〜argc]に入ってるからargc-1回ループさせると。
既に起動してるWindowsアプリのウインドウに、、とかいうんだったらまた別だが
0470462
NGNG0471459
NGNG今回はお察しのとおり(?)コンソールアプリケーションです。
複数ファイルの場合の時を考えてなかったので、助かります。
覚えておきたいと思います。
>>470氏
見事、成功しました〜。
長々とのおつきあい感謝です。
0472デフォルトの名無しさん
NGNGト ン ベ ス ト ー ン
〜宇宙からのメッセージ〜
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG正直使わない。
大体をしてグローバル変数かファイルスコープ変数しか
アクセスできないしな。
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNGOSによっては資源の解放に便利に使える。
但し、ここではスレ違いなので詳細は省略。
0478デフォルトの名無しさん
NGNGできる。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGすれ違いだったため、ここで質問します。
http://pc.2ch.net/test/read.cgi/unix/1052041659/l50
行列の演算をCで作っていていつも考える疑問です。
行列の表現は、どんなのが一番汎用な表現ですか?
ただし、
行列の成分は実数とします。
私はa[ROW][COL]みたいな2次元配列です。
分かりやすいけど、融通がきかないです。
引数渡しでa[][COL]とするので、大きさが変更できなくて
不便です。
0482デフォルトの名無しさん
NGNG引き数はdouble *pMatrixでいいと思うのだけど。
で、参照はpMatrix[i * col + j]って感じで。
それがいやなら i * col + j をマクロにしておくとか。
でも私ならC++でクラスにしちゃうけどね。
0483デフォルトの名無しさん
NGNGCを使わない
0484デフォルトの名無しさん
NGNG0485デフォルトの名無しさん
NGNGマジレスだけど、そんなのよりC Machineというのを使った方がいいよ。
0486デフォルトの名無しさん
NGNG元気ですかー!!
0487デフォルトの名無しさん
NGNGちょっと待て、対応しているのはコンパイラの側ではないぞ。
0488481
NGNG1次元ですね。なるほど。
私の手元の本は2次元なんですよ。
だからそうしたのです。
でも、かならずしも一般的ではないですよね。
482さん、
参考のためc++の方法を教えて下さい。
0489デフォルトの名無しさん
NGNG施寝よ。
作者も放置しているようなコンパイラなんか使えるわけねぇだろ。
0490デフォルトの名無しさん
NGNGC++のスレで聞け
0491デフォルトの名無しさん
NGNG行列 クラス でググってみれ
0492481
NGNGthanx!
Cの行列計算方法
ttp://www5.airnet.ne.jp/tomy/cpro/sslib7.htm
では1次元配列を利用していました。
c++の〜
ttp://www.eng.kshosen.ac.jp/~i_asano/misc/matrix/matrix.html
がありました。
C++は全然知らないのですが、matlabみたいに
C = A *B
という表記が可能になるんですね。
すれ違いなので、ここで終わります。
0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNGこの達成感はすばらしいものです。
聞いてばかりではなく、自分の力だけでやってみるのも
おもしろいですよ。
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG>>494の言うことには同意。
同じ経験あり
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNGというか、たいてい言う側
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNGのです。Mule、nemacsじゃないと駄目ですか?秀丸じゃ無理なのですか?
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGTrue;
False;
};
↑何か変なのでしょうか?
これで何も問題は起きてないのですが。
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGCではかえって読みづらいと思うが、あえて似たようなことをしようと
するならば、
typedef enum{
TRUE = 0,
FALSE = 1
} Bool_t;
Bool_t flag;
みたいに書くだろう。あくまで型定義の仕方としてな。
0509デフォルトの名無しさん
NGNG開いたファイルもそのまま?
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNG変数は必要な時に宣言するって精神に則ると
for (xxxxx) {
int hensu;
:
}
こうかなぁと思うのでつが、なんかデバッガで追ってるとhensu変数が
ループが1回回るたびに作成されたり削除されたりしているように
見えるんでつ。
なんか動作パフォーマンスが悪いように見えるんでつが、実際の所
どうなんでしょう?
ループ外で宣言する方が良いでつか?
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG実装によるけど、変数の領域がブロック単位で確保されたり開放されたりって
ことは無い。
どこで宣言してもパフォーマンスは変わらないと思う。
(もしかすると変数のスコープを細かくしたほうが最適化で
レジスタの割り当てがうまくいって速くなるってことがあるかも
しれない)
0515デフォルトの名無しさん
NGNG0516512
NGNG見てみましたが、分かりませんでつ。
>>514
>515氏が書かれているように、私が勉強した時、確か自動変数はスタックを
利用して記録されると読んだ記憶があります。
そのまま解釈すれば、ループ毎にPUSH,POPしているのかなぁと思ってしまう
のでつ。
(さっきデバッガでアセンブルコードを見て追っかけて見ましたが、よく
分かりませんでつ・・・)
しかし>514氏の言う通り、うまく最適化されているような気もします。
もう一度、皆様のご意見を聞かせて下さいまし。
0517デフォルトの名無しさん
NGNGそれくらいの差だってこった。
0518デフォルトの名無しさん
NGNGint変数程度ならスタックフレームに変数領域を確保するだけだから
コンパイラがアドレスを決めて直接書き込めばPUSH/POP不要。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG関数呼び出し時に確保されるローカル変数用スタックの
消費サイズも最小限になる可能性が高い。
0521デフォルトの名無しさん
NGNGスピードはどうなんですか?
スタックをpush、popすることで下がりますか?
0522デフォルトの名無しさん
NGNG0523520
NGNGsubとかaddみたいな加減算で直接spの値を操作するから、
ローカル変数側についてはpush/popが呼ばれることは無いよ。
結果的にメモリの局所化に繋がるから、
再帰関数とかのパフォーマンスは良くなる。
つーかアセンブラ出力読んだ方が早い。
0524デフォルトの名無しさん
NGNGそんな賢いコンパイラはあんまり見かけないな
ブロック単位で宣言しておけば、コピペには便利だけど、
変数宣言するくらいの単位なら構造化して関数に昇格した方がいいと思うけどな
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGループの中でも、最近のCPUだと関数の呼び出し程度は実行サイクルに隠れてしまう事が多いよ
パフォーマンスを恐れて構造化しないのは愚かだと思う。
構造化しておいて、パフォーマンスチェックにひっかった後でインラインに戻せばいい
0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGこういう場合関数呼び出しにすると、
そのブロックのスコープ外ローカル変数にアクセスするために無駄に引数が
必要になるわけで、しかもポインタ渡しにしなければならなくなるとかさ、
だから、C のスタイルだと、ブロック化が構造化というふうに捉えるべきだと思う
0535デフォルトの名無しさん
NGNGVCならoptionによって勝手にinline-expandされる。
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNGVCの最適化は凄いよね。
inline展開や>>520ぐらいの事は当たり前の様にやってるよ。
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGVC
cl /O2 /GB /Og /GA /Ob2 /nologo /MT /W3 /GX /YX /FD /Gz ...
mingw
gcc -O9 ...
いつもこれで大体同じか、gccが少し遅いという結果になる。
両方とも勝手にinline展開などを行い、
実行ファイルのサイズはかなり増大する。
0542デフォルトの名無しさん
NGNGglutKeyboardFunc(OurKeyboard); ってのはmain文の中でしか使えないのですか?
お願いします。
0543デフォルトの名無しさん
NGNG1を読め
0544デフォルトの名無しさん
NGNGa=45.1 と代入すると
実際は 45.099998 が入ってしまいます。
45.1 丁度を入力する方法ってないでしょうか?
よろしくお願いします
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG勉強が足らんな。二進数での浮動小数点表示げたばき式を勉強して来い
0547デフォルトの名無しさん
NGNGそうなんですか。
今作っているプログラムで、
人が入力した数字(例:45.1)をfloat 変数にしまっておいて、
後からその入力した数字を再度、45.1として取り出したいのですが、
何かいい方法はありませんか?
処理の関係上、float変数は変更したくないのですが。
0548デフォルトの名無しさん
NGNG無い
0549デフォルトの名無しさん
NGNGならその文字列を保存しておけば。数値に変換しないで。
0550デフォルトの名無しさん
NGNGint main(void){
float a = 45.1;
printf("%.1f\n", a);
return 0;
}
0551デフォルトの名無しさん
NGNGそれを踏まえた上でfloatを使うべきではないのかい?
0552デフォルトの名無しさん
NGNG具体的にどういう処理をしたいの?
0553デフォルトの名無しさん
NGNGありがとうございます。
参考にさせていただきます
0554デフォルトの名無しさん
NGNG1万倍しておけばいいじゃない
0555デフォルトの名無しさん
NGNG例えば100倍にしておけば、1/100まで誤差が出ないからね。
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGパピプッ
0558デフォルトの名無しさん
NGNGLinux 上でネットワーク通信するときに、C 言語からパケットロス率を取得するには
どのようにするのが常套手段なんでしょう。
ひょっとして、/proc の下を見るとかするとわかるんでしょうか。
わかる方、お願いします。
0559デフォルトの名無しさん
NGNGこのスレで聞くのは間違ってる。
ここのスレ的な答えだと、「標準Cではできない」となる。
0560デフォルトの名無しさん
NGNG誤差無しで小数計算するときは
普通整数で固定小数点計算するだろー。
0561デフォルトの名無しさん
NGNG整数で計算したら、こんどは少数点が出たら大きな誤差になってしまう
誤差は出るものだけど、誤差が出るのを遅延させるのが金銭型方式だよ
0562デフォルトの名無しさん
NGNGC#のDe??????とか言う型じゃなかったっけ? うろ覚えですけど
0563デフォルトの名無しさん
NGNG上下何桁でも誤差はでないよ
遅いかもしれんがね
0564デフォルトの名無しさん
NGNG0565bloom
NGNG0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGどこに接続されているのか調べる方法は知らない。つーか>>1
0568デフォルトの名無しさん
NGNG10で割れなきゃダメだろそれ・・・ 3.33333333 どうするだ?
と言われて 分数型を作ったら、今度は√2どうするんだ? といわれてるだろうな。
汎用を求めちゃいけないよ。
金銭を扱う一番簡単で信頼性のある方法は、単に入力時に1万倍して扱う方法だ。
1.23 これには誤差がある だから1万倍してその時に丸めて持つ。
まあ、金利が1.23% のように少数点以下2桁しかないという全体での1万倍なんだけどね
0569デフォルトの名無しさん
NGNGwhile(c=fgetc(stdin), c != KOF){}
どっちの書き方がスマートですか?
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNGの使い方を教えてください
0576デフォルトの名無しさん
NGNGそんな関数知りません。
0577デフォルトの名無しさん
NGNG前者だろ。後者は見たことない。
>>575
なにそれ。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGvoid main(void)
{
int a,b,c,d,e,f,g;
printf("===============================================");
printf("いまから四則演算をする数値2つ入れなさい");
printf("===============================================");
printf("1つ目");
scanf("%d",&a);
printf("二つ目");
scanf("%d",&b);
c=a + b;
d=a - b;
e=a * b;
f=a / b;
g=a % b;
printf("演算結果");
printf("%d + %d=%d\n",a,b,c);
printf("%d - %d=%d\n",a,b,d);
printf("%d * %d=%d\n",a,b,e);
printf("%d / %d=%d\n",a,b,f);
printf("%d % %d=%d\n",a,b,g);
printf("\n");
printf("\n");
printf(" 以上\n");
}
エラーが11もでた。誰か教えて。
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG俺は下のほうが好き。
0583デフォルトの名無しさん
NGNGエラーは出ないのでは?
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGおいおい、まさかこれ、このままコンパイラ通したんじゃないだろうな?
ってか、全角スペースとか、最後の‘}’とかさ、書き込むときに間違っただけだよな?
あと個人的に main() を void にすんなと思った。
#include <stdio.h>
int main(void) {
int a,b;
printf("===============================================\n");
printf("いまから四則演算をする数値2つ入れなさい\n");
printf("===============================================\n");
printf("1つ目\n");
scanf("%d",&a);
printf("二つ目\n");
scanf("%d",&b);
printf("\n演算結果\n");
printf("%d + %d=%d\n",a,b,a+b);
printf("%d - %d=%d\n",a,b,a-b);
printf("%d * %d=%d\n",a,b,a*b);
printf("%d / %d=%d\n",a,b,a/b);
printf("%d %% %d=%d\n",a,b,a%b);
printf("以上\n");
return 0;
}
0586デフォルトの名無しさん
NGNG}
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG仕様
0590デフォルトの名無しさん
NGNG#define begin {
#define end }
#define Result return
int main()
begin
Result(0);
end
0591デフォルトの名無しさん
NGNG最大の謎はなぜstdlib.hをインクルードしているかだな。
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG設計ミスだろ(プ
0594デフォルトの名無しさん
NGNGint i = 6, j=5;
bool t = i == j;
これで=の方が先に評価されたら困るから。
0595デフォルトの名無しさん
NGNG無能を早い段階で排除するためにそうなってます
0596デフォルトの名無しさん
NGNG無理矢理だな(稈
0597デフォルトの名無しさん
NGNGほかの比較演算子との整合性をとるためだと思われ
== != > < とかとね
つまり、
bool hoge = i > j;
だったら>の方が上なわけで、とすると==も上になるわけで
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG同意
コンマより低かったら困るけどな。。。
0601デフォルトの名無しさん
NGNGちょっとワロタw
0602600
NGNGあれ?間違った?
0603デフォルトの名無しさん
NGNG日本の自動車が左側通行なのと同じ程度の理由だと思われ。
>>594
初期化構文中の = 記号は "演算子" では無い筈だが・・・
ネタ?
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGmain()
{
char i,j=0,k;
printf("please input num(maz 15)=>");
scanf("%d",&j);
for(;j<16;)
{
for(i=0;i<j;i++)
{
for(k=0;k<=i;k++)
printf("*");
printf("\n");
}
j=16;
}
}
0606605
NGNGコンパイルが通りません。
なぜですか?
0607デフォルトの名無しさん
NGNG処理系を正しく設定してないんだろ
0608デフォルトの名無しさん
NGNGを
int i,j=0,k;
にするべし
原因はスタックが壊されてるから。
0609608
NGNGコンパイルは成功したけど。
0610デフォルトの名無しさん
NGNG具体的にどういうエラーが出るんよ
0611デフォルトの名無しさん
NGNGとりあえず main は値を返すべきだと思うが
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGCの構文規則調べた事ある?
これって、Cの基礎知識だと思うのだが・・・
0615鈴木健一郎 (NT4.0/2000/XP)
NGNG感じのデータをいっぱい入力させといて、
w3 = GetData("Yamazaki","weight")
こんな感じで取得するプログラムを作っています。
で、ここでマニアックな質問なんですが、このプログラム(クラス)に
カッコいい名前をつけてください。
名前が決まらないのでコンストラクタが作れないし、ファイルに保存が出来ない・・・。
周りに聞いたら IDMapper IDManager とかちょっとセンスのない名前しか挙がらない。
0616デフォルトの名無しさん
NGNG命名スレにゆけ
0617デフォルトの名無しさん
NGNG領域さえ確保出来れば、formatコマンド等でどうにかなりそうな気もするんですが。
0618デフォルトの名無しさん
NGNGC#ってなに?
C++とは違うの?そもそもオブジェクト指向なの?
最近時代に取り残される感じがする・・・
だれが簡単に説明してちょ!
0619デフォルトの名無しさん
NGNG・・・何が?
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG激しくスレ違い。
0622鈴木健一郎 (NT4.0/2000/XP)
NGNGああ、そんなスレがあったんですね。知りませんでした。
ではそちらに行ってきます。
0623デフォルトの名無しさん
NGNGint main(void){
int i;
do{
i=getchar();
if(i==EOF){
printf("入力時エラー");
break;}
if(putchar('.')==EOF){
printf("出力時エラー");
break;}
}while((char)i!='n');
return 0;}
入出力時のエラーをチェックするらしいのですが、
どのような値を与えてやるとエラーになるのか分かりません。
教えて下さい。
0624デフォルトの名無しさん
NGNG基本的にはエラーは起きないと思うが・・・
エラー時はEOFって定義されてるからだと覚えておくだけでいいかも
・・・だめですか?
0625デフォルトの名無しさん
NGNG入力時エラー)
ファイルにリダイレクトしてる場合はファイルの最後。
してない場合は Ctrl+D 。
出力時エラー)
ファイルにリダイレクトしてる場合はディスクフルか、
場合によってはディスクに書き込む許可が無い場合にもあるかも。
(読み込み専用のファイルにリダイレクトが不可能な環境でも、
起動したと同時に別のプログラムでファイルへの書き込みが禁止されたら
putchar が失敗しうる)
それ以外では普通出ないと思う。
0626デフォルトの名無しさん
NGNG入出力をネットワーク上のファイルに割り当てといて、実行中に LAN ケーブルを抜く。
いくらでも考え付くが。
0627デフォルトの名無しさん
NGNGどこかに参考になるソースはないでしょうか?
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGそれはあんまり良くないな M系列の方がマシだと思うぞ
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNGint main(void){
for(;;){
printf("%d",rand/0.5);
}
return 0;
}
0632デフォルトの名無しさん
NGNGありがとうございます。本にも「普通は戻り値がEOFかどうかチェックしない」と
書いてありましたし、エラーの場合はEOFが戻り値として返ってくるんだな。と
覚えておきます。
0633デフォルトの名無しさん
NGNGchar* hoge = "かわうそくんひどいや";
のような文字列の各文字を任意の文字に変更したいんです。
0634デフォルトの名無しさん
NGNGその例はconstだからダメ。
0635デフォルトの名無しさん
NGNGwcharを使うのが良いのかもしれない
あるいは、漢字コードを意識して複数バイトで処理する、ぐらいか
char *geho = "砂男がいますあべしたわば";
while(1)
{
x = lrand48() % ( strlen(hoge) / 2 );
y = lrand48() % ( strlen(geho) / 2 );
memcpy(hoge+x*2, geho+y*2, 2);
printf("%s\n", hoge);
}
>>634
-fwritable-strings とかなんとかするんじゃない?
0636デフォルトの名無しさん
NGNG全部2バイト文字ならな。
細かい操作を何度もする場合は
UNICODE が確かに扱いやすいけど、
読むだけとかだったら isleadbyte を使って
シコシコやったんでいいかと。
0637634
NGNG-fwritable-stringsは、過去のコードをコンパイルする時以外に使うんじゃねぇ!
新規にコード書く時には使うなよ。
それとコード例、随分乱暴すぎるぞ。
半角文字も考慮して書き直してみろや。
ここで発表しろとは言わんけど。
0638デフォルトの名無しさん
NGNGWin32で動作するコンソールアプリケーションで文字の色を変える場合にはコンソールAPIを利用するしかないということでしょうか?
0639デフォルトの名無しさん
NGNGwchar_t *wc = "ち0こ";
wc[1] = 'ん';
wc[2] = 'げ';
で
ちんげになるの?'
0640デフォルトの名無しさん
NGNGANSIシーケンスでぐぐる
0641デフォルトの名無しさん
NGNG普通にコンソールって言うと VT100 とかを思い浮かべますが。
0642デフォルトの名無しさん
NGNG家でC言語を動かせる環境ってどうやれば作れるんですか?
0643デフォルトの名無しさん
NGNG何から説明すりゃいいんだ?OSからか?
0644デフォルトの名無しさん
NGNG>>1-15あたりに書いてるのはもちろん読んでるんだろうな
0645642
NGNG0646デフォルトの名無しさん
NGNGxxgdbを使いたいのですが
インストールなどの操作は分りません。教えてください。gdbはすでにインストールし
ています。
0647デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNGスレ違いだが、NTではansi.sysは動かんというのが定説。
0650デフォルトの名無しさん
NGNGcygwinならUNIX板とWindows板(?)に専用スレがあるのでそっちへGO!
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG話はそれからだ
0653デフォルトの名無しさん
NGNGを解くプログラムがわかんないんですけど教えてください。
0654デフォルトの名無しさん
NGNG家にはPC-9801FA2があります。
CPUがi486SX16MHz、メモリは1.6MB、HDDは20Mで5インチのFDDが2つついています。
起動するといきなりN88-BASICが立ち上がりますが、これでC言語をやりたいのです。
まず何をすればいいのでしょうか?
0655デフォルトの名無しさん
NGNGint s = 1, a = 1;
for (i=1; i<=n; i++) {
a *= x/i;
s += a;
}
0656デフォルトの名無しさん
NGNGMS-DOSを手に入れる。
Cのコンパイラを手に入れる。
0657デフォルトの名無しさん
NGNGごめんdoubleやね。
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG今書き込んでるPC使えよ。
0661デフォルトの名無しさん
NGNG質問 自ホストの接続ポート番号を指定するにはどうすりゃいいの?
0662デフォルトの名無しさん
NGNGしかし、関数のextern宣言とは何のためにするのですか?
例
int func_C( int n )
{
extern int func_A( int n );
}
関数は何処からでも参照できると、思うのですが、、、?
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGありがとう。
でも
プロトタイプ宣言?
関数int func_A( int n ); を使うために行うのですか?
externは要らないと思うのですが?
0666デフォルトの名無しさん
NGNG意味わからん。
0667デフォルトの名無しさん
NGNGstaticをつけると他のファイルから呼べなくなる。
externはその逆。デフォルトだから普通はつけないと思う。。。
0668デフォルトの名無しさん
NGNGFAQの1.11に書いてあるよ。
0669667
NGNG試したことないから知らない。
0670デフォルトの名無しさん
NGNG> externは要らないと思うのですが?
なくてもいい。
0671デフォルトの名無しさん
NGNGもう寂しい生活とは縁を切ろうね!
愛して 愛される そんな出会いがなきゃ
生きてる 意味がない!
http://www.sweet.st
0672662
NGNGありがとう。
でも、いまいち分からないなあ。
C FAQ 日本語訳 より抜粋
1.11:
関数宣言についたexternは何を意味するのか。
A:
こういう書き方をすることで、関数の定義がたぶん別のソースファイ ル
にあるということを、ほのめかすことができる。
externは書かなくてもいいみたいですね。
追加質問です。
int func_C( int n )
{
/*extern int func_A( int n );*/
}
func_Aが、別ファイルにある場合、
このようにすると、func_Aは使えなくなると解釈してよいですか?
0673デフォルトの名無しさん
NGNGCでは別にプロトタイプ宣言がなくても呼べる(定義でstaticがついていなければ)。
でも引数チェックやら何やらができなくなるからやめた方がいい。
0674672
NGNG納得です。
関数のプロトタイプ宣言を、異なるソースファイル間
でおこなうわけですね。
これで、引数チェックが行われて、バグを作らなくなる
わけですね。
納得しました。
異なるソースファイルにある関数を使いたいときは
externで宣言しとけですね。
K&Rには載っていなかったですよ。。。
0675デフォルトの名無しさん
NGNG普通は宣言はヘッダーファイルに書いてそれを様々なソースファイルからインクルードする。
static関数(←呼び方おかしいかも)の場合は他のファイルから呼ばれることはないので(定義と同じ)ソースファイル内で宣言する。
0676674
NGNG了解です。
そうですね、私はそうしています。
他人が作ったプログラムに、上記のような記述が
あったので、何でだろうと思ってました。
その人はヘッダーに書くより、作成中の関数に、
externとして宣言するほうが管理しやすいと考えたんだろう
と思います。
他人の作った関数を利用するには良い方法だと
考えます。
0677デフォルトの名無しさん
NGNGint ab(void){return printf("extern");}
−−main.c
extern int ab(void);
int main(){return ab();}
static int ab(void){return printf("static");}
どっちが表示されますか?
0678デフォルトの名無しさん
NGNGそれって、コンパイルできるの?
0679デフォルトの名無しさん
NGNGint a = 2;
int main(void){
int a = 1;
return printf("%d\n", a);
}
と同じ、スコープが狭い方が有効になる。
0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNGグローバル変数にアクセスするときはどうしたらいいの?
C++だと::aだけど。
0682デフォルトの名無しさん
NGNG仕様です。できません。
0683デフォルトの名無しさん
NGNGできないのか・・・・サンクス
0684デフォルトの名無しさん
NGNGそんなあほなことしないけど^^;
0685デフォルトの名無しさん
NGNGその例だと、ローカルな方は参照される前にちゃんと宣言されてる。
プロトタイプはab.cにあるab()を指してるし、呼び出した時点ではコンパイラはstaticのab()を知らないわけで、
それでもstaticの方なの?
試した?
0686デフォルトの名無しさん
NGNG表示しないようにしたいのですがどうすればよいのでしょうか?
例えば、3:4:5が表示されたら、6:8:10は表示しないようにしたいのです。
#include <stdio.h>
int main()
{
int a,b,c;
for(a=2; a<1000; a++){
for(b=2; b<1000; b++){
for(c=1; c<1000; c++){
if(a*a==(b*b)+(c*c)){
printf("%d:%d:%d\n",a,b,c);
}}}}
return 0;
}
0687デフォルトの名無しさん
NGNGexternって出たよ
0688デフォルトの名無しさん
NGNGGCC だと、非 static と宣言した後に
本当は static だったということで警告が発せられる。
でも、一応 static が呼ばれる。
仕様ではどうなってるんだろ。
未定義?
0689679
NGNG翻訳単位の中で同じ識別子が内部結合と外部結合の両方で現れた場合,その動作は未定義とする。
とあった。
ちなみにgccでは警告が出るが、コンパイルは成功し、"static"が出力される。
bcc32では無警告でコンパイルは成功し、"static"が出力される。
0690デフォルトの名無しさん
NGNGint a(int n);
int main()
{return a(1);}
static int a(int x, int y){return x+y;}
これは問題なくても
WindowsAPIみたいに引き数がパスカル形式の関数呼びを騙したら落ちるじゃん
0691デフォルトの名無しさん
NGNGint()
が全てと思えばよい。
今から30年前のPDP8のコンパイラを考えれば
少しは、自分の恵まれた環境を考えろよ。
0692デフォルトの名無しさん
NGNG嘘つけるならプロトタイプの意味がないじゃん
0693デフォルトの名無しさん
NGNGそらエラーやろ。
昔のことは知らんが。
0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGCだと通ってしまうのか
0697デフォルトの名無しさん
NGNGなんのこと?
>>690ならコンパイルの段階でエラーだと思うけど。定義も宣言も同じファイルなんだから。
0698デフォルトの名無しさん
NGNGどのような感じに作ったらいいでしょうか?
0699デフォルトの名無しさん
NGNGそれスタックなのか・・・?キューじゃなくて?
0700デフォルトの名無しさん
NGNGそうじゃないスタックも作ってみたいと思ったわけです。
そんなに難しいのでしょうか?
0701デフォルトの名無しさん
NGNGネタか?
0702デフォルトの名無しさん
NGNGほとんどというか、そういう構造をスタックと言うんだと思っていたけど。
0703デフォルトの名無しさん
NGNG中国が嫌っている言葉だな
0704686
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG約分できる=素数でないので
素数の判定をして、素数だけ出力すればいい。
素数の判定方法は宿題とする
0707デフォルトの名無しさん
NGNG違うって。
0710デフォルトの名無しさん
NGNGfor(i=2; i<=a; i++)
if (a%i==0 && b%i==0 c%i==0) return 0;
return 1;
みたいな関数書けばいいんちゃうの?
0711デフォルトの名無しさん
NGNGえらはりとねすのふるいだな。
でも結構面白い、みんながんばれだな。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG0715685
NGNGあ、そうですね。
aをa^2=b^2+c^2が成り立ってて、かつ約分できない場合は
aが素数となるんですね。
どうもありがとうございました。
ただ、エラトステネスのソースは思いついてないので、
以前作った因数を調べる素数テスタで図ってみたいと思います。
本当にありがとうございました。
0716685
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG文字列で表したら\r\nだ。
\nなんて書くんじゃねぇ。
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNGファイルにリダイレクトして、
いろんなアプリで開いてみろ。
ぼけ。
0722685
NGNG素数じゃありません。
>>718
このスレであってるはずです。
色々考えたんですが、3辺の比のうち、どれかが素数であればいいことがわかりました。
ソースに素数判定ソースを組んで見たいと思います
0723638
NGNGそうなのですか…。やむを得ないので機種依存するという前提でプログラムを作ってみます。
MSXの改行はchr$(13)だから\rだけど文字コードとかDOS互換のはずだから\r\nだと思う…よーわからんが。
0724デフォルトの名無しさん
NGNG>>1を見ての発言か?
0725デフォルトの名無しさん
NGNG共通の約数を持ってるかどうかだから、ユークリッドの互助法が適当だろう
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNG動きません。なぜでしょうか。なんだったら自分は
そのプログラムをここに書いても構いません。プログラマー目差してるのに早速挫折しそうです。
助けてください。
0728デフォルトの名無しさん
NGNG正直、向いてないので今からでもサッカー部に入ってJリーグ目指しなさい。
0729デフォルトの名無しさん
NGNG少なくとも動かないってのはどういうことなのかぐらい書けと。
コンパイルが通らないのか、実行しても何も起きないのか
0730デフォルトの名無しさん
NGNGttp://www.vector.co.jp/soft/win95/prog/se080832.html
ここのソフト使って作ってるんですけど・・・
実行してもobjがないとかですぐウインドウ閉じちゃうんです。
>>728
消防時代サッカー選手を目差し少年団やってましたがあまりに下手で
試合に選ばれなかったので挫折しました。
本当に助けて下さい。このままではスポーツもだめ、パソコンも駄目の超駄目人間になってしまいます。
助けてください。
0731デフォルトの名無しさん
NGNG% a.out abcdeのように
コマンドライン引数に"abcde"のような文字列を指定し、
main(int argc, char *argv[])で受け取ると
例えば3文字目の'c'を参照する場合はどうすれば良いでしょうか?
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNGchar c = argv[1][2];
0735デフォルトの名無しさん
NGNGありがとう。やってみます。
0736デフォルトの名無しさん
NGNGHSPスレで聴いた方がいいんじゃない?
0737730
NGNGUPしました。改行なくて滅茶苦茶ですが・・・
>>735
ここが一番親切に教えてくれると思うのでここに居させてもらいます(汗
0738デフォルトの名無しさん
NGNG> 本当に助けて下さい。このままではスポーツもだめ、パソコンも駄目の超駄目人間になってしまいます。
> 助けてください。
2chで教えて君してる時点で既に超々駄目人間。
0739デフォルトの名無しさん
NGNG9x時代には\nで改行できたのですが、XPではできなくなってしまいました。
どうすれば改行できるのでしょうか?
0740デフォルトの名無しさん
NGNG.................
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGWindowsは\r\nだと言ってるだろ ぼけぇぇぇ
0743デフォルトの名無しさん
NGNG私はいつもこんな感じで関数テーブルを作ってます。
static u_char* (* const fncTbl[])( int a ) = {
……
……
};
で、実際の呼び出しは
(*fncTbl[2])( param );
って感じです。
が、知人曰く、
1・宣言時に、const って変じゃない?
2・呼び出しはもっとシンプルに
fncTbl[2]( param );
だそうです。
1.は別にあっても良いような気がしますが、(書き換えないだろうし)
2.は結構驚きでした。
一応どっちでもうごくみたいですが、どっちが正しい書式なんでしょうか?
無知な私に答えうぉ〜
0744デフォルトの名無しさん
NGNG> 1・宣言時に、const って変じゃない?
変じゃない。
> 2・呼び出しはもっとシンプルに
> fncTbl[2]( param );
すごく古い処理系では通らないことがある。
0745デフォルトの名無しさん
NGNG>一応どっちでもうごくみたいですが、どっちが正しい書式なんでしょうか?
どっちもただしい
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGchar a[9] = "風林火山";
printf("%s",a);
がちゃんと表示されるのは何故なのですか?
windowsは日本語の表示に S-JIS を使っていて
127以上の数値も使われていると思うのですが
0749デフォルトの名無しさん
NGNGこの条件式のような比較は許されないんでしょうか?
どうやってもsegmentation faultが出るんですが・・・
char c = 'a';
if(c != '\0'){
・・・
}
0750デフォルトの名無しさん
NGNG一文字に2バイト使ってるから。
>>749
デバッガを使ってどこで落ちているか確かめてくれ。
きっとポインタの使い方がおかしい。
0751デフォルトの名無しさん
NGNG勉強しなおしたまえ。
2Byteでひとつの文字をあらわしてるんだよ。
"風"とかは二つに分けられてメモリ上に入れられる
0752名無し@沢村
NGNG横に長くなるので、スクロールバーをつかって表示を切り替えるようにしています。
また画像をクリックしたらその画像の上に縦線を描画するようにしました。
でも画面をスクロールしたときに一番左端にくる画像をクリックした場合、うまく縦線が描画されません。
これがその部分のソースですが、どこが悪いのでしょうか?
つまり//マウスをクリックしたX座標が50以下のとき という部分です。ご指導お願いします。
void DrawRline( HDC MemDC)
{
int i;//editpos スクロールバーの位置
for(i=1;i<=_Index[T];i++)
{if(i==1)//_Indexが1のとき
{ if((mousex>i_x[T][i-1]-(editpos*256)-20) && (mousex<=i_x[T][i]-(editpos*256)))
{_Pointa[T]=i_x[T][i]+3-_x_width[T][i]-(editpos*256);
break;}
}
else if(i>1)//_Indexが2以上のとき
{if(mousex<50)//マウスをクリックしたX座標が50以下のとき
{if((mousex>0) && (mousex<=i_x[T][i]-(editpos*256)))//
{_Pointa[T]=i_x[T][i]+3-_x_width[T][i]-(editpos*256);
break;}
}
else//マウスをクリックしたX座標が50以上のとき
{
if((mousex>i_x[T][i-1]-(editpos*256)) && (mousex<=i_x[T][i]-(editpos*256)))
{_Pointa[T]=i_x[T][i]+3-_x_width[T][i]-(editpos*256);
break;}}}}
SelectObject(MemDC,hPen);
MoveToEx(MemDC,_Pointa[T],112,NULL);
LineTo(MemDC,_Pointa[T],338);
}
0753デフォルトの名無しさん
NGNG即答ありがとうございます。
プログラムってシンプルな疑問ほどサーチエンジン検索で探しにくいので
助かりました。
>>746
確かに(w
慌てすぎ>俺
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGそのif文自体に問題は無い
cが配列だった場合は
c[i] != '\0'とか
*c != '\0'とか
*(c+i) != '\0'とか。
0756デフォルトの名無しさん
NGNG> char型の変数は -128〜127 しか入れられないと習ったのですが
これがそもそも間違い。char が符号付がどうかは処理系/コンパイルオプションによる。
また、>>748 のプログラムでは、符号拡張とかしないので unsigned char でも signed char でも問題ない。
0757デフォルトの名無しさん
NGNGCプログラマはif(c)と書く。
0758デフォルトの名無しさん
NGNGすみません。2バイトは分かっているのですが、例えば
「風」は 0x9597 ですよね。16進で95ということは
10進で149…127より大きいんじゃないでしょうか
何か根本的なところが間違っているのでしょうか
0759デフォルトの名無しさん
NGNGコマンドライン引数として受け取った"hoge"とかの文字列を比較してようと
してたんですが、以下のようにmainの一番上に条件式を置いてみたところ
やはりエラーが出ます。どこか間違っているでしょうかか?
int main (int argc, char *argv[]){
int i = 0;
if(argv[1][i] != '\0'){
・・・
0761デフォルトの名無しさん
NGNGじゃぁ、128以上に行くと負の数になる。
二進数で考えなー補数にだ
こんなことがあるから
unsigned char
にするにだ
0762759
NGNG0765759
NGNGはい。引数ないときはエラー出るようにしてますし、
printf("%c"argv[1][i]);とかで出力しようとすると
ちゃんと'h'とか表示されます。なぜかあの比較式が出たとたん
segmentation faultが・・・
0766デフォルトの名無しさん
NGNGって言うか、なんで argc 確認しないで if(argv[1][i] != '\0'){ なんて書くんだ ?
0767デフォルトの名無しさん
NGNG次のプログラムで足し算をしたいんですけど、
main()
{
int integer1, integer2, sum;
printf("1つめの整数を入力して下さい。\n");
scanf("%d", &integer1);
printf("2つめの整数を入力して下さい。\n");
scanf("%d", &integer2);
sum = integer1 + integer2;
printf("和は %d\n", sum);
return 0;
}
出力は以下のようになるかと思ったんですけど、
1つめの整数を入力して下さい。
1
2つめの整数を入力して下さい。
4
和は 5
実行しても何も表示されないんです。それで2つの数字を入力してみると、
最後にprintfの文章がまとめて3行表示されるんです。
ほんの通りにやってるつもりなんですが…。どうしてでしょう??
すみません、教えて下さい!
0768デフォルトの名無しさん
NGNGsigned charで必ず表せる範囲・・・-127〜127
unsigned charで必ず表せる範囲・・・0〜255
あっている?
0769761
NGNGchar i = 129;
printf("%d",i);
こんな実験をやってみそ
0770デフォルトの名無しさん
NGNGflush
0771デフォルトの名無しさん
NGNGfflush(stdout);
0772デフォルトの名無しさん
NGNG> signed charで必ず表せる範囲・・・-127〜127
-128〜127
0773名無し@沢村
NGNG横に長くなるので、スクロールバーをつかって表示を切り替えるようにしています。
また画像をクリックしたらその画像の上に縦線を描画するようにしました。
でも画面をスクロールしたときに一番左端にくる画像をクリックした場合、うまく縦線が描画されません。
これがその部分のソースですが、どこが悪いのでしょうか?
つまり//マウスをクリックしたX座標が50以下のとき という部分です。ご指導お願いします。
void DrawRline( HDC MemDC)
{
int i;//editpos スクロールバーの位置
for(i=1;i<=_Index[T];i++)
{if(i==1)//_Indexが1のとき
{ if((mousex>i_x[T][i-1]-(editpos*256)-20) && (mousex<=i_x[T][i]-(editpos*256)))
{_Pointa[T]=i_x[T][i]+3-_x_width[T][i]-(editpos*256);
break;}
}
else if(i>1)//_Indexが2以上のとき
{if(mousex<50)//マウスをクリックしたX座標が50以下のとき
{if((mousex>0) && (mousex<=i_x[T][i]-(editpos*256)))//
{_Pointa[T]=i_x[T][i]+3-_x_width[T][i]-(editpos*256);
break;}}
else//マウスをクリックしたX座標が50以上のとき
{
if((mousex>i_x[T][i-1]-(editpos*256)) && (mousex<=i_x[T][i]-(editpos*256)))
{_Pointa[T]=i_x[T][i]+3-_x_width[T][i]-(editpos*256);
break;}}}}
SelectObject(MemDC,hPen);
MoveToEx(MemDC,_Pointa[T],112,NULL);
LineTo(MemDC,_Pointa[T],338);
}
0774デフォルトの名無しさん
NGNGそれ752だろ。
0775デフォルトの名無しさん
NGNGcharで必ず表せる範囲・・・-128〜127
signed charで必ず表せる範囲・・・-128〜127
unsigned charで必ず表せる範囲・・・0〜255
じゃないか?
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGどううまく行かないのかくらい書けよ。変数の簡単な説明モナ。
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGほかの使い方は知らない・・・
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNGなんか、limits.h の SCHAR_MIN が -127 のやつがちらほらあるんだがなんで ?
0783デフォルトの名無しさん
NGNG「保証される」
0784デフォルトの名無しさん
NGNGsigned charとunsigned charの重なり合う部分。
符号あり/なしは処理系依存だから。
0785デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int argc, char *argv[])
{
if (argc < 2) return 0;
if (argv[1][0] != '\0') puts("hoge");
return 0;
}
0786デフォルトの名無しさん
NGNG2の補数表現を使うとは限らないからでは
0787デフォルトの名無しさん
NGNGif(0 == ~0) /* 真になっちゃう? */
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG下のプログラムでは何がだめなんですかね。
#include <stdio.h>
int gcd(int m, int n){
int r = m%n;
return gcd(n, r);
}
0790759
NGNG入力した文字列の英字の部分以外を除外して出力する、という
ガッコの課題です・・・while文の比較式でセグが出ます。
#include <stdio.h>
#include <ctype.h>
char rmv(char);
int main (int argc, char *argv[]){
int i = 0;
int j = 0;
char ss;
char *alp;
if(argv[1] == NULL){
printf("errer!\n");
exit(0);
}
while(argv[1][i] != '\0'){
buf = rmv(argv[1][i]);
if(ss != '\0'){
*(alp + j) = ss;
j++;
}
i++;
}
printf("%s",alp);
return 0;
}
0791759
NGNGif(isalpha(c) == 0)
return '\0';
else
return c;
}
0792デフォルトの名無しさん
NGNGnが0かどうかチェックしていないところ。
0793デフォルトの名無しさん
NGNG絶句。
0794792
NGNG0795デフォルトの名無しさん
NGNGこれはなに?
0796759
NGNG0797デフォルトの名無しさん
NGNGalpはどこを指しているの?
0798デフォルトの名無しさん
NGNGchar *alp;
if(argv[1] == NULL){
printf("errer!\n");
exit(0);
}
for (alp=argv[1]; *alp; alp++){
if (isalpha(*alp)) putchar(*alp);
}
return 0;
}
0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNGそのコードだけだとしたらalpに実体がないのがアウトだね
char alp[512];
とかしないと。
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNGshortやlongはどうなっちゃいましょう?
そりゃ規格の許す範囲ならなんでもいいんでしょうけど
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNGintが64bitになるとは限らない。
32bitのままが主流と思われ。
longやlong longが64bitに割り当てられる場合が多いんでないかな。
intが64bitにならないと言う訳では無いので、過信しないように。
0808デフォルトの名無しさん
NGNGint==32bitと決めつけているソースがあまりにも多いからしかたなく・・・となんかの記事で読んだ覚えがある。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG16/32 ビットのどちらかしか使えなくなるよね。
char = 8 ビット
short ∈ [8, 64] ビット
int = 64 ビット
long ≧ 64 ビット
というか、こういうダサイ仕様はどうにかして欲しい。
0813デフォルトの名無しさん
NGNGそうなのか!!
int=64bit にすると 32bit 整数が無くなるからだと思ってた。
0814デフォルトの名無しさん
NGNGWin64の話か?
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGshort より短そう...
0817デフォルトの名無しさん
NGNGって本末転倒か
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGこんな感じでたのむ。
0820デフォルトの名無しさん
NGNG大却下
0821デフォルトの名無しさん
NGNGそれでも星の数は表せないだろうけど(自信なし)
0822デフォルトの名無しさん
NGNGもう東京ドーム何個分だよ
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGuint8_t
int_least8_t
uint_least8_t
int_fast8_t
uint_fast8_t
はあ
0825デフォルトの名無しさん
NGNG俺も俺も。
あと、if ( c == 0 ) は、 if ( ! c ) だな
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGif(!c)
は悪。
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNGp = (char *) malloc( 1024 );
if(! p)
{
とか
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG真偽値が int だったり bool値(true, false)だったり仕舞いには
void* だったり、条件式中で使い分けるのが面倒だから ! 派
0832デフォルトの名無しさん
NGNGif(!(p=(char *)malloc(1024)))
0833デフォルトの名無しさん
NGNGみたいなことができればいいのに。
0834デフォルトの名無しさん
NGNG多くの場合ジャンプテーブルに展開されるから、今からそれやるのは無理。
有ればいいとは思うのだが。
0835デフォルトの名無しさん
NGNG以下のような関数を作成しました。
int search(int key , tree *node , tree *findnode){
if(node->key == key){
findnode = node;//error 戻った時にfindnodeがNULLポインターになってる。
return 1;
}
if(node->key < key){
if(node->left != NULL){
if(search(key , node->left , findnode) == 1){
return 1;
}
}
}else{
if(node->right != NULL){
if(search(key , node->right , findnode) == 1){
return 1;
}
}
}
return 2;
}
findnodeに見つかったノードのアドレスをコピーして戻るということをしているはずなのですが
return 1;で戻った直後findnodeがNULLポインタに戻ってしまいます。
どこが間違っているのでしょう(^^;よろしくお願いしますm(_ _)m
0836デフォルトの名無しさん
NGNGそりゃ当然だと思うが…
void f(int a) {
a = 1;
}
b = 0;
f(b); /* bは1になるか?(ならない) */
と同じだよ。
*findnode = *node;
にすれば実体が代入されて幸せになれる(かもしれない)。
どうしてもポインタがほしいというのならば、パラメータfindnodeは
tree **findnode
と宣言して、
*findnode=node;
とやるしかないだろね。
0837デフォルトの名無しさん
NGNGhttp://game3.2ch.net/test/read.cgi/mmominor/1050889293/l50
http://219.96.231.242/wizonline/
あっ、誤爆
0838835
NGNGありがとうございます。
そういわれればそうですね。
tree *findnode
で宣言してたのでポインタ扱ってるはずなのになぁ(´-`).。oO
とつまってました。
もう一度!ありがとうございましたヽ( ´ー`)ノ
0839デフォルトの名無しさん
NGNGって時はどうしたらよいですか?
0840デフォルトの名無しさん
NGNG-rw-r--r--のようにファイルモードと許可ビットの文字列に
変換するにはどう処理を書けば良いでしょうか。
宜しくお願いします。
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG改行削ってから表示。
0843デフォルトの名無しさん
NGNG33188は8bitでは表せないと思うが
int mode = 33188;
char buf[12];
sprintf(buf, "%c%c%c%c%c%c%c%c%c%c",
S_ISDIR(mode) ? 'd' : S_ISFIFO(mode) ? 'p' : S_ISLNK(mode) ? 'l' : 中略 '-',
mode & 0400 ? 'r' : '-',
mode & 0200 ? 'w' : '-',
mode & S_ISUID ? mode & 0100 ? 's' : 'S' : mode & 0100 ? 'x' : '-',
mode & 0040 ? 'r' : '-',
mode & 0020 ? 'w' : '-',
mode & S_ISGID ? mode & 0010 ? 's' : 'S' : mode & 0010 ? 'x' : '-',
mode & 0004 ? 'r' : '-',
mode & 0002 ? 'w' : '-',
mode & S_ISVTX ? mode & 0001 ? 't' : 'T' : mode & 0001 ? 'x' : '-');
0844デフォルトの名無しさん
NGNGえっ、どうやるんですか??
0845デフォルトの名無しさん
NGNGBackspace
0846デフォルトの名無しさん
NGNGわざわざありがとうございます。
これほど面倒な処理だとは・・・
0847デフォルトの名無しさん
NGNGctime() だけでは表示しないと思うがこんな幹事か?
const char *p=ctime(&t);
printf("%.*s", strlen(p)-1, p);
0848デフォルトの名無しさん
NGNG>>845は無視するとして、ctime()の戻してきた文字列から改行コードを探し出して消してしまえばいい。
str = ctime(...);
strchr(str, '\n')[0] = '\0';
ctime()の戻す文字列は、最後が改行なのが保証されているからこれで充分。
0849デフォルトの名無しさん
NGNGctime()の戻す領域は使い回されるので早めに他の文字列に引き取るか
表示しないといけないので要注意。
つーか、表示するだけなら>>847でよかったか。
0850844
NGNG0851デフォルトの名無しさん
NGNG0852175
NGNG#include <stdlib.h>
void cofactor(int *a,int n,int i,int j,int *b){
int k,m;
for(k=0;k<=n-2;k++){
for(m=0;m<=n-2;m++){
if(k<i&&m<j){b[k*(n-1)+m]=a[k*n+m];}
else if(k<i&&m>=j){b[k*(n-1)+m]=a[k*n+(m+1)];}
else if(k>=i&&m<j){b[k*(n-1)+m]=a[(k+1)*n+m];}
else if(k>=i&&m>=j){b[k*(n-1)+m]=a[(k+1)*n+(m+1)];}
else {printf("error\n");}
}}}
0853175
NGNGint *a;int *b;int i,j,n;
printf("n*n行列aの余因子を求めます!\n");printf("n=");scanf("%d",&n);
if(NULL==(a=(int *)malloc(n*n))){printf("No memories!");return 0;}
if(NULL==(b=(int *)malloc((n-1)*(n-1)))){printf("No memories!");return 0;}
printf("aの要素をa00からa(n-1)(n-1)迄順番に入力して下さい\n");
for(i=0;i<=n-1;i++){
for(j=0;j<=n-1;j++){
printf("a%d %d =",i,j);scanf("%d",&a[i*n+j]);}}
printf("aの入力が終わりました\n");
for(i=0;i<=n-1;i++){
for(j=0;j<=n-1;j++){printf("a%d %d = %d ",i,j,a[i*n+j]);}
printf("\n");}
printf("i,j成分に関する余因子bを求めます\n");
printf("i=");scanf("%d",&i);printf("j=");scanf("%d",&j);
cofactor(a,n,i,j,b);
for(i=0;i<=n-2;i++){
for(j=0;j<=n-2;j++){printf("b%d %d =%d ",i,j,b[i*(n-1)+j]);}
printf("\n");}
return 0;}
0854デフォルトの名無しさん
NGNG0855175
NGNG上手くいきません。
エラーもなくコンパイルできるのですが、
間違った値がでてくるんです。
例えばaを
a[]={1,2,3,4,5,6,7,8,9}
という3*3行列にして
i=0;j=2;
とした時に、本来は
b[]={4,5,7,8}
とならないとおかしいのですが
b[]={4,4,7,8}
となってしまうんです。
もう泣きそうです、助けてください!
0856デフォルトの名無しさん
NGNG吐き気を催しました。
0857デフォルトの名無しさん
NGNG==を=と書いてしまった時にエラーがでるようにするためらしいけど、激しく違和感があるね。
0858175
NGNGそれはメモリが確保できなかった時に終了するルーチンです
持ってる教科書にこんな感じの例が載ってたので・・・
0859デフォルトの名無しさん
NGNG並び順のことを言っているんだけど。
0860859
NGNG0861175
NGNG並び順も教科書そのままなんです
「実習C言語」っていうのに書いてありました
0862859
NGNG○NULLを後にして==を=にして
0863175
NGNG分かんねえなら、いちいちレスすんなカス共
どうせ数学はリア厨以下なんだろ? 知ったかクン?
バカの癖して、しょうもねえとこばっかツッコミ入れやがってこの能なし共が!!!
おまえらみたいなカス共に期待した俺が浅はかだった
もういい、こんなとこ二度と来ねえよ
んじゃなカス共
0864175
NGNG偽者死ね
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNGb1 0 =7 b1 1 =8
だそうだが?
0867デフォルトの名無しさん
NGNG> if(NULL==(a=(int *)malloc(n*n))){printf("No memories!");return 0;}
> if(NULL==(b=(int *)malloc((n-1)*(n-1)))){printf("No memories!");return 0;}
おいおい、int のサイズは1バイトじゃねー処理系が多いぞ。
0868175
NGNGえ?
本当ですか?
私の環境では
b0 0 =4 b0 1 =4
b1 0 =7 b1 1 =8
になってしまいます。
私のPCが故障しているのでしょうか・・・
0869デフォルトの名無しさん
NGNGまた変数を全て一文字にするのはわかりにくく間違えやすい。
void cofactor(int a[], int n, int xi, int xj, int b[]){
int i, j;
int si, sj;
for(i = 0; i <= n - 2; i++){
si = i < xi ? i : i + 1;
for(j = 0; j <= n - 2; j++){
sj = j < xj ? j : j + 1;
b[i * (n - 1) + j] = a[si * n + sj];
}
}
}
0870175
NGNG有難うございます
参考になります
0871デフォルトの名無しさん
NGNGいや、それ以前に >>867 は理解したのか ?
0872175
NGNGいえ
さっぱり
0873デフォルトの名無しさん
NGNG0874175
NGNGint型はCPUによって違うけれど大体2or4バイトになっている。
故にn*nのint型を確保したいなら
4n*4nの領域を確保していれば良い。
よってこう書き換えればよい。
if(NULL==(a=(int *)malloc((4*n)*(4*n)))){printf("No memories!");return 0;}
if(NULL==(b=(int *)malloc(4*(n-1)*4*(n-1)))){printf("No memories!");return 0;}
ということですね
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNGC言語ができるぞと威張りたいとかなら別だが、Cなんかやめて VB とかにした方がいいよ。
せめて、C++ にでもしろ。malloc() は、お前には早すぎる。
0877デフォルトの名無しさん
NGNGもういいよ、int が 16バイトになるまでは時間は十分あるし、今時少々メモリーを取り過ぎたってどうてことないから。
0878175
NGNG有難うございます
sizeof(int)でint型が何バイトかを取得できるのですね
これを使えば、環境に依存しない形で書けるみたいですね
>876
VB使える環境ないです・・・
C++ですか、勉強してみます
0879デフォルトの名無しさん
NGNGいや、それ以前に >>877 は理解したのか ?
0880175
NGNGint型が何バイトになるかは環境によって違うということですよね?
0881175
NGNGつまり、これでint型のn*n行列を確保できる、と
0882175
NGNGn*n*sizeof(int)
とすべき所を
n*n*sizeof(int)*sizeof(int)
にしてたんですね・・・
0883デフォルトの名無しさん
NGNG0884175
NGNGmallocの部分を直したら正しい結果(>>866さんの書いた結果)が出るように成りました!
0885175
NGNG有難うございます
今度さがしてみます
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGTurboCとかDOS用のコンパイラのソースを動かそうとしてるの?
いま持ってるコンパイラに付属してなかったらあきらめたほうがいいよ。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNGint が 128bit でもいいかな、いや、256でも イイ! と思ってしまう...
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGgccで
(test1.c)
#include <stdio.h>
#ifdef PTR_G_STR
extern char *g_str;
#else
extern char g_str[];
#endif
int main(void)
{
return printf("%s\n",g_str);
}
(test2.c)
char const g_str[] = "this is test.";
とすると、
-DPTR_G_STRしない=>正常動作
-DPTR_G_STRする=>Segmentation Fault
になってしまいます。
K&Rにはchar a[] => アドレス固定;char *a =>アドレス不定
のような事が書いてあったのですが、いまいち釈然としません・・
上の場合、test1.c内での
g_strのアドレスはどのようにして決められるのでしょうか?
0894デフォルトの名無しさん
NGNGchar const g_str[] = "this is test.";
の g_str は配列であってポインタではない。
また、const である。
従って
extern char const g_str[];
が正しい。
すなわち、貴方のコードは 2 つとも誤っている。
0895デフォルトの名無しさん
NGNG当然です。配列とポインタは全く異なるものだからです。
定義したとおりに宣言しなくてはなりません。
0896894
NGNGポインタ変数=データの位置情報(ポインタ)を入れる変数
配列=データの羅列
であり、根本的に両者は異なる。
ポインタ変数の場合はデータの位置(ポインタ)を使って
間接的にデータにアクセスするが、
配列の場合はデータに直接アクセスする。
上の例の
const char g_str[] = "this is test.";
は配列である。
すなわち、文字列がそのままデータとして置かれている。
これを
extern const char* g_str;
で参照しようとしても、
「置かれたデータのどこにもポインタが存在しない」のである。
この状態では g_str の先頭数バイトに入っているデータをポインタとして無理矢理認識し、
そのポインタを使ってデータを参照しようとする。
しかし、そんなポインタが正常に働くわけも無く、Segmentation Fault になるのである。
0897895
NGNGおれも補足。つーてもURLはるだけ(w
http://www.catnet.ne.jp/kouno/c_faq/c6.html
これをじっくり読むよろし。
0898893
NGNGありがとうございました >894,895
0899デフォルトの名無しさん
NGNGもう大分昔に出た悪書ですな。
入門C言語とか応用C言語とかと3部作になってた気がする。
大体、三田某の書いていること信じたら駄目になるってば。
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNGああいう波形解析のプログラムってどうやって
書いてんの?
とりあえず俺はCしか知らないから
ここで聞いてみたわけだけど。
0902デフォルトの名無しさん
NGNG平成15年度 自作板PC環境調査 最新結果(一部抜粋)
◆4月分の結果が出ました。現在は5月分に移行しています。◆
平均年齢 25.4歳
ネット(2ch含) 78.7%
ゲーム 59.0%
Windows XP Family 46.9%
Windows 2000 Family 34.4%
Athlon 45.3%
Pentium 4 29.7%
平均RAM搭載容量 780MB
平均HDD搭載容量 166GB
nVIDIA 49.2%
ATI 28.9%
DVD-R/RW/マルチ 20.4%
CD-R/RW 75.9%
光ファイバー 8.3%
ADSL/xDSL 64.5%
CRT 74.6%
LCD 25.4%
0903デフォルトの名無しさん
NGNGどうやって、ってどういう意味で?
アルゴリズムならぐぐれ。
言語はどれででも書ける。
FFTは、C、FORTRAN、アセンブラで書かれた物が多い。
0904デフォルトの名無しさん
NGNGアルゴリズム。
FFTはなんとなくわかりそうだけど
DWTはなんかよくわからん。
もしオススメのサイトあったらキボンヌ
0905903
NGNGヘタレでスマンが、waveletは担当してないから、ようしらん。
会社行けばCのソース有るが・・・
ttp://www.amazon.co.jp/exec/obidos/ASIN/4627075111/ref=pd_bxgy_text_2/250-1439864-3561046
ところでこの本を見てくれ。こいつをどう思う?
0906デフォルトの名無しさん
NGNGお金とか、でいろいろ。
0907デフォルトの名無しさん
NGNG「こいつ」というのは、本のことか、著者のことか?
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNGaが非0だったら、という意味
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNGこれは正常。
0912デフォルトの名無しさん
NGNG>>910
ありがとうございました。はじめたばかりで不親切な教本買っちゃったもので
0913デフォルトの名無しさん
NGNG大丈夫だ。99%の本は不親切だ。
初心者向けに薦められる本などない。
0914デフォルトの名無しさん
NGNG始めたばかりの癖に
「不適切な教本」という評価を下せる
お前に乾杯!
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNGun
0917915
NGNGif(5)
printf("true\n");
0918デフォルトの名無しさん
NGNG本とかネットで探してもあんまりそういうの見当たらないんだ。
どういう風に表示するんだ?
画像処理の関数とかがあんのか?
0919デフォルトの名無しさん
NGNGVBなら楽だよ。VB使いなよ。
0920デフォルトの名無しさん
NGNGOS などの環境に依存する。
0921デフォルトの名無しさん
NGNG入ってるコンパイラってどんなのがありますか?
0922デフォルトの名無しさん
NGNG本とかネットで探してもあんまりそういうの見当たらないんだ。
どういう風に代入するんだ?
文字列代入の関数とかがあんのか?
0923デフォルトの名無しさん
NGNG真似すんな低脳。
そんなレベルのことならネットで調べろ。
OSに依存するんだな。
OSはWINだ。
画像処理系は難度が高いのか?
それともわざわざ解説書作っても需要が無いからなのか?
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG環境に依存するかどうかわからないやつに低脳などと言われたくないよ。
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNGわざわざ言うほどのことか?
0929デフォルトの名無しさん
NGNGサンクス。うまくゆきました。
0930デフォルトの名無しさん
NGNGVBじゃ駄目なんだ。Cをやりたいんだ。
でも初心者なんだからVBからやりなよ、
なんておせっかいはまっぴらごめんだぜ。
C++でも比較的簡単に表示できるみたいだが、
C言語では難しいのか?
C言語のグラフィック処理の資料が見当たらないのだが。
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG俺も早くそれくらいのレベルになりたいな。
おい、グラフィックどうやって表示するんだ?
簡単な例を示せ。
0933デフォルトの名無しさん
NGNG私、Cでは制御系しか作ったことないわよ。画像なんて聞いたことないわ。
自動販売機、エレベーター、パチンコの看板、ETCとか作ったけどね。
画像をいじりたいならJavaで決まり。サウンド系弱いけど画像は結構できる。
VBなんてレベルの低い人しか使わないよ。
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGGUIか、言葉だけ知ってて内容知らんから、とりあえず、
C言語で何ができるかどうか調べてみる必要がありそうだな。
質問はやめておいてしばらく「GUI」というものについて調べてみる。
また理解できてきたら質問しに来るからな。
また答えろよ。
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGまたのお越しを心よりお待ちもうしあげております。
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGVBはともかく、JAVAに導くのは妥当だと思うが。
0942デフォルトの名無しさん
NGNGそれよ!
配列で電球全てを制御して最後はちょっとやばいことになったけど
一度納入するとバグがなければ壊れるまでだからこれが一番手を抜いたわ!
0943デフォルトの名無しさん
NGNGうせろ、雑魚が。
プログラムを動かすには
コンピューターの総合的な知識が必要だってこと、
プログラムいじってみて分かった。
お前等ホント、パソコン好きだな。
俺も中学生くらいからパソコンいじっておけば良かった。
今の子供はパソコンが一家に一台の時代だから羨ましいぜ。
0944デフォルトの名無しさん
NGNGネタですか?
一家に三台ですが。
0945デフォルトの名無しさん
NGNGなんで手を抜くんだ
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNGお前ら、ヨソでやれ。
0948デフォルトの名無しさん
NGNG効率、信頼性なんて二の次よ!
0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG【プログラマは如何に手を抜くか?】
かい
0952デフォルトの名無しさん
NGNGJava厨らしい無責任さだな(w
0953950
NGNG0954デフォルトの名無しさん
NGNG俺が求めてる知識は多分GUIじゃないと思う。
bmp png gif そういう画像ファイルを表示したいだけなんだ。
それでだな、ゲームを作ってるHPなんだが、
http://www.game2channel.com/semi/programing/gpnyumon/06/index.html
ちらちらとこのHPを見てたんだが、グラフィック表示例の一行目、
#include"gmsub.h"
と、ある。この関数はHPからダウンロードして使ってくださいと書いてある。
こういうグラフィックの自作関数を作るのには相当なスキルが必要なのか?
もう頭ん中がパンパンだぜ。
0955デフォルトの名無しさん
NGNGプログラムなんてあってないようなもの製品がきちんと動けば
どう書こうが関係ないわ””どうせ見れないし。
社長が来てこのコードおかしいなんていうわけがない。
go to文Javaではbreak point:を使おうが関係ないないのよ。
でも今まで使った人見たことないけど。やっぱり会社で禁止されてんのかな?
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGとっとと教えてくれ。
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGC++;
0967デフォルトの名無しさん
NGNGありません
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNGJavaにしなさい。パッケージawtのGraphicsクラスのメソッド
g.drawImage(im,50,50);で一発で出るのよ。(imはImageで初期画済みね!gもGraphicsで)
コード全部で10行いかないわよ。
0970デフォルトの名無しさん
NGNGWindows2000で動くリンカーを教えてください。
0971デフォルトの名無しさん
NGNGMS-DOSで動きますか?
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNGプリプロセッサはさがさんで良いのか?
0975デフォルトの名無しさん
NGNGさっきから訊こうと思ってたんだが。
何故そこまでJAVAを嫌う。
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG押し付けてくるから
0979デフォルトの名無しさん
NGNGchar str[10];
fgets(str, 10, stdin);
こう記述されいると、strに格納されるのは9文字(+ヌル)ですよね。
もしキーボードから入力されたデータが15文字くらいあった場合、
文字数が多すぎて配列に入り切らないという旨のエラーを表示させたいんですが、
文字数はどうやって判断したらいいのでしょうか?
最初は改行文字が格納されているかどうかで判断しようと思っていたのですが、
9文字丁度の文字列が入力された場合の処理がよく分からなかったので。
なにかいい方法はありますか?
0980デフォルトの名無しさん
NGNG0981950
NGNGたてたよ。串探すのにてまどった
0982デフォルトの名無しさん
NGNG入力を促す時点で、制限バイト数を提示してはどうかね。
0983デフォルトの名無しさん
NGNGfgetsはファイルから1行読み込むのよ。
char *str;
int flag=0;
do{
if(flag==1)
printf("もう一度入力しろアホ");
gets(str);
if(10<(strlen(str)))
break;
flag=1;
}while(1);
まったくJava嫌いの人はどっかいっちゃったの?
0984デフォルトの名無しさん
NGNGfgets(str, 11, stdin);
0985デフォルトの名無しさん
NGNGネタやるんならキエロ
0986デフォルトの名無しさん
NGNG多めに取得して strlen() で判定。
0987デフォルトの名無しさん
NGNGgetchar() で一文字ずつ判定。
0988デフォルトの名無しさん
NGNGプ
0989デフォルトの名無しさん
NGNGないような。Cを使う理由が無いなら C++ を使う。
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNGどうせお前は プ しか書けないんだから、でてくんな。
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997996
NGNG0998999
NGNG0999999
NGNG10001000
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。