C言語なら俺に聞け(入門編)Part 76
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/01/06(木) 16:09:08★前スレ
C言語なら俺に聞け(入門編)Part 75
http://hibari.2ch.net/test/read.cgi/tech/1292682816/
★過去スレ
http://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++の宿題片付けます 145代目
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002Perl忍者 ◆M5ZWRnXOj6
2011/01/06(木) 16:25:040003デフォルトの名無しさん
2011/01/06(木) 17:56:37assignment_expression
: conditional_expression
| unary_expression assignment_operator assignment_expression
;
となっていますが、2番目の unary_expression まで飛んでしまうのは
*abc = 123; などはじめて左辺値として評価されるのが、unary_expression
だからでしょうか? C++ では
assignment_expression
: conditional_expression
| logical-OR-expression assignment_operator assignment_expression
| 送出式
;
となっていると思いますが、何か違いに意味があるのでしょうか?
0004Perl忍者 ◆M5ZWRnXOj6
2011/01/06(木) 18:10:04わかりますよ^^
0005デフォルトの名無しさん
2011/01/06(木) 19:21:200006デフォルトの名無しさん
2011/01/06(木) 21:10:21この1秒クロックでアキュムレータを駆動する。
このプログラムを教えてください。
0007デフォルトの名無しさん
2011/01/06(木) 23:02:480008デフォルトの名無しさん
2011/01/06(木) 23:36:27頭にstaticつけて静的変数として扱ったほうが安全?とかきくけどそどうしてですか
スタック領域が小さいから?
0009デフォルトの名無しさん
2011/01/06(木) 23:39:200010デフォルトの名無しさん
2011/01/06(木) 23:44:260011デフォルトの名無しさん
2011/01/06(木) 23:48:50安全かといわれると、はて、どうだろうか?
バッファオーバーランを引き起こす悪いコードを書いてしまっても、アーキテクチャによっては、被害がちょっとだけましになるかもしれません。
0012デフォルトの名無しさん
2011/01/06(木) 23:52:000013デフォルトの名無しさん
2011/01/07(金) 00:00:48危険だからstaticにするとか、言った本人に理由を聞かないと分からない。
0014デフォルトの名無しさん
2011/01/07(金) 00:05:380015デフォルトの名無しさん
2011/01/07(金) 00:14:34autoの場合うっかり不定値を参照することもなくはない
0016デフォルトの名無しさん
2011/01/07(金) 00:42:21二回目以降は前回の結果が残っているのだからあんまり変わらないんじゃないか?
0017デフォルトの名無しさん
2011/01/07(金) 05:31:48Cがよくわかりません
と言ってるようなもんでしょ
0018デフォルトの名無しさん
2011/01/07(金) 05:38:15// いちども関数uuu()を実行してないのに、なぜかuuu()が実行される不思議コード。
// ubuntu10.10(32bit) gcc4.4.5 で確認。 他のコンパイラだと上手くいかないかもしれない。未確認。
#include <stdio.h>
#include <stdlib.h>
// 不思議コード部分
void uuu(void) {puts("hello git!");}
unsigned int _______i;
// ---------- 元のプログラム ----------
void aaa(void) {
unsigned long a[4];
puts("hello world!");
_______i=42; while(_______i-->0){a[_______i]=uuu;} // 不思議を挿入ぅ〜〜♪
}
void main() {aaa();}
// aaa() の 配列a に、uuu()の ”アドレスを代入しただけ” なのに… なぜかuuu()が実行されてしまう。ろまんちっくぅ〜〜☆(^_^/
0019デフォルトの名無しさん
2011/01/07(金) 05:49:270020デフォルトの名無しさん
2011/01/07(金) 05:59:15ばかばかばーーーか
0021デフォルトの名無しさん
2011/01/07(金) 14:56:31初心者が無料で使えるので、エディタとかの開発環境でいいのありませんでしょうか?
0022デフォルトの名無しさん
2011/01/07(金) 14:59:030023デフォルトの名無しさん
2011/01/07(金) 15:05:23visual c++ expressのことでしょうか?
ダウンロードしてみたけど使い方わからなくて挫折してた,,orz
使い方覚えてこれでやってみます、ありがとお。
0024デフォルトの名無しさん
2011/01/07(金) 15:06:20じゃぁcodepadでいいんじゃない?
0025デフォルトの名無しさん
2011/01/07(金) 15:31:010026デフォルトの名無しさん
2011/01/07(金) 15:38:57bccがちょっとアレだけど
0027デフォルトの名無しさん
2011/01/07(金) 17:08:190028デフォルトの名無しさん
2011/01/07(金) 18:30:30error C4430: 型指定子がありません - int と仮定しました。
メモ: C++ は int を既定値としてサポートしていません
のようなエラーが出たんですが、なんか間違えてるかな?
教えていただいた、codepadていうブラウザで打つやつやってみたらちゃんと実行しました、
visual c++ express の使い方悪いのかな?
#include<stdio.h>
main()
{
int a ;
a=0;
printf("aの値は%dです",a);
}
0029デフォルトの名無しさん
2011/01/07(金) 18:38:250030デフォルトの名無しさん
2011/01/07(金) 18:49:58でもいいの?
0031デフォルトの名無しさん
2011/01/07(金) 18:52:04int main(void)にしたら、エラーでなくなりました、
でも、一瞬コマンドプロンプト見たいのが現れたけど、
すぐ消えて実行結果が出てこない・・
0032デフォルトの名無しさん
2011/01/07(金) 18:54:340033デフォルトの名無しさん
2011/01/07(金) 19:09:59スタックに詰まれたmain関数への戻りアドレス(次のプログラムカウンタ)
が uuu() 関数のアドレスに置き換わっている。バッファオーバーランの例
こういうことがstatic変数ではおきないだけ(他の静的変数の領域が
上書きされる)
0034デフォルトの名無しさん
2011/01/07(金) 20:51:16計算結果をメッセージボックスに表示させるだけでも、
WinAPIとか使わないとできないんだよね、
挫折しそうだけど、ここであきらめたら一生プログラムできない、
APIも勉強しないとだめかなぁ
0035デフォルトの名無しさん
2011/01/07(金) 22:23:14場違いな事もわからない奴は消えてくれないかな
0036デフォルトの名無しさん
2011/01/08(土) 00:05:47に出力しているのでしょうか?(gcc と同様に)
アセンブラ出力している場合は、どのアセンブラを起動しているのでしょうか?
ml コマンド version 9でアセンブルしようとすると、大きな静的局所変数(500kbyte程度)
が存在するとアセンブルが終了しないようですが?なにか制限があるのでしょうか?
(cl コマンドでビルドすると正常に終了します。)
0037デフォルトの名無しさん
2011/01/08(土) 00:56:230038デフォルトの名無しさん
2011/01/08(土) 01:10:40今はどうか知らない
SSE 非対応な VC6 でインラインアセンブラ可能にする Processor Pack
の中身ってlink.exe cl.exe 以外になんか変えてたような(MASM?) どうだっけなぁ…
VC++ といっても他のバージョンでは事情が違うかもしんない
0039デフォルトの名無しさん
2011/01/08(土) 02:07:07ということは、 cl の /FAs オプションでアセンブラテキストを吐くのは
単なるサービス機能ということなのでしょうか?
ml コマンドの制限でも何かご存知でしたらご教示願えませんか?
0040デフォルトの名無しさん
2011/01/08(土) 02:21:44そのとおり。
随分前に根本的な問題でMASMではアセンブル出来ないテキスト吐いてたぞ。
一時期直った気もするが再発したんじゃねーの?
0041デフォルトの名無しさん
2011/01/08(土) 08:57:090042デフォルトの名無しさん
2011/01/08(土) 10:14:02整数の範囲をチェックするには、
0 < a && a < 100
とか書けば良いと思いますが、これをビット演算等でやる方法はあるでしょうか?
0043デフォルトの名無しさん
2011/01/08(土) 10:43:01ビット演算のみなら特定の値の場合しか無理だよ。
例えば0〜7の場合、
(a & ~0x07) == 0
が成り立てばよい。
if使って良いなら任意の値で可能。
0044デフォルトの名無しさん
2011/01/08(土) 10:47:210045デフォルトの名無しさん
2011/01/08(土) 10:49:56大抵コンパイラがどうとでもやってくれる
0046デフォルトの名無しさん
2011/01/08(土) 11:01:11エラーがでてうまく計算してくれません、やり方間違ってるでしょうか?
#include<stdio.h>
#include <math.h>
int main()
{
double a,b,c,d;
printf("最初の値を入力してください\n");
scanf("%f" , &a);
printf("2番目の値を入力してください\n");
scanf("%f" , &b);
printf("三番目の値を入力してください\n");
scanf("%f" , &c);
d=a+b+c;
printf("dの値は%fです",d);
}
0047デフォルトの名無しさん
2011/01/08(土) 11:21:14コンパイルエラーは出ないと思うけど…
scanfの%fを%lfに変えてみ
0048デフォルトの名無しさん
2011/01/08(土) 11:23:01>2番目
>三番目
イライラする!アホか!
0049デフォルトの名無しさん
2011/01/08(土) 11:40:24おお、できました!
%lfのlつけるのは魔法なのかな、
昨日見た千と千尋の神隠しみたいです。
>>48
イライラしてもいいことないお
0050デフォルトの名無しさん
2011/01/08(土) 11:47:49%f は float で
%lf は double というそれだけのこと
printf では両方 %f だけど
0051デフォルトの名無しさん
2011/01/08(土) 11:49:022番目
三番目
よっつ目
005242
2011/01/08(土) 12:23:49ありがとうございます。
ビット演算等はあまり詳しくはないため質問させて貰いました。
なんとなく特定の条件でないと無理そうかなとは思いましたが、無理なのですね。
0053デフォルトの名無しさん
2011/01/08(土) 15:27:220054デフォルトの名無しさん
2011/01/08(土) 15:34:020055デフォルトの名無しさん
2011/01/08(土) 15:38:310056デフォルトの名無しさん
2011/01/08(土) 15:46:00ビット演算は、数値演算の代わりに使うときと、ビットの集まりとして使うときの2つの使い方がある。
数値演算の代わりに使うときは、1ビット左にシフトすると2倍になる、右にシフトすると半分になる、2の累乗をその-1で&すると剰余になる、等
10 << 1 = 20 (10 * 2)
10 >> 1 = 5 (10 / 2)
10 & 7 = 2 (10 % 8)
ビットの集まりとして使うときは、その数値としての面は無視する。0101が5だからといって、その5という数値には何の意味もない。
特定のビットを1にしたり0にしたり、1か0か調べたりする。
bool変数を32個持つよりint変数1個の方がコンパクトだというだけの理由でそのように使う。
0057デフォルトの名無しさん
2011/01/08(土) 15:46:440058デフォルトの名無しさん
2011/01/08(土) 16:00:09詳しい解説どうもありがとう。
まぁ言われてもイマイチ有効性が分からないのはまだまだ理解出来てない証拠なんだろうけどとりあえず勉強した方が良いですね。。
0059デフォルトの名無しさん
2011/01/08(土) 16:30:55ビット演算の何が嬉しいかというと、別に大したことじゃなくて、ほんのささいなことだ。
乗除算よりビット演算の方が速い。(同じことをするなら速い方がいいだろ?)
bool変数32個よりint1個の方が使うメモリが少ない。(同じことをするならメモリ少ない方がいいだろ?)
これらに価値を感じないなら使わなくても別に何も困らないが、他の人は価値を感じて使いたがるかもしれないから、
人のコードを読めるように勉強はしておいた方がいい。 人の作ったライブラリを使うこともあるだろうし。
0060デフォルトの名無しさん
2011/01/08(土) 18:51:24メモリ/リソースを節約するため
大量のデータを処理する場合、int単位など贅沢なメモリの使い方ができず、必要なビット数に収めるのにビット演算を使う。
→画像、動画、データ圧縮
通信やハードウェアの設計はリソースを節約したものになっているので、処理にはビット演算が必要。
→通信データの処理、ハードウェアレジスタのアクセス(ドライバ)
論理演算をするため
ビット演算(論理演算)は当然ながら論理値の取り扱いに親和性が高いので、自然とビット演算を使う。
算術演算の代用
すでに前の人が説明しているとおり。
0061デフォルトの名無しさん
2011/01/08(土) 20:30:41なるほどリソースの節約と算術演算する速度が速いんですね。
使用例もあげて詳しく説明してくれて本当にありがとうございました。
0062デフォルトの名無しさん
2011/01/08(土) 20:57:12は何か意味があるのでしょうか?
初めて見たのですが
printf("文=[%s]\n", buf);
{
int i;
printf("文=[0x");
for ( i=0 ; i<len ; i++ ){
printf("%X", buf[i]);
}
printf("] (16進数)\n");
}
0063デフォルトの名無しさん
2011/01/08(土) 21:00:340065デフォルトの名無しさん
2011/01/08(土) 21:08:160066デフォルトの名無しさん
2011/01/08(土) 21:18:14おおそうだ、switc内のcase: break; 間に使う変数が
他のcase:とぶつかったので、ブロックスコープしたことがあった。
いや、ちょっと長いswitchだったからね。
0067デフォルトの名無しさん
2011/01/08(土) 21:20:50>>63 のいうように局所変数 i を for のイテレータとして使うことが慣用
になっていて、かといって関数内で他に i を使うこともなかったので
ここで便宜的に導入したのでは?
あと、用途にもよるけどprintf("%X", buf[i]); → printf("%02X", buf[i]);
として'\n','\t'も2桁で表示できるようにした方がいいと思う。
0068デフォルトの名無しさん
2011/01/08(土) 21:22:10今まで見たこと無かったせいか、ちょっと違和感がありましたが
便利そうですね。
0069デフォルトの名無しさん
2011/01/08(土) 21:29:04なるほど、勉強になりました。
でもこれってforループのブロックで宣言されれば分かり難いですね
下の場合はエラーになります。
for(int j=0;j<100;j++)
{
int i;
i=0;
}
printf("%d",i);
0070デフォルトの名無しさん
2011/01/08(土) 21:31:17switch (hode) {
case xxx: { int i; ... } break;
}
こういう感じ。
わざわざ外の先頭ブロックに戻って変数の追加の必要がないので
つらつらと思いつきつつ書き流す時は楽
0071デフォルトの名無しさん
2011/01/08(土) 21:48:18for(int j=0;j<100;j++) としているので C++ でコンパイルしている?
C, C++ でも同じですが、 i の有効範囲は for ブロックの最後の } で終りなので
} の後では、 i は未定義状態またはより外部のスコープで定義された i です。
0072デフォルトの名無しさん
2011/01/08(土) 21:49:250073デフォルトの名無しさん
2011/01/08(土) 21:51:44説明不足ですみません。
C++ でコンパイルしています。
エラーはコンパイルエラーのことです。
i は未定義状態のエラーが出ました。
0074デフォルトの名無しさん
2011/01/08(土) 23:15:200075デフォルトの名無しさん
2011/01/09(日) 01:42:140076デフォルトの名無しさん
2011/01/09(日) 03:47:41ヽ(・ω・)/ ズコー
\(\ ノ
、ハ,、  ̄
0077デフォルトの名無しさん
2011/01/09(日) 10:05:45ビットシフトはなんの役に立つのでしょうか?
0079デフォルトの名無しさん
2011/01/09(日) 11:26:055年ROMれ
0081デフォルトの名無しさん
2011/01/09(日) 11:51:08bufは上で文字列として出力しているのでおそらくchar配列
となると printf("%02X", (unsigned char)buf[i]); とキャストしないとな
よくあるバグだ(処理系設定や使用状況によっては問題は無いが)
{ } は int i; の範囲を限定させたかったんだろうが、
printf("文=[0x"); は { } の外に出したので良いな
何か中途半端だ
0082デフォルトの名無しさん
2011/01/09(日) 12:41:270083デフォルトの名無しさん
2011/01/09(日) 12:47:51char buf[];
なら、符号拡張されるからでしょ
0084デフォルトの名無しさん
2011/01/09(日) 13:08:35C99だと出来るんだっけ?
0085デフォルトの名無しさん
2011/01/09(日) 13:19:120086デフォルトの名無しさん
2011/01/09(日) 13:30:170087デフォルトの名無しさん
2011/01/09(日) 13:35:03このstaticってどういう意味?
0088デフォルトの名無しさん
2011/01/09(日) 13:35:420089デフォルトの名無しさん
2011/01/09(日) 13:39:59javaとかでいうprivate
0090デフォルトの名無しさん
2011/01/09(日) 13:48:13複数の c ファイルからなるプログラムで意味を持ちます。
static 宣言された関数は、その関数が書かれた .c ファイルに書かれている関数からしか呼び出すことができません。
0091デフォルトの名無しさん
2011/01/09(日) 14:07:38そう
符号付きだと判定され、... に渡す時に int に拡張され、
8桁とかで表示されちゃうの
charが符号なしな環境か
符号付きの値が入れられないならいいんだけどねえ
0092デフォルトの名無しさん
2011/01/09(日) 15:36:33そのテキストの中にある区切られた文字列から
ランダムにテキストの中身を表示させるようにできないですか
日本語がおかしくてすみません
----テキストの中身----
a,b,c,d,e,f,g,hello,y,j,k,l
----------------------
-プログラムの実行結果-
1回目
結果:a
2回目
結果:hello
3回目
結果:f
見たいな感じにできればいいです・・・
0093デフォルトの名無しさん
2011/01/09(日) 15:51:510094デフォルトの名無しさん
2011/01/09(日) 15:51:51a,bはint型です
array[]で何してるんでしょうか?
0095デフォルトの名無しさん
2011/01/09(日) 15:55:220096デフォルトの名無しさん
2011/01/09(日) 15:56:48a番目の文字列とb番目の文字列を比べてる
0097デフォルトの名無しさん
2011/01/09(日) 16:26:53暇だからやっつけでやってみた
http://codepad.org/Am7DHA1v
0098デフォルトの名無しさん
2011/01/09(日) 16:38:52それRAND_MAXがintの最大値と同じ環境だったらおかしくなるんじゃないの?
0099デフォルトの名無しさん
2011/01/09(日) 16:56:33そうだねこれに変更しとくよ
((double)RAND_MAX + 1)
0100デフォルトの名無しさん
2011/01/09(日) 17:02:39rand()%n で十分だとは思うけど・・・
0101デフォルトの名無しさん
2011/01/09(日) 17:03:270102デフォルトの名無しさん
2011/01/09(日) 17:44:23一応ぐぐってみたんですが、そのとおりにしてもエラー100個で強制終了とかでまともに動いてくれません。
プログラムは参考書のプログラムをCDからひらいてそのままコピペしたんで、間違いがあるわけがないので、どう考えてもコンパイル
の仕方が悪いとしか思えないです。
でも解決法が見つからなくて困ってます。どうすればいいでしょうか
0103デフォルトの名無しさん
2011/01/09(日) 17:50:140104デフォルトの名無しさん
2011/01/09(日) 17:52:50え、コンパイラーの問題じゃないかもなんですか。それだったら普通に困る・・・・
せめてmysqlのライブラリの登録の仕方さえわかればいいんですが、ここじゃスレチですか?
0105デフォルトの名無しさん
2011/01/09(日) 17:57:31100個もここに書きこまれたら困るけど
0106デフォルトの名無しさん
2011/01/09(日) 18:05:39たしかに情報が少なすぎましたね・・・
じゃああした代表的なエラーをここにさらしてみます。
お騒がせしてすいませんでした
0107デフォルトの名無しさん
2011/01/09(日) 18:36:08ttp://techbank.jp/Community/blogs/mymio/archive/2008/11/05/3039.aspx
0108デフォルトの名無しさん
2011/01/09(日) 18:58:52まずはエラーメッセージで検索しましたか?
ほとんどはそれで解決すると思いますが
0109デフォルトの名無しさん
2011/01/09(日) 20:10:350110デフォルトの名無しさん
2011/01/09(日) 20:14:02と言ったら信じますか?
0111デフォルトの名無しさん
2011/01/09(日) 20:15:340112デフォルトの名無しさん
2011/01/09(日) 20:17:190113デフォルトの名無しさん
2011/01/09(日) 20:22:210114デフォルトの名無しさん
2011/01/09(日) 20:24:170115デフォルトの名無しさん
2011/01/09(日) 20:25:150116デフォルトの名無しさん
2011/01/09(日) 20:51:47>>111
サドルマン、ロシヒカリ 何のたとえなの 教えて
自分が屑でないと思っているならみんなにわかるように教えて
0117デフォルトの名無しさん
2011/01/09(日) 21:09:35mysqlのライブラリを持ってきてないんだろ
0118デフォルトの名無しさん
2011/01/09(日) 21:17:060119デフォルトの名無しさん
2011/01/09(日) 21:53:020120デフォルトの名無しさん
2011/01/09(日) 21:58:450121デフォルトの名無しさん
2011/01/09(日) 22:01:55ニホンゴでオーケー
0122デフォルトの名無しさん
2011/01/09(日) 22:02:33↑ネットでC言語の解説しているページ
strcmp(ABC, ABC) の結果:0
strcmp(ABC, ABD) の結果:-1
strcmp(ABC, B) の結果:-1 ← 文字数によらず、文字の大小関係で結果が決まる
strcmp(ABC, AAAA) の結果:1 ←
↑この実行結果だけでもわかりますがstrcmp(ABC, B)はなんでBのほうが大きいんですか?
0123デフォルトの名無しさん
2011/01/09(日) 22:07:580124デフォルトの名無しさん
2011/01/09(日) 22:13:060125デフォルトの名無しさん
2011/01/09(日) 22:18:34一文字づつ比べていって、同じなら次の文字
違ってたら大小比較した結果が返るだけだろ
0126デフォルトの名無しさん
2011/01/09(日) 22:20:13c1) c2)
A A 一致
B A c1 > c2 → 1 で戻り
C A
\0 A
\0
0127デフォルトの名無しさん
2011/01/09(日) 22:24:470128デフォルトの名無しさん
2011/01/09(日) 22:36:57単純な辞書順じゃないんだよね
0129デフォルトの名無しさん
2011/01/09(日) 22:37:201ull << 65
の結果が 0 ではなく、
1ull << (65 % 64)
と解釈されて、結果が 2になります。
64bit以上のシフトは環境依存なのでしょうか?
0130デフォルトの名無しさん
2011/01/09(日) 22:52:310131129
2011/01/09(日) 23:02:10ありがとうございます。
0132デフォルトの名無しさん
2011/01/09(日) 23:56:05指定した行を出力するプログラムがほしいのですが
サンプル書いてくれないですかね
0133デフォルトの名無しさん
2011/01/10(月) 00:00:25{
p = (int *)malloc(sizeof(int));
}
int main()
{
int *p;
test(p);
free(p);
}
として実行すると、メモリを二重解放していると怒られました。
友人にアドバイスをもらって、
void test(int **p)
{
*p = (int *)malloc(sizeof(int));
}
int main()
{
int *p;
test(&p);
free(p);
}
としたらエラーが出なかったのですが、理由がよくわからないです…。
ご教示の程よろしくお願いいたします。
0134デフォルトの名無しさん
2011/01/10(月) 00:08:040135デフォルトの名無しさん
2011/01/10(月) 00:10:00int main()
{
vector<int> p(100);
}
0136デフォルトの名無しさん
2011/01/10(月) 00:21:54スレタイを5百万回確認しろ。
0137デフォルトの名無しさん
2011/01/10(月) 00:25:420138デフォルトの名無しさん
2011/01/10(月) 00:29:12{
p = (int *)malloc(sizeof(int));
}
これは、新規に生成したint*型に対してメモリ確保してるんだ。呼び出し元とは関係なし。
もしC++の参照使えれば。こうすれば期待する動作になる。
void test(int* &p)
{
p = (int *)malloc(sizeof(int));
}
0139デフォルトの名無しさん
2011/01/10(月) 00:31:54なんとか回避するためにポインタのポインタという技が開発される。
0140デフォルトの名無しさん
2011/01/10(月) 00:56:090141デフォルトの名無しさん
2011/01/10(月) 00:57:37スレ違いも甚だしいけど
0142デフォルトの名無しさん
2011/01/10(月) 01:23:08エラーなってしまう たすけて
0143デフォルトの名無しさん
2011/01/10(月) 01:29:110144デフォルトの名無しさん
2011/01/10(月) 01:43:56http://wwww.vis.ne.jp/mt/archives/000680.html
上記ページの使い方以降にあるソースのmain関数で、二次元配列をstaticで宣言してるんですけど、
これはどういった理由からなんでしょうか。
実際にstatic抜きで、ただのdoubleとして二次元配列を宣言してプログラムを走らせてみるとcoreを吐いてしまうんですね。
staticありだと確かに正常に動きます。
staticについて検索して調べたんですが、何処を調べてもmain関数を例に取ってるサイトが見つからなく、
関数を呼び出すごとに値が記憶されている、みたいな例しかないんですね。
#include<stdio.h>
void fn();
main()
{
int i;
for(i=0;i<10;i++)fn();
}
void fn()
{
auto int a=0;
static int b=0;
a++; b++;
printf("a=%d, b=%d\n",a,b);
}
↑こんな感じでstaticありとなしとで比べてるだけで、確かにこれだとなんとなくはわかるんですが、
上記サイトの二次元配列でstaticをどういう風に使用しているのかよくわかりません。よろしければご教授お願いしたいです
また、もしstaticなしで動くのであれば、それを試してみたいんですが何か方法はありますか?
0145デフォルトの名無しさん
2011/01/10(月) 01:49:01つけないとメモリ不足に陥るケースあり。
初心者はヒープからこうとれよ。
vector< vector<double> > x;
0146デフォルトの名無しさん
2011/01/10(月) 01:53:47staticなしで動かしたいなら、コンパイラにスタックサイズを指定するオプションがあると思うから、
それでスタックのサイズをでかくしてみたら?
0147144
2011/01/10(月) 02:04:35>>145 ,146
ヒープやスタックサイズについても検索して調べてみますね。
あと気になったことがありまして、
>>144では二次元配列を用いてますけど、ポインタで宣言してあげて、mallocなどを用いて動的にメモリを確保すれば、
ひょっとしてスタックサイズらを気にする必要はなくなります?
0148デフォルトの名無しさん
2011/01/10(月) 02:07:260149デフォルトの名無しさん
2011/01/10(月) 02:11:440150デフォルトの名無しさん
2011/01/10(月) 02:48:33エラーでちゃう たすけて
0151デフォルトの名無しさん
2011/01/10(月) 03:01:09http://codepad.org/Lm8xcH0B (メイン
http://codepad.org/NEYKMnLJ (サブ1
ちなみにソースファイルは3つある
0152デフォルトの名無しさん
2011/01/10(月) 03:03:100153デフォルトの名無しさん
2011/01/10(月) 04:46:44abcd
efgh
ijkl
結果
出力させたい行を入力
2
efgh
こんなプログラムがほしいのですが
書いてくれませんか
0154デフォルトの名無しさん
2011/01/10(月) 04:59:30ソフトが欲しいってだけならソフトウェア板で聞けカス
0155デフォルトの名無しさん
2011/01/10(月) 07:07:54void test(int *p)
{
*p = (int)malloc(sizeof(int));
}
void main()
{
int p;
test(&p);
free(p);
}
0156デフォルトの名無しさん
2011/01/10(月) 07:22:520157デフォルトの名無しさん
2011/01/10(月) 07:29:44こうしたら分かるだろうか
ttp://codepad.org/ff5O8ZmV
test関数内で扱うのはmain関数内にあるint *pの値をコピーしたものなので
testでmallocの結果を代入してもmain側のpには反映されないの
0158デフォルトの名無しさん
2011/01/10(月) 10:31:27>>157 と同じことですが、
C言語での関数呼び出しは特別なオプションをつけていなければ
スタックに実引数と戻りアドレス(次の実行コードのアドレス)を
積んで実行フローが呼び出し先の関数になります。
スタックに積む実引数は、プログラムテキストが示す式(変数等)
を評価した値のコピーです。呼び出し先の関数で、その引数に
代入すると、スタックに積まれたコピーの方が更新されます。
>>133 の上の例では、不定なmain()のp のポインタの値のコピーにtest()で
代入していて、元のmain() のp は更新されませんので、free()
のp はmalloc() したp とは無関係となります。
0159デフォルトの名無しさん
2011/01/10(月) 10:51:050160デフォルトの名無しさん
2011/01/10(月) 10:53:540161デフォルトの名無しさん
2011/01/10(月) 11:10:090162デフォルトの名無しさん
2011/01/10(月) 11:15:34まだ>>158はプログラミング歴が短いんじゃないかな
俺も昔は>>158みたいだった
0163デフォルトの名無しさん
2011/01/10(月) 11:37:360164デフォルトの名無しさん
2011/01/10(月) 11:38:55void t2(int *a) { *a = 5; }
void main() { int a=0; t1(a); printf("%d ",a); t2(&a); printf("%d",a); }
→実行結果は 0 5
関数の引数変数への代入操作は、呼び出し元の変数の値を変えない
ポインタの指してる先の内容を変えることはできるが、
ポインタそのものを変えても呼び出し元に伝わらない
0165デフォルトの名無しさん
2011/01/10(月) 11:44:040166デフォルトの名無しさん
2011/01/10(月) 11:57:23ヽ(・‐・(ノ
) )
| |
0167デフォルトの名無しさん
2011/01/10(月) 11:59:220168デフォルトの名無しさん
2011/01/10(月) 12:08:420169デフォルトの名無しさん
2011/01/10(月) 12:32:570170デフォルトの名無しさん
2011/01/10(月) 12:41:440171デフォルトの名無しさん
2011/01/10(月) 13:17:510172デフォルトの名無しさん
2011/01/10(月) 13:24:360173デフォルトの名無しさん
2011/01/10(月) 14:01:440174デフォルトの名無しさん
2011/01/10(月) 14:06:32別に問題なくね?ポインタ変数渡してるから参照渡しにあたるだろ。
その友人はなんで怒ったんだ?
0175デフォルトの名無しさん
2011/01/10(月) 14:07:40スレを読め
0176デフォルトの名無しさん
2011/01/10(月) 14:10:37http://codepad.org/Lm8xcH0B (メイン
http://codepad.org/NEYKMnLJ (サブ1
これcygwinでコンパイルするとき
gcc メイン サブ1 サブ2 ←このようにすると
/cygdrive/c/Users/mituru/AppData/Local/Temp/cc69kqsO.o:c.c:(.text+0x5e): undefin
ed reference to `_i_print'
/cygdrive/c/Users/mituru/AppData/Local/Temp/cc69kqsO.o:c.c:(.text+0xaa): undefin
ed reference to `_i_print'
collect2: ld returned 1 exit status
こうなっちゃうんですが解消法はないですか
0177デフォルトの名無しさん
2011/01/10(月) 14:13:400178デフォルトの名無しさん
2011/01/10(月) 14:34:290179デフォルトの名無しさん
2011/01/10(月) 14:44:050180デフォルトの名無しさん
2011/01/10(月) 15:20:55i_print() の定義がない。 i_printf() はあるけど
0181デフォルトの名無しさん
2011/01/10(月) 15:59:35糞乙
0182デフォルトの名無しさん
2011/01/10(月) 16:28:290183デフォルトの名無しさん
2011/01/10(月) 16:38:44できるかできないかで言うとできない
C言語は組み込み用の言語だからWindowdやUNIxなどの組み込み高度機器限定のソリューションだ
0184デフォルトの名無しさん
2011/01/10(月) 16:42:490185デフォルトの名無しさん
2011/01/10(月) 16:43:550186デフォルトの名無しさん
2011/01/10(月) 16:54:41標準入出力と環境変数の読み込みができる言語ならなんでもOK
むかし公開された2chのソースはCだった。
0187デフォルトの名無しさん
2011/01/10(月) 17:09:43>>いまどきCでwebアプリ作るやつはいない
いまVCで作ってる真っ最中なんだけどw
0188187
2011/01/10(月) 17:11:06間違えた
0189デフォルトの名無しさん
2011/01/10(月) 17:11:26全部、Cで作ったら生産性が悪い。
0190デフォルトの名無しさん
2011/01/10(月) 17:17:080191デフォルトの名無しさん
2011/01/10(月) 17:27:05まずはインターフェイスから作りましょうかとかいってたんだけど
インターフェイスって何ですか?盤や白黒のコマの事でしょうか?
0192デフォルトの名無しさん
2011/01/10(月) 17:29:390193デフォルトの名無しさん
2011/01/10(月) 17:30:12┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │○│●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │●│○│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
0194デフォルトの名無しさん
2011/01/10(月) 17:37:33入出力って何ですか?電源とか?
>>193
そうそう、そんな感じのプログラム作る動画が
ニコニコにあがってたんですよ、インターフェイスって何かなぁと思って。
0195デフォルトの名無しさん
2011/01/10(月) 17:38:31┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │●│●│●│ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │●│●│●│ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
終わり
0196デフォルトの名無しさん
2011/01/10(月) 17:47:27インタフェース (情報技術) - Wikipedia
0197デフォルトの名無しさん
2011/01/10(月) 17:53:230198デフォルトの名無しさん
2011/01/10(月) 17:57:21インターフェースが何かとかじゃなくて文脈読み取れよ。どうせプログラムのプの字も分かってないんだから
0199デフォルトの名無しさん
2011/01/10(月) 18:01:15もう何でもかんでもインターフェイスじゃないですかww
いくらプログラミング作っても出力が理解できないと意味できないから
プログラミング組む前に、盤面、コマの形、場所、大きさを決めるって
意味だったんですね。
0200デフォルトの名無しさん
2011/01/10(月) 18:07:200201デフォルトの名無しさん
2011/01/10(月) 18:07:460202デフォルトの名無しさん
2011/01/10(月) 18:09:110203デフォルトの名無しさん
2011/01/10(月) 18:12:25集大成としてこんなのもそう。
Windows API (Windows Application Programming Interface)
Windows上で動作するアプリケーションにとって、Windows APIはWindowsの各機能にアクセスするための接点である。
Windows APIに属する各APIは主にDLLからの関数またはCOMインタフェースとして機能を公開している。
関数の呼出規約はstdcallを採用するなど統一されたインタフェースで多数のプログラミング言語からの使用を容易なものとしている。
0204デフォルトの名無しさん
2011/01/10(月) 18:13:390205デフォルトの名無しさん
2011/01/10(月) 18:14:04インターフェイス・ヘッドセット
エヴァとの神経接続の為、パイロットが頭に着けるもの。
まず4行目の最後にセミコロン (;) が抜けているのを正してみてはどうでしょうか?
0207デフォルトの名無しさん
2011/01/10(月) 18:41:52┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │○│ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
0208デフォルトの名無しさん
2011/01/10(月) 18:48:260209デフォルトの名無しさん
2011/01/10(月) 18:55:02┃┌─┬─┬─┬─┬─┬─┬─┬─┐┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │●│ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃├─┼─┼─┼─┼─┼─┼─┼─┤┃
┃│ │ │ │ │ │ │ │ │┃
┃└─┴─┴─┴─┴─┴─┴─┴─┘┃
┗━━━━━━━━━━━━━━━━━┛
0210デフォルトの名無しさん
2011/01/10(月) 19:14:450211デフォルトの名無しさん
2011/01/10(月) 19:21:42y.txtというアルファベットしか含まれていない単純なテキストファイルを用意します。
それをC言語にて読み込んでランレングス圧縮します。
そしてそれを圧縮したz.txtを新たに作り出します。
という問題なのですがうまく動きませんでした。
よかったらご指摘をよろしくお願いします。
#include <stdio.h>
#include <stdlib.h>
void func(FILE *fp1, FILE *fp2)
{
int c1, c2, l = 0;
for(c1 = c2 = fgetc(fp2); c1 != EOF; c2 = fgetc(fp2)){
if(c1 != c2){
fprintf(fp1, "%c%d", c1, l);
l = 1;
c1 = c2;
}
else ++ l;
}
}
int main(void)
{
FILE *fp1 = fopen("y.txt", "w"), *fp2 = fopen("z.txt", "r");
if(!fp1 || !fp2) exit(EXIT_FAILURE);
func(fp1, fp2);
fclose(fp1);
fclose(fp2);
return 0;
}
0212デフォルトの名無しさん
2011/01/10(月) 19:27:10y.txtから読み込んでz.txtに出力するってことだけど、
処理をみると、zから読み込んでyに書き込んでる。
0213デフォルトの名無しさん
2011/01/10(月) 19:50:400214デフォルトの名無しさん
2011/01/10(月) 19:52:040215デフォルトの名無しさん
2011/01/10(月) 19:57:16プログラムできる奴なら、下準備してれば誰でもできるよ。
0216デフォルトの名無しさん
2011/01/10(月) 20:09:49おれには1時間じゃ無理だわ。
前にテトリス作ったときは1、2週間くらいかかったよ。
0217デフォルトの名無しさん
2011/01/10(月) 20:25:27例えば、C言語じゃないんですけど、
http://www.ruby-lang.org/ja/man/html/String.html
くらいの機能が一通り揃ってるのが欲しいです。
0218デフォルトの名無しさん
2011/01/10(月) 20:47:460219デフォルトの名無しさん
2011/01/10(月) 20:58:53だから下準備=既につくってある+何回も同じ手順を踏む。
誰でもできるだろ
0220デフォルトの名無しさん
2011/01/10(月) 21:08:040221デフォルトの名無しさん
2011/01/10(月) 21:41:360222デフォルトの名無しさん
2011/01/10(月) 22:02:25よろしくお願いします。
#include<stdio.h>
#include<math.h>
struct point{double x,y;};
double distance(struct point a, struct point b)
{double dis;
dis = sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
return(dis);
}
int main()
{double d;
struct point p1={4.5,7.9},p2;
printf("Input p2 zahyou (x,y)!");
scanf("%lf%lf",&p2.x,&p2.y);
d=distance(p1,p2);
printf("distance=%lf\n",d);
return(0);
}
0223デフォルトの名無しさん
2011/01/10(月) 22:04:27テキストの中の文字と入力した文字があっているかの判定をするプログラムを
つくっているのですが
判定が合いません・・・
どうすればいいのでしょうか・・・
0224デフォルトの名無しさん
2011/01/10(月) 22:18:05fgets()で読み込むと最後に改行コードがつくけど、scanf()だとつかないから、
それで39−40行の判定が失敗してる。
bufの後ろについてる改行コードを0でつぶすとかすればいい。
0225デフォルトの名無しさん
2011/01/10(月) 22:44:12gcc -o test test.c -lm
0226デフォルトの名無しさん
2011/01/10(月) 22:45:51とりあえずgcc on cygwinではコンパイルできて、実行もできた。
環境はどうなっていますか?mathライブラリを明示的にリンクする
必要があったりしませんか?(-lm でリンクする。)
0227デフォルトの名無しさん
2011/01/10(月) 22:49:33元々作っておいたソースコードを打ち込んでいくだけだぞ
0228デフォルトの名無しさん
2011/01/10(月) 22:55:220229デフォルトの名無しさん
2011/01/10(月) 22:59:03無事にできました
ありがとうございます
0230デフォルトの名無しさん
2011/01/10(月) 23:06:34改行コードは1バイトの場合と2バイトの場合とがあるが
0231デフォルトの名無しさん
2011/01/10(月) 23:09:16授業でプログラミングをとってるだけのにわかなので、環境という話はよく分かりませんが、とりあえずコンパイルの最後に-lmと付けたらうまくいきました。
ありがとうございました!!
0232デフォルトの名無しさん
2011/01/10(月) 23:09:54>fgets使っても末尾に改行がつかないケースもあるが
fgets()は末尾に改行が付くとニコ動でも言われている
>改行コードは1バイトの場合と2バイトの場合とがあるが
ニコ動の解説動画によると、改行コードは1バイト(¥n)だよ
もうちょっと勉強してから書き込めや
0233デフォルトの名無しさん
2011/01/10(月) 23:20:22入力ファイルの最終行が改行で終わっていなければ、改行コードは付かないよね
0234デフォルトの名無しさん
2011/01/10(月) 23:29:280235デフォルトの名無しさん
2011/01/10(月) 23:34:13fgetsで指定したサイズ以上の入力を受けた場合、分割された文字列に改行はつかない
0236デフォルトの名無しさん
2011/01/10(月) 23:36:26sprintf
>>fgets使っても末尾に改行がつかないケースもあるが
>fgets()は末尾に改行が付くとニコ動でも言われている
いや、つかない場合もある。fgets() の第二引数分だけ読み込んでも改行があらわれなかったとき。
>もうちょっと勉強してから書き込めや
あんたも足りんのとちゃうか?
0239デフォルトの名無しさん
2011/01/10(月) 23:44:53unsigned int i = 0x00434241;
char *s = (char*)&i;
printf("%s\n",s);
こういう事?でもなかったら意味が分かんないのでヒントお願い
0240デフォルトの名無しさん
2011/01/10(月) 23:47:420241234
2011/01/10(月) 23:55:18例えば
int型の「a = 12345」という数字をchar型のmoji[10]に「12345」のまま格納できれば
いいのですが、sprintf を使えばよいのでしょうか?
0242デフォルトの名無しさん
2011/01/10(月) 23:58:14使わなくてもできるけど、まぁ使うと簡単。
0243デフォルトの名無しさん
2011/01/10(月) 23:59:13↑これがロシヒカリ?
0244デフォルトの名無しさん
2011/01/11(火) 00:00:530245◇QZaw55cn4c
2011/01/11(火) 00:13:450246デフォルトの名無しさん
2011/01/11(火) 00:14:29一緒にコンパイルしているファイルにその関数が定義されていた場合
(たとえば、gcc main.c sub.cのsub.cにその関数が定義されている場合、main()
では未宣言,未定義)
コンパイルはとおりましたが変じゃないですか?
言っていることわかるかな?
0247デフォルトの名無しさん
2011/01/11(火) 00:19:55別に普通だけど
とりあえずコンパイルとリンクが別ってのを分かってもらわないと詳しく説明できない
0248デフォルトの名無しさん
2011/01/11(火) 00:25:460249デフォルトの名無しさん
2011/01/11(火) 00:29:25いや、だからそれが普通だって
gccに必要なファイル全部指定してるんだから
・それぞれコンパイル(ここで関数の定義が見えてなくてもコンパイル可能)
・できたそれぞれのオブジェクトファイルをリンク(ここでsub.cの関数定義とくっつく)
で実行ファイルができる。
「gcc -c main.c」はエラーなし、「gcc main.c」はエラーはくから、試してみなよ
0250デフォルトの名無しさん
2011/01/11(火) 00:30:48サイトでは寿命や有効範囲の事を言っていました。いまいちぱっとしません。
0251デフォルトの名無しさん
2011/01/11(火) 00:32:35{
int i;
i = 0; /* OK */
}
i = 1; /* NG */
0252デフォルトの名無しさん
2011/01/11(火) 00:42:080253デフォルトの名無しさん
2011/01/11(火) 00:45:16つまりね、何が分からないのか分からない。
0254デフォルトの名無しさん
2011/01/11(火) 00:48:51多くの書籍が2ついっぺんに話そうとするから初心者にはつらくなる
あとで関係はしてくるが有効範囲の話がわかるまでいったん寿命の話は無視しろ
0255デフォルトの名無しさん
2011/01/11(火) 00:48:57a=12345の固定ならそのまま
sprintf(moji,"%d",a);
でいいよ。
でも、固定で無い場合は
int型数値を10進文字列で表すのに
最長で -2147483648 に 終端0を加えた12バイトになるから
moji[12]にしたほうがいい。
0256デフォルトの名無しさん
2011/01/11(火) 00:51:00中間ファイルを削除して再試行すれば解決しないか試せ。
0257デフォルトの名無しさん
2011/01/11(火) 00:53:44これからポインタも出てくるし、これからもお世話になると思います。
0258デフォルトの名無しさん
2011/01/11(火) 00:53:49>>231
0259デフォルトの名無しさん
2011/01/11(火) 00:55:070260デフォルトの名無しさん
2011/01/11(火) 00:56:490261デフォルトの名無しさん
2011/01/11(火) 00:59:590262デフォルトの名無しさん
2011/01/11(火) 01:01:130263デフォルトの名無しさん
2011/01/11(火) 01:02:450264デフォルトの名無しさん
2011/01/11(火) 01:06:110265デフォルトの名無しさん
2011/01/11(火) 01:07:450266デフォルトの名無しさん
2011/01/11(火) 01:08:400267デフォルトの名無しさん
2011/01/11(火) 01:22:260268デフォルトの名無しさん
2011/01/11(火) 01:23:42関数の章にsizeof演算子とmenmcpy関数が出てきたんですけど、これってわりと頻繁に使いますか?
0269デフォルトの名無しさん
2011/01/11(火) 01:25:320270デフォルトの名無しさん
2011/01/11(火) 01:27:26#include <stdio.h>
void func(void)
{
int i = 1;
// funcの内部変数iの範囲ここから
printf("%d\n", i);
// funcの内部変数iの範囲ここまで
}
int main(void)
{
int i = 0;
// mainの内部変数iの範囲ここから
func();
printf("%d\n", i);
return 0;
// mainの内部変数iの範囲ここまで
}
0271デフォルトの名無しさん
2011/01/11(火) 01:41:100272デフォルトの名無しさん
2011/01/11(火) 01:44:360273デフォルトの名無しさん
2011/01/11(火) 01:50:44どうもありがとう>>270さん(^-^)/
0274デフォルトの名無しさん
2011/01/11(火) 01:55:280275デフォルトの名無しさん
2011/01/11(火) 01:56:290276デフォルトの名無しさん
2011/01/11(火) 01:58:070277デフォルトの名無しさん
2011/01/11(火) 01:59:59何が問題なのでしょうか。
#include<stdio.h>
void str_change(char *st,char c,char d)
{while(*st){if(*st=='c')*st='d';
st++;};
}
int main()
{char st[]="bubble";
char c1='b',c2='#';
printf("%s ->",st);
str_change(st,c1,c2);
printf("%s\n",st);
return(0);
}
0278デフォルトの名無しさん
2011/01/11(火) 02:00:080279デフォルトの名無しさん
2011/01/11(火) 02:01:09スレ違い
0280デフォルトの名無しさん
2011/01/11(火) 02:04:53c,dは変数だから''で囲む必要なし
0281277
2011/01/11(火) 02:10:11助かりました!!本当にありがとうございます。
0283デフォルトの名無しさん
2011/01/11(火) 06:16:040284デフォルトの名無しさん
2011/01/11(火) 08:10:07二重ループだとすっきりしないので、ポインタなどを使って実現したいのですが・・・
0285デフォルトの名無しさん
2011/01/11(火) 09:36:08一次元配列相当のポインタにキャストしちゃえば?
0286デフォルトの名無しさん
2011/01/11(火) 10:08:31#include<stdio.h>
typedef int ELEM_T;
void swap_array(ELEM_T *a, ELEM_T *b, int elems){
ELEM_T t;
while(elems-- >0){
t = *a;
*a++ = *b;
*b++ = t;
}
}
int main(){
// A, B のサイズ, 要素の型は同じ
ELEM_T A[][3] = {1,2,3,4,5,6};
ELEM_T B[][3] = {11,12,13,14,15,16};
//int i;
//int *p = &A[0][0];
//int *q = &B[0][0];
swap_array((ELEM_T*)A,(ELEM_T*)B, sizeof A/ sizeof A[0][0]);
//for(i = 0; i < sizeof A/ sizeof A[0][0]; ++i){
// printf("%d ", p[i]);
//}
//printf("\n");
//for(i = 0; i < sizeof B/ sizeof B[0][0]; ++i){
// printf("%d ", q[i]);
//}
return 0;
}
0287デフォルトの名無しさん
2011/01/11(火) 13:53:160288デフォルトの名無しさん
2011/01/11(火) 17:08:210289デフォルトの名無しさん
2011/01/11(火) 18:12:14389,471,476行目にエラーが起きるんですけどなぜでしょうか?
よろしくお願いします。
0290デフォルトの名無しさん
2011/01/11(火) 18:16:28まだ1冊目の本も途中なのですがどうにも気になってしまって20分程度考えて書いたのですが
これに対する突っ込みはどのようなものがあるでしょうか。
#include <stdio.h>
int main(){int i,f;for(i=1;i<101;i++){f=0;if(i%3==0){printf("Fizz");f=1;}if(i%5==0){printf("Buzz\n");f=2;}if(f<2){if(f<1){printf("%d",i);}printf("\n");}}return 0;}
0291デフォルトの名無しさん
2011/01/11(火) 18:19:59なんだそのコードは。他人に読んでもらう気ねーだろ。そういう突っ込み待ちか?
0292デフォルトの名無しさん
2011/01/11(火) 18:23:03元はこんなんです。
#include <stdio.h>
int main()
{
int i,f;
for (i=1;i<101;i++)
{
f=0;
if (i%3==0){printf ("Fizz");f=1;}
if (i%5==0){printf ("Buzz\n");f=2;}
if (f<2){if (f<1){printf ("%d",i);}printf ("\n");}
}
return 0;
}
0293デフォルトの名無しさん
2011/01/11(火) 18:36:12389,471 Clone(); の 引数は Node* である必要があるが static Node な a を渡している
(Clone(&a) の typo か?)
476 非ブロックで型宣言&初期化はできない
(else { ... } で囲うべし)
-----続予測されるエラー
471 の Node *copy1 = は if から抜けるとなくなる
そのため 476 の引数 copy1 は未宣言変数に
0294デフォルトの名無しさん
2011/01/11(火) 18:39:39早い回答ありがとうございます!
copy1を未宣言変数にするとはどういうことですか?
素人なものですみません・・・
0295デフォルトの名無しさん
2011/01/11(火) 18:40:33する じゃなくて 宣言されてない変数を参照してるよ ってこと
0296デフォルトの名無しさん
2011/01/11(火) 18:42:23なるほど・・・
解決法はなにかありますか?
0297デフォルトの名無しさん
2011/01/11(火) 18:46:04ゴルフがしたいなら専用スレがあるのでそちらへどうぞ。
0298デフォルトの名無しさん
2011/01/11(火) 19:10:16コンパイルエラーをなくすだけなら 390 に Node* copy1 = NULL; とでも
意図したように動くかどうかは(意図がわからないので)別の話
0299デフォルトの名無しさん
2011/01/11(火) 19:12:47× 471 Node *copy1 = Clone(a);
○ 471 copy1 = Clone(&a);
0300デフォルトの名無しさん
2011/01/11(火) 19:13:12それをやると2回定義されているとエラーが出ちゃいます・・・
0301デフォルトの名無しさん
2011/01/11(火) 19:16:09できました!
ありがとうございます!!
またなにかあったら質問させていただきます><
0302デフォルトの名無しさん
2011/01/11(火) 21:01:00ゴルフが何なのかわからなかったですが・・・なるほど、そういうことですか
しかし自分が聞きたいのはそうではなくてここの動作は普通はこう書くよ、見たいな指摘が欲しいのです。
まあ動けば何でもいい、というのがプログラミングであるというのであればそれもそうなんですが。
0303デフォルトの名無しさん
2011/01/11(火) 21:22:43f = 0;
if(i % 3 == 0) { printf("fizz"); f = 1;}
if(i % 5 == 0) { printf("buzz"); f = 1; }
if(f == 0) printf("%d", i); //if(!f)でも可
printf("\n");
}
0304デフォルトの名無しさん
2011/01/11(火) 21:49:47たしかにそうですね、なんでf=2にしてたんだろう・・・そしてif(!f)で真か偽かの判別ができたと・・・
本の通りにやっているのと自分で考えながら書くのでは違うものですね。
そしてやはりi<=100のほうが一般的だったりわかりやすかったりするのでしょうか
0305デフォルトの名無しさん
2011/01/11(火) 22:02:240306デフォルトの名無しさん
2011/01/11(火) 22:18:01状況による
100までというなら
for(i=start;i<=end;i++)
の方が分かりやすいが
100回ならば
for(i=start;i<start+reps;i++)
の方がいいでしょ
0307デフォルトの名無しさん
2011/01/11(火) 22:21:31なるほどです
とりあえずまずは慣れですね。
ありがとうございました。
0308デフォルトの名無しさん
2011/01/11(火) 22:31:03いえいえ、どういたしまして
0309デフォルトの名無しさん
2011/01/11(火) 22:36:460310デフォルトの名無しさん
2011/01/11(火) 23:37:42文字列をisdigitで回す他にやりかたありやすか?
0311デフォルトの名無しさん
2011/01/11(火) 23:45:370312デフォルトの名無しさん
2011/01/11(火) 23:47:040313デフォルトの名無しさん
2011/01/12(水) 00:04:260314デフォルトの名無しさん
2011/01/12(水) 00:39:100315デフォルトの名無しさん
2011/01/12(水) 00:48:160316デフォルトの名無しさん
2011/01/12(水) 01:07:14// linux依存部分(たぶんwindowsだと、書き方違う部分)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// キーボードからの一文字入力(待ち無し)
#include <termios.h>
int gc(){
struct termios t0,t1;tcgetattr(fileno(stdin), &t0);t1=t0;
t1.c_lflag &= ~ICANON;t1.c_cc[VMIN]=0;tcsetattr(fileno(stdin),TCSANOW,&t1);
int r = getchar();tcsetattr(fileno(stdin), TCSANOW, &t0);return r;
}
// 1/60秒間、処理を停止する(ウエイト処理)
#include <time.h>
s6(){static struct timespec req={0,16*1000*1000},rem;nanosleep(&req,&rem);}
// 画面の文字をすべてクリアーする関数
cl(){printf("%c[2J",0x1B );}
// カーソル位置をセットする関数
sc(int x, int y){printf("%c[%d;%dH",0x1b, y+1, x+1 );}
0317316
2011/01/12(水) 01:09:38unsigned short V[32],B[32],M,*p,*q,m,a,t[]={0x72,0x132,0x462,0x223,0x226,0x2222,0x33},N=0xE007,F=0xFFFF;
int i,j,k,x,y,r,c,_t[]={2,5,8,11,-3,0,3,6,-8,-5,-2,1,-9,-6,-3,16};
iB(){p=B;i=24;while(i-->0){*p++=N;}*p=F;}dB(){p=B+4;j=20;while(j-->0){if(*p==F){*p=N;}p++;}}
sB(){p=q=B+4+20-1;i=j=20;while(j-->0){if(*p!=N){*q--=*p|N;i--;}p--;}j=i;while(j-->0){*q--=N;}}
rrM(){int* t=_t;a=M;M=0;m=1;i=16;while(i-->0){M|=(*t>0)?(a&(m))<<*t++:(a&(m))>>-*t++;m<<=1;}}
lrM(){rrM();rrM();rrM();}nM(){x=4;y=-2;M=t[rand()%7];}_p(char* s){fputs(s,stdout);}p0(){_p(" ");}p1(){_p("回");}pn(){_p("\n");}
eV(){m=0;p=B;q=V;i=32;while(i-->0){if((*q&*p)!=*p){return 1;}p++;q++;}return 0;}
nV(){p=B;q=V;i=32;while(i-->0){*q++=*p++;}m=M;q=V+4+(y-1);i=4;while(i-->0){*q^=(m&0xF)<<(3+x);m>>=4;q++;}r=0;if(eV()){r=1;}return r;}
pV(){sc(0,0);pn();p=V;j=25;while(j-->0){m=1;i=16;while(i-->0){if(*p&m){p1();}else{p0();}m<<=1;}pn();p++;}}
cT(){k=gc();if(k=='n'){y++;}else if(k==' '){while(!nV()){y++;}}else{if(c++>60){y++; c=0;}}if(k=='j'){x--;if(nV()){x++;}}
if(k=='k'){x++;if(nV()){x--;}}if(k=='f'){rrM();if(nV()){lrM();}}if(k=='d'){lrM();if(nV()){rrM();}}}
main(){cl();iB();nM();while(1){cT();if(nV()){y--;nV();memcpy(B,V,2*32);dB();sB();nM();}pV();s6();}}
// 操作方法:
// j,k 左右の移動 d,f 左右の回転 n 下移動 スペース ハードドロップ Ctrl+c 終了
0318デフォルトの名無しさん
2011/01/12(水) 01:11:090319デフォルトの名無しさん
2011/01/12(水) 01:15:380320デフォルトの名無しさん
2011/01/12(水) 01:19:180321デフォルトの名無しさん
2011/01/12(水) 01:24:580322デフォルトの名無しさん
2011/01/12(水) 01:26:460323デフォルトの名無しさん
2011/01/12(水) 01:35:150324デフォルトの名無しさん
2011/01/12(水) 07:47:590325デフォルトの名無しさん
2011/01/12(水) 07:55:180326デフォルトの名無しさん
2011/01/12(水) 08:00:250327デフォルトの名無しさん
2011/01/12(水) 08:14:34Linuxやら使ってるのであれば多分何も入れなくてもcryptが使えます
0328デフォルトの名無しさん
2011/01/12(水) 08:33:11使えねーな、次
0329デフォルトの名無しさん
2011/01/12(水) 08:34:48もうちょっとまともな回答よこせよカス
0330デフォルトの名無しさん
2011/01/12(水) 08:47:49糞
0331デフォルトの名無しさん
2011/01/12(水) 09:11:07くず
0332デフォルトの名無しさん
2011/01/12(水) 09:22:110333デフォルトの名無しさん
2011/01/12(水) 18:51:53↑この二重ポインタのsizeof()演算子が思っているような値と違うんですが
これなんでこういう実行結果になるか教えてください
0334デフォルトの名無しさん
2011/01/12(水) 18:53:190335デフォルトの名無しさん
2011/01/12(水) 18:58:459 "tdy"
10 "PEOl",
で "tdyPEOl", 相当
11 "ddfd"
12 "dfcvh"
で "ddfddfcvh" 相当
要素数的には 20要素だよん
0336デフォルトの名無しさん
2011/01/12(水) 19:00:24data の型は char*[20] なので 80 バイト
*data の型は char* なので 4 バイト
特に不思議なようには見えませんが
0337デフォルトの名無しさん
2011/01/12(水) 19:15:21sizeof(data) が 88 を想定してたんなら 9 と 11 の末尾に ','(カンマ) が抜けてる
0338デフォルトの名無しさん
2011/01/12(水) 20:38:21アクションはどうやってプログラミングするの?
0339デフォルトの名無しさん
2011/01/12(水) 20:41:320340デフォルトの名無しさん
2011/01/12(水) 20:47:53単純すぎないですかw?
腕とか足とか動かしたい
0341デフォルトの名無しさん
2011/01/12(水) 20:50:06腕とか足のの座標を動かすの
0342デフォルトの名無しさん
2011/01/12(水) 20:50:14B) 動きの表現の数だけ絵を用意して差し替えるの
0343デフォルトの名無しさん
2011/01/12(水) 20:52:12これでもかなりちゃんと答えてると知ってほしいな
0344デフォルトの名無しさん
2011/01/12(水) 20:53:190345デフォルトの名無しさん
2011/01/12(水) 20:56:56パラパラ漫画しってるか?2Dならあれといっしょだ
0346デフォルトの名無しさん
2011/01/12(水) 21:02:33いたいけな少年少女を悪の道にすすめるなと
0347デフォルトの名無しさん
2011/01/12(水) 21:14:500348デフォルトの名無しさん
2011/01/12(水) 21:16:33スーパードンキーコングシリーズみたいな高グラフィックの2Dスクロール
が作りたい、やっぱり言語よりアニメーションソフトのほうがいいですかね?
0349デフォルトの名無しさん
2011/01/12(水) 21:26:39どうやって作ったんだろ。
0350デフォルトの名無しさん
2011/01/12(水) 21:47:580351デフォルトの名無しさん
2011/01/12(水) 22:16:00たとえば、自分の環境ではintとfloatは同じ4バイトの領域を確保しますが、
int a;
float b;
scanf("%f %d",&a,&b);
のようにintとfloatの各4バイトの領域に逆のフォーマットで値を代入してみましたが、
内容をそれぞれのフォーマットで出力してみるとデタラメな内容が帰って来ました。
printf("%f %d\n",a,b);
型はその環境が定義したサイズ意外に何か役割があるのでしょうか?
0352デフォルトの名無しさん
2011/01/12(水) 22:26:20データの内部フォーマットを示している。
浮動小数については「IEEE 754」をググってみてください。
0353デフォルトの名無しさん
2011/01/12(水) 22:28:130354デフォルトの名無しさん
2011/01/12(水) 23:04:16入力関数のフォーマットはあくまで、入力されると期待できる形式を表しているんですね。
charとintだとうまくいってたのはint内部フォーマットが単純だからですね。
ありがとうございました。
0355デフォルトの名無しさん
2011/01/12(水) 23:14:07IEEE754に準拠した32ビットの数値をint型変数に入れるとIEEE754ではなくなるのですか
0356デフォルトの名無しさん
2011/01/12(水) 23:19:52後半の b の値を詰む時に float → double の格上げがおきてるから表示値がくずれてる
0357デフォルトの名無しさん
2011/01/12(水) 23:22:550358デフォルトの名無しさん
2011/01/12(水) 23:29:05暗黙の型変換
0359デフォルトの名無しさん
2011/01/12(水) 23:40:13>>352はいろいろと中途半端だから間に受けない方がいいよ
マジレスすると、IEEE形式のビット列をint型変数に格納することももちろん可能
0360デフォルトの名無しさん
2011/01/12(水) 23:42:45そして printf の %f は float ではなく double が詰まれることを期待し、解釈してる
http://codepad.org/7pcUXzN8
0361デフォルトの名無しさん
2011/01/12(水) 23:44:22違います
>>359
ですよね、ありがとう
0362デフォルトの名無しさん
2011/01/12(水) 23:53:070363デフォルトの名無しさん
2011/01/12(水) 23:58:19#include <string.h>
void dispval(const char* name, void* var, size_t len){
int i;
printf("%s [", name);
for (i=0; i<len; i++) {
printf("%02x", ((unsigned char*)var)[i]);
}
printf("]\n");
}
int main(){
int a, d;
float b, c;
int i;
printf("sizeof a=%d\n", sizeof a);
printf("sizeof b=%d\n", sizeof b);
sscanf("1.0 5", "%f %d", &a, &b);
dispval("a", &a, sizeof(a));
dispval("b", &b, sizeof(b));
sscanf("1.0 5", "%f %d", &c, &d);
dispval("c", &c, sizeof(c));
dispval("d", &d, sizeof(d));
printf("%f %d\n", a, b);
printf("%f %d\n", *(float*)&a, *(int*)&b);
return 0;
}
0364デフォルトの名無しさん
2011/01/13(木) 00:05:41丁寧なテストコードありがとうございます。
最後のprintf文すごいですね。
一度それぞれの型を修正するんですね。
便利な方法を知ることができました。
0365デフォルトの名無しさん
2011/01/13(木) 00:09:07したんだけど、
localtime()ってすごく変な仕様だな。
なんで返り値がtm構造体じゃないの? なんでポインタなの?
結果の struct tm ってどこに保存されてるの?
何度もlocaltime()を呼んでたらメモリオーバーフローしないの?
毎回free()してやれば無問題?
って疑問を持ったんだけど、解説してる日本語サイトが全くみつからん。
すっげー気になるところなんだが。
0366デフォルトの名無しさん
2011/01/13(木) 00:19:060367デフォルトの名無しさん
2011/01/13(木) 00:24:26したんだけど、
localtime()ってすごく変な仕様だな。
なんで返り値がtm構造体じゃないの? なんでポインタなの?
結果の struct tm ってどこに保存されてるの?
何度もlocaltime()を呼んでたらメモリオーバーフローしないの?
毎回free()してやれば無問題?
って疑問を持ったんだけど、解説してる日本語サイトが全くみつからん。
すっげー気になるところなんだが。
0368デフォルトの名無しさん
2011/01/13(木) 00:28:01free してみれば分かるかもなw
0369デフォルトの名無しさん
2011/01/13(木) 00:28:48freeしてもどうにもならなかったが・・・
0370デフォルトの名無しさん
2011/01/13(木) 00:32:59確かに
0371デフォルトの名無しさん
2011/01/13(木) 00:35:54いや、何も言うまい。
0372デフォルトの名無しさん
2011/01/13(木) 00:36:32ライフゲーム作ってて、初期の配列を別の配列に移して処理を行い
元の配列に移す操作がわかりません・・
もしよかったらソースコードを教えていただけるとうれしいです
0373デフォルトの名無しさん
2011/01/13(木) 00:41:26何度localtimeしても同じアドレスが返ってくるよ
freeしちゃダメ
0374デフォルトの名無しさん
2011/01/13(木) 00:42:07まったく同じ大きさの配列なら memcpy
0375デフォルトの名無しさん
2011/01/13(木) 00:43:25メモリ系関数に慣れてないなら普通にforとかでなでこればいいじゃん
0376デフォルトの名無しさん
2011/01/13(木) 00:43:47#define SIZE 100
typedef struct life_tag{
char p[SIZE][SIZE];
}life;
life a,b;
main(){
init(a);
while(1){
b=a;
b.p[0][0]=shori;
b.p[SIZE-1][SIZE-1]=shori_shori;
a=b;
}
}
0377デフォルトの名無しさん
2011/01/13(木) 00:45:19構造体タグ名と型定義名は別の名前空間なので、life_tagとする必要はないです。
0378372
2011/01/13(木) 00:47:29習いたてで、多分for文だけで書ければいいのですが、頭がごちゃごちゃしてしまって・・
for文のみで書くとどんな感じのソースになりますかね?
本当にすいません
0379デフォルトの名無しさん
2011/01/13(木) 00:47:300380デフォルトの名無しさん
2011/01/13(木) 00:47:31変な持論いらない
0381デフォルトの名無しさん
2011/01/13(木) 00:48:200382デフォルトの名無しさん
2011/01/13(木) 00:50:530383デフォルトの名無しさん
2011/01/13(木) 00:50:58配列の大きさを覚えてないから無理っす。
0384デフォルトの名無しさん
2011/01/13(木) 00:56:55余裕っす。
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/gccextend.html
0385デフォルトの名無しさん
2011/01/13(木) 00:59:05localtimeは静的領域を内部に持っていて、それのポインタを返す。
よってリエントラントではない。
リエントラント版のlocaltime_rがある。
man on WWW
ttp://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/localtime.3.html
0386デフォルトの名無しさん
2011/01/13(木) 01:00:45配列は代入可能な左辺値では無いため。
0387デフォルトの名無しさん
2011/01/13(木) 01:04:29パーフェクトな回答をありがとっす。
localtime_r()か。
リエントラントとかはどうでもいいけど、手元で用意した構造体にさくっと入るとこが最高。
返値は捨てちゃっていいよね。
0388デフォルトの名無しさん
2011/01/13(木) 01:08:45消えろ
0389デフォルトの名無しさん
2011/01/13(木) 01:36:29試行錯誤でなんとかちゃんと動くようになったが・・
0390デフォルトの名無しさん
2011/01/13(木) 01:40:370391デフォルトの名無しさん
2011/01/13(木) 01:59:05func(){
do{
if(isA){
break;
}
途中処理;
if(isB){
break;
}
成功処理;
return 1;
}while(0);
失敗処理;
return 0;
}
こんな制御構造にするの初めてなんだけど、意外と見通しも良いし便利。
局所変数を全部引きずれる割りにダブるコードもないし、
fopenとfclose、malocとfreeなんかも対応させ易い。
ifのネストが無くなり、変なフラグも要らない。
何で今まで使ってなかったんだろ。
疲れて変な事してるかな?
0392デフォルトの名無しさん
2011/01/13(木) 02:08:410393デフォルトの名無しさん
2011/01/13(木) 02:17:12すごい今更なんだけど
0394デフォルトの名無しさん
2011/01/13(木) 02:18:530395デフォルトの名無しさん
2011/01/13(木) 02:21:37なら良かった。
やってることはgotoと変わらん気がしてきたけど。
0396デフォルトの名無しさん
2011/01/13(木) 02:24:57そう。だからそんな小手先の細工するより、分かりやすく書け。
0397デフォルトの名無しさん
2011/01/13(木) 02:32:24http://php.net/manual/ja/control-structures.do.while.php
優れたCプログラマだってさ。やったー!
0398デフォルトの名無しさん
2011/01/13(木) 02:34:140399デフォルトの名無しさん
2011/01/13(木) 02:40:480400デフォルトの名無しさん
2011/01/13(木) 02:41:510401デフォルトの名無しさん
2011/01/13(木) 02:50:25というfor文でiを1msごとに1プラスされるようにしたいのですがどうすればよいですか?
0402デフォルトの名無しさん
2011/01/13(木) 02:59:17C言語の本教えてください
0403デフォルトの名無しさん
2011/01/13(木) 02:59:31スレ違い
0404デフォルトの名無しさん
2011/01/13(木) 03:03:150405デフォルトの名無しさん
2011/01/13(木) 03:11:51ループ内にカウンタ変数で管理すれば?
0406デフォルトの名無しさん
2011/01/13(木) 05:00:240407デフォルトの名無しさん
2011/01/13(木) 07:09:37コマンドプロンプトからコマンドAを次のように実行するとき、
複数のファイルも同時に処理するためにはどうすればいいでしょうか?
A file1 file2 file3 file4 .....
よろしくお願いします。
0408デフォルトの名無しさん
2011/01/13(木) 07:19:49平均して1msならできるが
DWORD start, i;
start = GetTickCount();
for (i=0; i<1000; i++){
while (GetTickCount() - start <= i) Sleep(0);
}
0409デフォルトの名無しさん
2011/01/13(木) 07:32:48main(){
if(argc>0){
const char *fname = (const char*)argv[1];
<処理>
}
}
としていたら
thread(void* p){
const char *fname = (const char*)p;
<処理>
}
main(){
int i;
for(i=1;i<argc;i++){
<スレッド生成>
}
<終了待ち>
}
とかにする
0410デフォルトの名無しさん
2011/01/13(木) 07:55:27処理を繰り返すとかではだめなのでしょうか?
また引数の数が幾つかるかは解るのでしょうか?
0411デフォルトの名無しさん
2011/01/13(木) 07:58:200412デフォルトの名無しさん
2011/01/13(木) 08:29:54> すみません。スレッドが何か分からないのですが、普通にargc回だけ
> 処理を繰り返すとかではだめなのでしょうか?
だめ。
"複数のファイルを順番に処理する" 事は出来ても
"複数のファイルも同時に処理する" 事が出来ない。
> また引数の数が幾つかるかは解るのでしょうか?
409では省略したけど、main関数の引数で分かる
int main(int argc,char **argv){}
0413デフォルトの名無しさん
2011/01/13(木) 08:41:180414デフォルトの名無しさん
2011/01/13(木) 09:44:44| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0415デフォルトの名無しさん
2011/01/13(木) 10:24:210416デフォルトの名無しさん
2011/01/13(木) 10:25:510417デフォルトの名無しさん
2011/01/13(木) 11:34:05シングルコアなのでできない
0418デフォルトの名無しさん
2011/01/13(木) 11:36:10そーなのかー
0419デフォルトの名無しさん
2011/01/13(木) 12:07:400420デフォルトの名無しさん
2011/01/13(木) 12:57:400421デフォルトの名無しさん
2011/01/13(木) 13:00:35「同時に」は一つのコマンドラインで複数のファイルを処理できるという意味です。
0422デフォルトの名無しさん
2011/01/13(木) 13:09:49揚げ足を取って面白おかしく解釈して楽しんでるだけだよ
0423デフォルトの名無しさん
2011/01/13(木) 13:43:49いいからさっさと正解書けよ無能!!
0424デフォルトの名無しさん
2011/01/13(木) 13:44:59糞人
0425デフォルトの名無しさん
2011/01/13(木) 13:49:530426デフォルトの名無しさん
2011/01/13(木) 14:04:18糞で無能とかマジ笑えるwww
0427デフォルトの名無しさん
2011/01/13(木) 14:06:050428デフォルトの名無しさん
2011/01/13(木) 15:17:37駅に何時何分までに到着したいかを入力すると何時何分発のバスに乗れば良いのかを表示する
っていうプログラムを作りたいんですけど、どういうふうに考えればいいのか分からないのでアドバイスください。
0429デフォルトの名無しさん
2011/01/13(木) 15:21:31着時間から発時間を決定する
0430デフォルトの名無しさん
2011/01/13(木) 15:26:30おわり
0431デフォルトの名無しさん
2011/01/13(木) 15:28:520432デフォルトの名無しさん
2011/01/13(木) 15:34:01↓こういう感じの時刻表を使って、
ttp://railway.jr-central.co.jp/jikoku/_pdf/shinkansen_west_bound101201.pdf
着駅を横に見て何時何分までに着く便を探し、縦に見てそれが何時何分に出発するかを探す
0433デフォルトの名無しさん
2011/01/13(木) 15:52:58A B C の駅があった場合、
AはBまでの時間、Cまでの時間の情報を持ち
BはA、C
CはA、Bへの所要時間の情報をもつ。
あとは、各駅が、バスの到着する時間の情報を持つ。
AはB行きがa1時 a2時、C行きがa3時 a4時
BはA行きがb1時 b2時、C行きがb3時 b4時
CはA行きがc1時 c2時、B行きがc3時 c4時 だとする。
この2つの情報から、答えを得る。
たとえば、スタート地点がA駅で、ゴールがB駅なら、
まずA駅の持ってる、各駅への所要時間から、C駅までかかる時間Tを得て
次にA駅の持ってる時刻表情報からC行きの時間 a3 と a4 からそれぞれ Tを引いて、値が0以上で最も小さい時間になる ax が、
乗るべきバスの時間になる。
0434デフォルトの名無しさん
2011/01/13(木) 15:55:330435デフォルトの名無しさん
2011/01/13(木) 16:00:460436デフォルトの名無しさん
2011/01/13(木) 16:16:18どうすればいいのかわかりません。
0437デフォルトの名無しさん
2011/01/13(木) 16:23:100438デフォルトの名無しさん
2011/01/13(木) 16:28:04遅延評価を利用すれば、出産日を遅くすることが可能
0439デフォルトの名無しさん
2011/01/13(木) 16:48:42おい無能で糞で低脳、何か言えよwwwwwwww
俺は高脳だからなwwwwwwwwwwwwwwwwwwwww
0440デフォルトの名無しさん
2011/01/13(木) 18:00:080441デフォルトの名無しさん
2011/01/13(木) 18:31:070442デフォルトの名無しさん
2011/01/13(木) 19:47:580443デフォルトの名無しさん
2011/01/13(木) 19:58:31基本情報技術者レベルの話すら説明できないお前って(笑)
0444デフォルトの名無しさん
2011/01/13(木) 20:00:42//~ ~\:::::\
. | (・) (・) .:|
| ,,ノ(、_, )ヽ、,, .::::| は?
. | `-=ニ=- ' .:::::::|
\ `ニニ´ .:::::/
/`ー‐--‐‐―´\
0445デフォルトの名無しさん
2011/01/13(木) 20:00:48糞の役にも立たないw
0446442
2011/01/13(木) 20:03:380447デフォルトの名無しさん
2011/01/13(木) 20:05:55422の時間は大学で授業受けてたっつーの。お前なんか幸せそうだな
0448デフォルトの名無しさん
2011/01/13(木) 20:06:05一人が悔しくて騒いでただけか
0449デフォルトの名無しさん
2011/01/13(木) 20:07:16(2)「一人で悔しかったのか」というテンプレレスで勝った気になる
0450デフォルトの名無しさん
2011/01/13(木) 20:08:470451デフォルトの名無しさん
2011/01/13(木) 20:08:570452デフォルトの名無しさん
2011/01/13(木) 20:10:000453デフォルトの名無しさん
2011/01/13(木) 20:10:030454デフォルトの名無しさん
2011/01/13(木) 20:11:460455デフォルトの名無しさん
2011/01/13(木) 20:12:450456デフォルトの名無しさん
2011/01/13(木) 20:25:59まあ基本情報は合格率は低いが専門学校の奴が落ちまくってるだけだな
大学では周りにそんな資格に興味のある奴は少ないし、試しに受けてみたら2週間くらいの対策で受かったわ
Cの問題の過去問は問題設定は置いといてもコードはK&Rの練習問題くらいだと思った
それで俺が受けた回はCというよりただの文章読解の知能テストだったから焦った
選択問題だからC回避のためにJavaか表計算もやっといた方が良いかもな。俺は面倒だからC一択だったけど
0457316
2011/01/13(木) 20:47:50http://codepad.org/8AImKgGH
ちなみにボクのハイスコアです。すごいでしょ
[Scr: 5980] [Line: 99] [Lv: 5]
必勝法はきれいにブロックを積んでくこと。あと瞬時の判断力です(^_^v
0458デフォルトの名無しさん
2011/01/13(木) 21:04:07お前の受けた回だけでも基本情報だけでもなくて、どの試験もいつもそんな感じ
国語力必須
0459デフォルトの名無しさん
2011/01/13(木) 21:05:27過去問と比較して相対的にそうだったって言ってるのが分からないかな
0460デフォルトの名無しさん
2011/01/13(木) 21:09:380461デフォルトの名無しさん
2011/01/13(木) 21:14:260462316
2011/01/13(木) 21:21:04[Scr: 12180] [Line:178] [Lv: 9]
名人くらいになると、ときどきレベル9まで行けちゃうのさ♪ でもその先は・・・さすがの名人でもお手上げさ(>_・「
<コロコロ読者のみんなに、名人から特別アドバイス>
一本づつ消しても点数低いから、まとめて消すと点数高いよ。
でも、欲張りすぎると画面が埋まっちゃうから、そこは注意がひつようだ!
あと、内部的な透明ブロックがどこまで下がってるのかを感ぢる”野性のカン”も大切。
それと、ゲームは一日一時間(>う<v
0463デフォルトの名無しさん
2011/01/13(木) 21:28:04どなたか教えて下されませんか?
0464デフォルトの名無しさん
2011/01/13(木) 21:31:280465デフォルトの名無しさん
2011/01/13(木) 21:38:50どこで聞けばいいんだ?
0466デフォルトの名無しさん
2011/01/13(木) 21:39:450467デフォルトの名無しさん
2011/01/14(金) 01:37:500468デフォルトの名無しさん
2011/01/14(金) 02:41:36なるべくメモリ使用量を減らすことを念頭に置き、以下のような感じで作りました。
これだと、オリジナルの文字列がどんなに長くても、+1文字分しかメモリを使わないと思いました。
これはポインタを使っていないのですが、ポインタを使うように書き換えるにはどうしたらいいでしょうか?
#include <stdio.h>
#include <string.h>
int main() {
char orig[32] = "abcdef";
char tmp[1]; // 作業用
int i = 0;
printf("origの内容 = %s\n", orig); printf("origのアドレス = %p\n", orig);
for (i = 0; i < strlen(orig); i++) {
printf("%c\n", orig[i]);
printf("%p\n", &orig[i]);
}
int from = 0;
int to = strlen(orig) - 1;
char result[strlen(orig)];
for (i = 0; i < strlen(orig); i++) {
tmp[0] = orig[from];
orig[from] = orig[to];
orig[to] = tmp[0];
from++;
to--;
if (from > to || from == to) { // from が to と逆転したら終了
break;
}
}
// 続く
0469468
2011/01/14(金) 02:41:56printf("origの内容 = %s\n", orig); printf("origのアドレス = %p\n", orig);
for (i = 0; i < strlen(orig); i++) {
printf("%c\n", orig[i]);
printf("%p\n", &orig[i]);
}
}
訂正します。
http://codepad.org/suNNV9nw
0472デフォルトの名無しさん
2011/01/14(金) 03:21:10ほんとに無駄なことが大好きなんだなw
0473デフォルトの名無しさん
2011/01/14(金) 03:26:380474468
2011/01/14(金) 03:28:27どうもありがとうございます。
ポインタ形式でも、 >>471 の5行目で char tmp として定義しているように、
詰め替え作業のための1文字は必要なのですね。
1点質問なのですが、4行目を
char *orig = "abcdef";
に書き換えると、
16行目の
*p = *q;
で segmentation fault で落ちるようになります。
これはどうしてでしょうか?
なるほどねえ。
0476468
2011/01/14(金) 03:32:44http://codepad.org/nvJL67nU
お使いの環境では、char *p = "abcdef"; としたときに、p の指す領域が、書き込み不可能として扱われているのだと思います。
私の環境 cygwin/Windows XP, gcc4 では問題ありませんでした。
0478468
2011/01/14(金) 03:38:00レスどうもありがとうございます。
こちらの環境を書いていなくて申し訳ありませんでした。
Win Xp SP2、cygwin 1.5.21 、 gcc 3.4.4 (4年ぐらい前にインストールした環境)
で行いました。
$ uname -a
CYGWIN_NT-5.1 ***** 1.5.21(0.156/4/2) 2006-07-30 14:21 i686 Cygwin
0479デフォルトの名無しさん
2011/01/14(金) 03:40:450480デフォルトの名無しさん
2011/01/14(金) 03:42:05>char *orig = "abcdef";
"abcdef"のアドレスをorigにおぼえさしてるだけでバッファは無い
0481468
2011/01/14(金) 03:48:21レスどうもありがとうございます。
char orig[] = "abcdef";
と
char *orig = "abcdef";
は同じものだと思っていたけど、
前者はちゃんとメモリを確保しているのに対し、
後者はあくまでも "abcdef" の先頭アドレスが、*orig というポインタ変数に入っているだけということか。
それは変ですね?環境は私とほぼ同じ。なんででしょう?
$ gcc-3 -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /managed/gcc-build/final-v3-bootstrap/gcc-3.4.4-999/configure -
-verbose --program-suffix=-3 --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc
--libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/s
hare/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --wit
hout-included-gettext --enable-version-specific-runtime-libs --without-x --enabl
e-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-li
bgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registr
y --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debu
g
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
$ uname -a
CYGWIN_NT-5.1 ***** 1.7.5(0.225/5/3) 2010-04-12 19:07 i686 Cygwin
0483468
2011/01/14(金) 03:53:25こちらではこんな感じになりました。(改行は手作業でやっています)
$ gcc -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /gcc/gcc-3.4.4/gcc-3.4.4-1/configure --verbose --prefix=/usr --exec-prefix=/usr
--sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info
--enable-languages=c,ada,c++,d,f77,java,objc --enable-nls --without-included-gettext
--enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib
--enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm
--disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug : (reconfigured)
Thread model: posix
gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125)
0484デフォルトの名無しさん
2011/01/14(金) 05:17:160485デフォルトの名無しさん
2011/01/14(金) 07:47:390486デフォルトの名無しさん
2011/01/14(金) 11:57:220487デフォルトの名無しさん
2011/01/14(金) 13:08:080488デフォルトの名無しさん
2011/01/14(金) 15:22:520489デフォルトの名無しさん
2011/01/14(金) 16:20:04環境変数はメモリだよ。メモリに変数名と値がずらずら書かれてる。
環境変数をインターフェースとはあまり言わないと思うが、
まぁ実行環境とアプリケーション間のインターフェースなのかなぁ…んー。
0490デフォルトの名無しさん
2011/01/14(金) 16:35:540491デフォルトの名無しさん
2011/01/15(土) 07:02:59ビットシフトはなんの役に立つのでしょうか?
0493Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 11:57:000494Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 12:27:050495デフォルトの名無しさん
2011/01/15(土) 13:19:370496Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 14:28:06あなたバカですか?
0497Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 14:29:13文がおかしいといいたいのですか?
日本語でってなんかかっこつけていうんじゃねえよしね
死ねよかす
死ね
0498デフォルトの名無しさん
2011/01/15(土) 14:44:210499Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 15:31:220500デフォルトの名無しさん
2011/01/15(土) 15:43:22ビット演算をしたい時。
主に組み込み系。
デスクトップアプリやWEBアプリではほとんど使い道がない。
>>493
画像が格納されているVRAMのアドレスを調べてそのアドレスの値を取得。
画面モードによって画像データが何バイトずつ格納されているのか変わるので注意。
>>494
画像のVRAMのアドレスを調べて目的の色と同じ値をもつアドレスを走査。
0501Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 16:00:070503デフォルトの名無しさん
2011/01/15(土) 16:04:10解決してよかったな
0504Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 17:06:11VRAM領域に読み込ませるにはどうやんの
Windows7とLinux用に教えて
APIとかあんの?
0505デフォルトの名無しさん
2011/01/15(土) 17:19:470506Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 17:29:15もういいです
0508デフォルトの名無しさん
2011/01/15(土) 17:52:05一般的にはRAMに読み込んでから転送
これをするPerlコード教えてください
0509Perl忍者 ◆M5ZWRnXOj6
2011/01/15(土) 18:31:28これがあったからお前らいらね
カエレしね
0510デフォルトの名無しさん
2011/01/15(土) 18:41:47#include<stdio.h>
int main(void){
char x1=0, x2=0;
int x, count=0;
while((x=getchar())!=EOF){
x2=x1;
x1=x;
if(x1==x2){
count++;
}else{
if(count>1) printf("%d", count);
printf("%c", x1);
count=1;
}
}
if(count>1) printf("%d", count);
return 0;
}
これだと手入力でaaabbbだとa3b3と表示されます。
これをtxtファイルからaaabbbを読み込んでtxtファイルに出力してa3b3と表示できますか?
0511デフォルトの名無しさん
2011/01/15(土) 18:50:57hoge <in.txt >out.txt
0512デフォルトの名無しさん
2011/01/15(土) 19:06:56でも質問してるじゃねぇか。
せっかくコード書いたのに・・・・。
0513デフォルトの名無しさん
2011/01/15(土) 19:10:020514デフォルトの名無しさん
2011/01/15(土) 19:24:350515デフォルトの名無しさん
2011/01/15(土) 19:26:540516デフォルトの名無しさん
2011/01/15(土) 19:36:05すいません。いろんな方の意見を聞きたかったので。
0517デフォルトの名無しさん
2011/01/15(土) 19:39:240518デフォルトの名無しさん
2011/01/15(土) 19:43:400519デフォルトの名無しさん
2011/01/15(土) 19:55:37#include <stdio.h>
#include "struct.h"
#include "sub.h"
struct FOO g_foo;
int main(){
printf("%d\n",g_foo.nNum1);
Bar();
return 0;
}
==sub.h==
#include <stdio.h>
#include "struct.h"
void Bar(void);
==sub.c==
#include "sub.h"
void Bar(void){
printf("%d\n",g_foo.nNum2);
}
=struct.h=
struct FOO{
int nNum1;
int nNum2;
};
extern struct FOO g_foo;
上記の様に、グローバルな構造体FOOをmain.cとsub.cで利用しようと試みているのですが、
redefinition of 'struct FOO'等のエラーが出てしまいます。
何方か解決方法を教えていただけないでしょうか。
0520デフォルトの名無しさん
2011/01/15(土) 19:59:55main.c から
#include "struct.h"
#include "sub.h" → #include "struct.h"
でstruct.hが合計2回読まれてるので、struct FOOが2回定義されるから、エラーになる
インクルードガードでぐぐるとよい
0521519
2011/01/15(土) 20:16:21回答有難うございます。
==struct.h==
#ifndef STRUCT_H
#define STRUCT_H
struct FOO{
int nNum1;
int nNum2;
};
extern struct FOO g_foo;
#endif //STRUCT_H
で動いてくれました。
0522デフォルトの名無しさん
2011/01/15(土) 22:27:13返す値とか返り値とか
関数名()の()の中身とか
がわかりません
なにがわからないのかわからないかもしれませんがorz
0523デフォルトの名無しさん
2011/01/15(土) 22:32:11C言語ではf(x, y)と書くことで関数fに引数x, yを渡す。
a = f(x, y);
とすれば、変数aにf(x, y)の戻り値が代入される。
0524デフォルトの名無しさん
2011/01/15(土) 22:35:310525デフォルトの名無しさん
2011/01/15(土) 23:02:380526デフォルトの名無しさん
2011/01/15(土) 23:08:330527デフォルトの名無しさん
2011/01/15(土) 23:42:290528デフォルトの名無しさん
2011/01/15(土) 23:44:150529369
2011/01/15(土) 23:46:19return
を使うのでしょうか?
0530デフォルトの名無しさん
2011/01/16(日) 00:18:45あるのでしょうか??
0531デフォルトの名無しさん
2011/01/16(日) 00:19:06fgets(t,100,fp)で標準入力から100バイトとってtに入れるんだけど
\0で文字の終わりですよね
で \0以降は何も入らないというか入ってないんでしょうか?
0532デフォルトの名無しさん
2011/01/16(日) 00:20:01printf に文字列を渡すことができる
0533デフォルトの名無しさん
2011/01/16(日) 00:20:31ゴミが入ってる
0534Perl忍者 ◆M5ZWRnXOj6
2011/01/16(日) 00:38:200535デフォルトの名無しさん
2011/01/16(日) 00:39:330536デフォルトの名無しさん
2011/01/16(日) 01:06:03良くわかりません。
編集エディタの上左端に[EOF]とよくありますよね?
プログラミング組む時も良く使うのですがEOF=-1??
良く分かりません。教えてください。
0537デフォルトの名無しさん
2011/01/16(日) 01:12:110538デフォルトの名無しさん
2011/01/16(日) 01:13:53つまりreturn0;=EOFですか?
このプログラムは正常終了したよって知らせるものですか?
良く分からなくて頭がおかしくなりそうです。
0539デフォルトの名無しさん
2011/01/16(日) 01:20:43っていうのをお知らせするもの…
とでも思ってくれればよい
0540デフォルトの名無しさん
2011/01/16(日) 01:21:12ファイルを最後まで読み込んだ時に返される。
実体は-1
0541デフォルトの名無しさん
2011/01/16(日) 01:22:58編集エディタのEOFは文章の最後という意味。
開業したらEOFは一行下がるでしょ?
0542デフォルトの名無しさん
2011/01/16(日) 01:23:18return0とは違うのですか?
0543デフォルトの名無しさん
2011/01/16(日) 01:26:06最後の行が変わっていいのですか?一行下がると
それは最後じゃないじゃないですか。
0544デフォルトの名無しさん
2011/01/16(日) 01:27:52エディタのEOFは編集中の文章の最後という意味。
何のエディタ使ってるか知らないがエディタはC言語専用のものではない。
手紙を書こうがJAVA言語書こうが自作言語書こうがエディタで書いている文章の最後
を表す。
もう来るな!
0545デフォルトの名無しさん
2011/01/16(日) 01:28:120546デフォルトの名無しさん
2011/01/16(日) 01:30:16例えば100行目=EOFだとして、改行して101行目になるならば
EOF=100行目に矛盾しませんか?
0547デフォルトの名無しさん
2011/01/16(日) 01:32:29#include<stdio.h> EOF
int main()EOF
{EOF
int i;EOF
i=1;EOF
printf("%d\n",1);EOF
return 0;EOF
}EOF
こうするのですか?
0548デフォルトの名無しさん
2011/01/16(日) 01:32:58プログラム中に書いてあるEOFは
ファイルオープンしてデータの最後を表す。
エディタについている消したくても消せないEOFというのはエディタのもの。
別物と思っとけ。
0549デフォルトの名無しさん
2011/01/16(日) 01:34:09ジュース吹き出した。
これはひどいw
0550デフォルトの名無しさん
2011/01/16(日) 01:35:10そのプログラムコードではEOFはすべて消せ。
0551デフォルトの名無しさん
2011/01/16(日) 01:35:360552デフォルトの名無しさん
2011/01/16(日) 01:35:440553デフォルトの名無しさん
2011/01/16(日) 01:36:550554デフォルトの名無しさん
2011/01/16(日) 01:37:32たとえば配列に文字を入れていき、最後に0を入れたところを終わりとする決まり。その最後の印として0を使ったりする。
でも、べつに実際は0でなくてもいい。1でもいいし、2でもいいし、'A'でも'B'でも何でもいい。その配列を読む仕組みを自分で決めて、たとえば
文字列の最後を示す印に'A'をつかったって良い。 ただ、実際は0が都合がいいから0が使われてるだけ。 もちろん0の後ろに文字を続けたっていい。
EOFも同じで、ただの印。テキストファイルの終端を表す。
べつにEOFとしてどんな数字を使ってもいい。ただ、実際は1111111111..... が都合がいいから、11111111111....がEOFとして使われてるだけ。
(-1は、全部のビットが1の状態。11111111......)
(int型が32bitだとしたら、EOFはint型なので、実際はビットは 11111111111111111111111111111111)
たとえば、ファイルの最後にEOFが無くてもいいし、文字列の最後に0が無くてもいい。
'A'をEOFとして扱ってもいいし、文字列の最後を'A'として扱ってもいい。自分でデータを読む関数を書くときに、それがわかってれば実は何を使っても書ける。
ただ、一般的にEOFは-1だし、文字列の最後は0にするのが普通だから、他の人はテキストデータを読むときに、そういう形で記録されてることを期待してデータを読む。
だから一般的な0やEOFに合わせた方が他人にも使いやすいデータになるだろうし、他人の作った関数で処理するときも上手く動くだろうってだけの理由。
だから文字列の最後を意味する数字や、テキストファイルの最後を意味する数字がほぼ固定されてる。でも実際は何でもいい。関数を書く本人がわかってれば何を使っても動く。
0555デフォルトの名無しさん
2011/01/16(日) 01:51:00つまりこういうことですね。[EOF]
0556デフォルトの名無しさん
2011/01/16(日) 01:51:10人がよすぎワロタww
0557デフォルトの名無しさん
2011/01/16(日) 01:52:080558デフォルトの名無しさん
2011/01/16(日) 01:54:25ありがとうございます、じっくり読んでまたレスします。
本当に分からない事が次々に壁になって意識が飛びそうです。
0559デフォルトの名無しさん
2011/01/16(日) 01:58:30C言語初めて+エディタというものも初めて。
サクラエディタあたりを使っているためエディタのEOFと
ファイルからのデータ読み込みのEOFがごっちゃになってる
と見た。
0560デフォルトの名無しさん
2011/01/16(日) 01:58:49たまにはこういう息抜きがあっても良いw
0561デフォルトの名無しさん
2011/01/16(日) 02:00:030562デフォルトの名無しさん
2011/01/16(日) 08:42:57ランダムにテキストの中の文字を出力するプログラムを書いているのですが5行目しか出力されません
どうすれば改善されるでしょうか
0563デフォルトの名無しさん
2011/01/16(日) 08:51:500564デフォルトの名無しさん
2011/01/16(日) 09:02:58の前に
srand((unsigned) time(NULL));
を追加
0565デフォルトの名無しさん
2011/01/16(日) 12:09:420566デフォルトの名無しさん
2011/01/16(日) 13:23:20mainにもどり、また1回目で呼び出した関数でfor文を実行した場合
2回目のfor文では初期化((for(n=0;fgets(t,10,fp)!=NULL;n++)の場合n=0)
は実行されるんですか?
0567デフォルトの名無しさん
2011/01/16(日) 13:29:530568デフォルトの名無しさん
2011/01/16(日) 13:30:310570デフォルトの名無しさん
2011/01/16(日) 13:34:40なんで実行されない可能性があると思うの?
0571デフォルトの名無しさん
2011/01/16(日) 13:43:23特別なライブラリは、一切使ってません。(使ったライブラリーは stdio.h と stdlib.h だけです。)
よかったら参考にどうぞ。
ダウンロード方法;
1.
適当なディレクトリに移動します。
2.
ソースをダウンロードします。
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/io_fb.git
コンパイル方法:
3.
ソースディレクトリに移動します。
cd io_fb
4.
コンパイルします
make
実行方法:
5.
(Alt + Ctrl + F1) 〜 F6 のどれかのキーを押して、tty画面に移動し、ログインします。(gnomu上のコンソールでは動かないです)
6.
管理者権限でプログラムを実行します。(ユーザー権限だと、フレームバッファに直接書いたりできません)
sudo ./io_fb_test
7.
うまく動けば、画面にフェドラっぽい青いグラデーションが表示されるはずです。
gnome 画面に戻るには (Alt + F7) 〜 F8 のどれかのキーを押せば戻れます。
0572デフォルトの名無しさん
2011/01/16(日) 14:13:18このプログラムのコンパイル結果が
$ gcc x.c
x.c: In function ‘sort’:
x.c:84: warning: passing argument 4 of ‘qsort’ from incompatible pointer type
/cygdrive/c/Users/mituru/AppData/Local/Temp/ccH37fKt.o:x.c:(.text+0x1b1): undefi
ned reference to `_fptintf'
collect2: ld returned 1 exit status
こうなって実行できません><
0573デフォルトの名無しさん
2011/01/16(日) 14:17:37間違い探し。 以下の2つの違うところはどこでしょう?
fptintf
fprintf
0574デフォルトの名無しさん
2011/01/16(日) 14:22:4184行目の引数の型が間違ってる。というかmycompに引数を与えてない
0575デフォルトの名無しさん
2011/01/16(日) 16:16:48hello.c というソースコードから
hello.obj, hello.exe ができるまでの流れについて確認させて下さい。
自分なりの考えを以下に書きましたので、
合っているかどうかコメントいただけるととても嬉しいです。よろしくお願いします
-----------------------------------------------------------------------------
※ hello.c は「hello」という文字列を出力するソースコードとする。
文字列を出力するには printf というライブラリ関数を使うが、
使うには宣言をする必要がある。それが #include <stdio.h> という命令である。
printf というライブラリ関数はライブラリ内で定義されているため、
hello.c の実行可能プログラムを実行するにはライブラリもメモリ上にロードする必要がある。
そして、メモリ上にロードされたライブラリにある printf のアドレスを
実行可能プログラムが参照する必要がある。
ソースコードをコンパイルして生成するオブジェクトファイルには、
printf のアドレスは仮のアドレスとなっている。
リンカを実行した時に仮のアドレスが確定し、実行可能プログラムが作られる
以上
0576デフォルトの名無しさん
2011/01/16(日) 16:27:24だいたいいいと思うけど、コンパイルのときのプロセスと実行時のプロセスの説明が
混ざってるのが気になる。
0577デフォルトの名無しさん
2011/01/16(日) 16:29:51即レスありがとうございます……!! もうちょっと考えてみます
0578デフォルトの名無しさん
2011/01/16(日) 19:31:05このコード凄いな
こんな事をするならば、普通C++を使うだろって思ってしまったわ
0579デフォルトの名無しさん
2011/01/16(日) 20:06:130580デフォルトの名無しさん
2011/01/16(日) 20:23:290581デフォルトの名無しさん
2011/01/16(日) 20:24:370582デフォルトの名無しさん
2011/01/16(日) 20:46:500583デフォルトの名無しさん
2011/01/16(日) 20:52:140584デフォルトの名無しさん
2011/01/16(日) 21:12:02お前みたいな、発想のやつっているよな〜
mallocを自作してみましたみたいなwww
でも、お前みたいな発想好きだよ
0585デフォルトの名無しさん
2011/01/16(日) 21:27:270586デフォルトの名無しさん
2011/01/16(日) 21:33:590587デフォルトの名無しさん
2011/01/16(日) 21:38:36確かにあの人技術はすごいのかも知れないけど、掲示板とかの発言がちょっと
0588デフォルトの名無しさん
2011/01/16(日) 22:18:43>リンカを実行した時に仮のアドレスが確定し、
じゃあ真のアドレスはどのタイミングで確定するの?
0589デフォルトの名無しさん
2011/01/16(日) 22:19:360590AQ
2011/01/16(日) 22:28:340591デフォルトの名無しさん
2011/01/16(日) 22:39:380592デフォルトの名無しさん
2011/01/16(日) 22:42:190593デフォルトの名無しさん
2011/01/16(日) 22:42:430594デフォルトの名無しさん
2011/01/16(日) 22:46:190595AQ
2011/01/16(日) 23:04:24下半身が寒くて風邪ひきそうです!
0596デフォルトの名無しさん
2011/01/16(日) 23:07:470597AQ
2011/01/16(日) 23:23:310598デフォルトの名無しさん
2011/01/16(日) 23:34:410599デフォルトの名無しさん
2011/01/17(月) 00:48:35{
goukei += kyori[j];
printf("%d\n",goukei);
}
この文でエラーみたいなのがでるんだけど、どこか間違っていますか。
文法的に間違ってあるところがあるなら指摘よろしくお願いします。
0600AQ
2011/01/17(月) 00:49:28なり済ましやめてください
0601デフォルトの名無しさん
2011/01/17(月) 00:51:460602デフォルトの名無しさん
2011/01/17(月) 00:56:150603デフォルトの名無しさん
2011/01/17(月) 01:03:200604デフォルトの名無しさん
2011/01/17(月) 01:03:59下半身が寒くて風邪ひきそうです!
0605デフォルトの名無しさん
2011/01/17(月) 01:05:29for(j=moto;j!=genzai;j++)
{
goukei += kyori[j];
printf("%d\n",goukei);
}
0606デフォルトの名無しさん
2011/01/17(月) 01:49:03ありがとうございます!
なんかできるような気がしてきました。
0607デフォルトの名無しさん
2011/01/17(月) 01:55:240608デフォルトの名無しさん
2011/01/17(月) 01:58:30具体的にどんなエラーが出るか貼ると教えやすいよ。
後一部分だけだと分かりにくいし。
0609デフォルトの名無しさん
2011/01/17(月) 10:14:12int main()
{
int x
scanf("%d\n",x);
printf("%d\n",x);
return (0);
}
エラーが出ます、どうしたら・・・
0610デフォルトの名無しさん
2011/01/17(月) 10:15:00#include<stdio.h>
int main(void)
{
int x;
scanf("%d\n",x);
printf("%d\n",x);
return (0);
}
です。何がおかしいでしょうか?
0611デフォルトの名無しさん
2011/01/17(月) 10:18:21scanf("%d",&x);
0612デフォルトの名無しさん
2011/01/17(月) 11:03:33double x=6.5;
printf("%lf",x);
printf("%f",x);
どっち使ってる?
0613デフォルトの名無しさん
2011/01/17(月) 11:14:520614デフォルトの名無しさん
2011/01/17(月) 11:15:560615デフォルトの名無しさん
2011/01/17(月) 11:18:020617デフォルトの名無しさん
2011/01/17(月) 11:33:520618デフォルトの名無しさん
2011/01/17(月) 11:37:240619デフォルトの名無しさん
2011/01/17(月) 13:25:38あれはすごいな。
俺プログラマになれないと思った。
0620デフォルトの名無しさん
2011/01/17(月) 13:43:25はいはい巣にお帰りください
0621デフォルトの名無しさん
2011/01/17(月) 14:54:45あんな物は誰でも出来る。
0622デフォルトの名無しさん
2011/01/17(月) 15:02:130623デフォルトの名無しさん
2011/01/17(月) 15:34:30テトリス自体は単純なプログラムかもしれないけど
というか色々なツールを使ってパソコンの事がより理解できるのが
楽しかったんだよ。APIだとメモ帳だのブラウザだのC言語だtの
色んなツールでCUIアプリ作れるんだって実感してワクワクした。
0624デフォルトの名無しさん
2011/01/17(月) 15:35:300625デフォルトの名無しさん
2011/01/17(月) 15:37:36標準Cじゃ無理だがそうでないならできるだろ?
0626デフォルトの名無しさん
2011/01/17(月) 15:42:53昔はそういうノリのスレが多かったのに最近はスレが立った途端に「企画厨乙」だからな。
VS起動するまで待てよと、プログラマの俺様が見てるのに勝手に終わらせるなといいたい。
0627デフォルトの名無しさん
2011/01/17(月) 15:44:20何だってありだといえばありなんだよ
ただ、今の時代にそういう制限をして楽しいのはプログラマだけ。
0628デフォルトの名無しさん
2011/01/17(月) 15:47:00めちゃくちゃ嵌まるが、3Dゲームやりだすと途端にフォーマルにな
るから糞つまらんのよな。
コマンドプロンプト上でテトリスみたいなの作れるの???
色は無理なのは分かるけど、棒が落ちてくる出力機能何てあったっけ?
APIが必要に決まってる。
0629デフォルトの名無しさん
2011/01/17(月) 15:47:56プログラマまじかっこいい!!!
このスレの人、何だかんだで答え教えてくれるからまじ便利!!
0630デフォルトの名無しさん
2011/01/17(月) 15:54:38いや最初に標準Cのみじゃ無理だって言ったろ・・・・・・・
なに言ってんだよ
0631デフォルトの名無しさん
2011/01/17(月) 15:57:04最近のWindowsは無理だったと思うけど。
0632デフォルトの名無しさん
2011/01/17(月) 17:16:24できるぞ
http://2sen.dip.jp/cgi-bin/upgun/up1/source/up53432.exe
0633デフォルトの名無しさん
2011/01/17(月) 17:18:47よしば色ついてたとしてもエスケープシーケンスではないだろうし
0634デフォルトの名無しさん
2011/01/17(月) 17:25:59コンパイルは通るんですけど
449行目の
preorder(temp);
に入ったところで強制終了されてしまいます。
なぜでしょうか?よろしくお願いします。
0635デフォルトの名無しさん
2011/01/17(月) 17:26:41出力媒体?
0636デフォルトの名無しさん
2011/01/17(月) 17:36:26どんな複雑なプログラミング何だよw
ここ入門編だぞw
0637デフォルトの名無しさん
2011/01/17(月) 17:41:36すいません・・・w
どこで聞けばいいですかね?
0638デフォルトの名無しさん
2011/01/17(月) 17:45:550639デフォルトの名無しさん
2011/01/17(月) 17:52:27if (target->oya == NULL) {
puts("!!!!!!!!!!");
exit(1);
}
って入れたら分かるかもね
0640デフォルトの名無しさん
2011/01/17(月) 18:08:49直し方がわかりません・・・
0641デフォルトの名無しさん
2011/01/17(月) 18:21:480642デフォルトの名無しさん
2011/01/17(月) 18:21:53それに答えてあげるにはこのプログラム全体を理解しないといけない
それはめんどいわ
if (target->oya == NULL) {
return count;
}
ってしとけばとりあえずコンパイルは通るし結果も出るよ
多分結果はおかしいだろうが
0643デフォルトの名無しさん
2011/01/17(月) 18:28:04それをデバッグしろとかプログラマ推奨環境だろww
0644デフォルトの名無しさん
2011/01/17(月) 18:37:02解説しなよ〜。
0646デフォルトの名無しさん
2011/01/17(月) 18:47:15ご迷惑おかけしました
0647デフォルトの名無しさん
2011/01/17(月) 20:02:29いえいえ
0648デフォルトの名無しさん
2011/01/17(月) 22:53:47またまた申し訳ありません
678行目以降のSAが全く動いてくれません。
原因がわかる方よろしくお願いします。
0649デフォルトの名無しさん
2011/01/17(月) 23:25:010650デフォルトの名無しさん
2011/01/17(月) 23:33:06cygwinでこのようにコンパイルするとなにがおこるんですか
0651デフォルトの名無しさん
2011/01/17(月) 23:36:510652デフォルトの名無しさん
2011/01/17(月) 23:44:50それがおこります
0653デフォルトの名無しさん
2011/01/17(月) 23:46:40gcc: a.o: No such file or directory
gcc: b.o: No such file or directory
gcc: c.o: No such file or directory
gcc: no input files
実際にはリンカ (ln?) が呼び出されます。
オブジェクトファイル a.o b.o c.o とスタートアップモジュール(crt.o または gcrt.o?) が結合されて、tyu.exe という名前の実行ファイルが作成されます。
c のソースファイルからオブジェクトファイルを作成するには、gcc -c a.c などとします。
0655デフォルトの名無しさん
2011/01/17(月) 23:50:410656デフォルトの名無しさん
2011/01/17(月) 23:53:41助けて、腹筋が…
0658デフォルトの名無しさん
2011/01/18(火) 00:01:38さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
さすが糞鶏◆QZaw55cn4c
0659デフォルトの名無しさん
2011/01/18(火) 00:13:56レスサンクス。
出るのはエラーというかプログラムがそこのラインだけをなぜか無視するんだ。
結局、「==」が原因だったみたいで「!=」にしたら解決した。
0660デフォルトの名無しさん
2011/01/18(火) 00:24:41パンフレットに書いてあるカリキュラムなどを見ると
C言語やJavaを使ったプログラミングがあります
C言語から習うということらしく、ちょっと先に勉強しようと
思い調べてみたのですが、コンパイラ? というものが
必要らしく、数が多くどれを導入すればいいかわかりません
使っているOSはWindowsなのですが
オススメのコンパイラがあれば教えて貰えないでしょうか?
0661デフォルトの名無しさん
2011/01/18(火) 00:27:500662デフォルトの名無しさん
2011/01/18(火) 00:28:250664デフォルトの名無しさん
2011/01/18(火) 00:29:470665デフォルトの名無しさん
2011/01/18(火) 00:31:470666デフォルトの名無しさん
2011/01/18(火) 00:32:29コンパイラの使い方なんぞ大学行ってから覚えろ
0667デフォルトの名無しさん
2011/01/18(火) 00:32:340668デフォルトの名無しさん
2011/01/18(火) 00:36:500669デフォルトの名無しさん
2011/01/18(火) 00:38:490670デフォルトの名無しさん
2011/01/18(火) 00:44:27良いコンパイラだぞ
0671デフォルトの名無しさん
2011/01/18(火) 00:46:140672デフォルトの名無しさん
2011/01/18(火) 00:49:090673デフォルトの名無しさん
2011/01/18(火) 00:49:51LSI C-86試食版
0674デフォルトの名無しさん
2011/01/18(火) 00:50:000675デフォルトの名無しさん
2011/01/18(火) 00:50:51その前に本読んどけ
0676デフォルトの名無しさん
2011/01/18(火) 00:52:44良い反面教師だよ君は
0677デフォルトの名無しさん
2011/01/18(火) 00:52:520678デフォルトの名無しさん
2011/01/18(火) 00:54:420679デフォルトの名無しさん
2011/01/18(火) 00:55:390680デフォルトの名無しさん
2011/01/18(火) 00:56:47どれか導入してみます
あと本も買ってみます
みなさん、遅い時間にありがとうございました。
0681デフォルトの名無しさん
2011/01/18(火) 00:57:19俺も死ぬ
0682デフォルトの名無しさん
2011/01/18(火) 01:07:05Javaもいらない
0683デフォルトの名無しさん
2011/01/18(火) 01:07:530684デフォルトの名無しさん
2011/01/18(火) 01:13:280685デフォルトの名無しさん
2011/01/18(火) 01:19:310686デフォルトの名無しさん
2011/01/18(火) 01:23:450687デフォルトの名無しさん
2011/01/18(火) 01:25:220688デフォルトの名無しさん
2011/01/18(火) 02:08:28Cの標準ライブラリーだけで
三角形にBMP画像をテクスチャーマッピングして、フレームバッファに描き込んで、画面に表示するプログラム作ってみました。
(linuxです。ubuntu10.10(32bit)で動作確認)
ダウンロード方法
git clone git://git.pf.sourceforge.jp/gitroot/k/ke/kemeco/testcode.git
コンパイルはダウンロードしたやつのディレクトリに移動して make と打つだけです。
実行は Alt + Ctrl + F1 などで移動できる tty 画面で sudo で実行する必要があります。
(管理者権限でないと、フレームバッファーに描き込めないらしい…)
コマンドは sudo ./fb_paint_tool_test と打ちます。
とりあえず、頂点を一ヶ所だけ上下左右に移動できます。h j k l キーで、操作はviと同じです。あとスペースで表示リセット。
終了は作ってません。 Ctrl + c とかで適当にお願いします(笑)
0689デフォルトの名無しさん
2011/01/18(火) 02:23:560690デフォルトの名無しさん
2011/01/18(火) 03:14:21アルゴリズム(ヒープ、クイック、二分探索木など)を用いて出来る
ある程度簡単なプログラムは何があるでしょうか?
良いアイデアがあったら教えてください。
0691デフォルトの名無しさん
2011/01/18(火) 03:21:370692デフォルトの名無しさん
2011/01/18(火) 03:25:11今からWin32APIを学ぶことについてどう思いますか?
ものすごく非効率な長ったらしいプログラミングで
おまけに予約語が多くて理解しづいらいし
しかもそろそろWin64APIがくるんじゃないかと思うとあんまりやる気ができません
もし「それでもやっとけ!」という理由があれば教えてください
0693デフォルトの名無しさん
2011/01/18(火) 03:33:580694デフォルトの名無しさん
2011/01/18(火) 03:55:311冊読んで判断しろ
0695デフォルトの名無しさん
2011/01/18(火) 04:29:07int main(void){
char x1,x2;
int x,count=0;
while((x=getchar())!=EOF){
x2=x1;
x1=x;
if(x1==x2){
count++;
}
else{
if(count>1)
printf("%d", count);
printf("%c", x1);
count=1;
}
}
if(count>1) printf("%d", count);
printf("%c",x1);
return 0;
}
入力した文字をカウントするプログラムです。
aabbと入力するとa2b2となるのですがabbと入力するとab2となります。
ab2をa1b2にするにはどうすればいいのでしょうか?
0696デフォルトの名無しさん
2011/01/18(火) 04:45:21if(count>1)これいる?
あとcount=0はcount=1かな
今手元に環境ないから試せてないけど
0697デフォルトの名無しさん
2011/01/18(火) 04:45:32根本的にやり方間違ってる
0698デフォルトの名無しさん
2011/01/18(火) 04:47:390699デフォルトの名無しさん
2011/01/18(火) 04:50:160700デフォルトの名無しさん
2011/01/18(火) 05:18:55Cって初期化しないと配列ってどうなってたっけ0で埋められてる気もしたけど念のためいれてある。
#include<stdio.h>
int main(void){
int c[26]={0};
int i;
int x;
while((x=getchar())!=EOF)
{
c[x-'a']++;
}
for(i=0;i<26;i++)
{
if(c[i]>0){
printf("%c",i+'a');
printf("%d",c[i]);
}
}
return 0;
}
0701デフォルトの名無しさん
2011/01/18(火) 05:29:050702デフォルトの名無しさん
2011/01/18(火) 05:34:29それを考慮して作った
#include<stdio.h>
int main(void){
char x1,x2; //x1は入力用 x2は確認用
int count = 0;
x2 ='\0'; //何も入ってない
while((x1=getchar()) != EOF){ //文字入力された?
if(count == 0){
putchar(x1); //もしカウントが0ならば、入力された文字を出力
count++;
}
if(x2 == '\0'){
x2 = x1; // もし初回ならば、確認用x2にx1を入れる
}else if(x1 == x2){
count++; //もし前に入力されたのと同じであればカウント
}else{
printf("%d",count); //違う文字が入力されたのならカウントを出力
count = 0; //カウント初期化
x2 = x1; //確認用に新しい文字を入れる
}
}
printf("%d",count); //EOFが入力されたらできなかったカウントを出力
return 0;
}
0703デフォルトの名無しさん
2011/01/18(火) 05:40:44#include<stdio.h>
int main(void){
char x1,x2; //x1は入力用 x2は確認用
int i,count = 0;
i=0; x2 ='\0'; //何も入ってない
while((x1=getchar()) != EOF){ //文字入力された?
if(count == 0){
putchar(x1); //もしカウントが0ならば、入力された文字を出力
count++;
}
if(x2 == '\0'){
x2 = x1; // もし初回ならば、確認用x2にx1を入れる
}else if(x1 == x2){
count++; //もし前に入力されたのと同じであればカウント
}else{
printf("%d",count); //違う文字が入力されたのならカウントを出力
count = 0; //カウント初期化
x2 = x1; //確認用に新しい文字を入れる
}
}
printf("%d",count);
return 0;
}
0704デフォルトの名無しさん
2011/01/18(火) 08:58:05サーバーを介さずに、コンソール画面で行いたいのですが、何から勉強すればいいでしょうか
もしサンプルプログラムでもあればお願いします
0705デフォルトの名無しさん
2011/01/18(火) 10:14:320706デフォルトの名無しさん
2011/01/18(火) 14:28:32- [フォルダ名1-3]
というふうに「フォルダ名1-2とフォルダ名1-3」のフォルダ名を取得することはできるのでしょうか?
取得することができるなら、どういったものを使えば取得できるのでしょうか?
0707デフォルトの名無しさん
2011/01/18(火) 15:11:510708デフォルトの名無しさん
2011/01/18(火) 16:10:57線形リスト
0709デフォルトの名無しさん
2011/01/18(火) 16:24:53糞
0710デフォルトの名無しさん
2011/01/18(火) 17:43:08遅くなりました。
あざっっす!!
0711デフォルトの名無しさん
2011/01/18(火) 18:53:3812行目でエラーが出てコンパイルできません。原因を教えてください。
http://codepad.org/7c0gOGxl
0712デフォルトの名無しさん
2011/01/18(火) 18:56:46;
0713デフォルトの名無しさん
2011/01/18(火) 19:03:380715デフォルトの名無しさん
2011/01/18(火) 20:04:07の間を打てばそれぞれの
int a;
scanf("%d,&a");
switch(a)
case :0
breake;
case :1
breake;
case :2
breake;
0〜2以外を打てばまた入力からもどすにはどうせればいいですか??
0716デフォルトの名無しさん
2011/01/18(火) 20:10:00b: scanf("%d",&a);
switch(a) {
case 0:
break;
case 1:
break;
case 2:
break;
default:
goto b;
}
0717デフォルトの名無しさん
2011/01/18(火) 20:16:14>>716
ほかに方法ってないんですか??whileかなにかで
0718デフォルトの名無しさん
2011/01/18(火) 20:19:080719デフォルトの名無しさん
2011/01/18(火) 20:19:360720デフォルトの名無しさん
2011/01/18(火) 20:19:490721デフォルトの名無しさん
2011/01/18(火) 20:24:570722デフォルトの名無しさん
2011/01/18(火) 20:32:16do {
scanf("%d",&a);
}while( check(a) );
こういう風にしたのですが
check(a)ってどうすればいいですか??
0724デフォルトの名無しさん
2011/01/18(火) 20:36:47// 入力があったらカウントして → 古い字と違ってたら色々表示して → EOFなら終わり
// 言葉のまんま、そのまま素直に書いただけ
#include<stdio.h>
void main()
{
int count = -1;
int a = EOF;
do {
int _ = getchar();
count++;
if((a != _) && (count > 0)) {
printf("%c%d ", a, count);
count = 0;
}
a = _;
} while(a != EOF);
}
0725デフォルトの名無しさん
2011/01/18(火) 20:43:530726デフォルトの名無しさん
2011/01/18(火) 20:55:46do {
scanf("%d",&a);
}while(a < 0 || 2 < a);
0727デフォルトの名無しさん
2011/01/18(火) 21:00:17scanf("%d",&a);
while(a<0||2<a){
scanf("%d",&a);
switch(a) {
case 0:
break;
case 1:
break;
case 2:
break;
}
}
switch(a) {
case 0:
break;
case 1:
break;
case 2:
break;
}
ってことですか???
0728デフォルトの名無しさん
2011/01/18(火) 21:04:230729デフォルトの名無しさん
2011/01/18(火) 21:06:42>>726でおk
0730デフォルトの名無しさん
2011/01/18(火) 21:10:36ありがとうございますmm
0731デフォルトの名無しさん
2011/01/18(火) 21:37:23do{
scanf("%d", &a);
}while(a>>2);
// お、おしい…!!(orz
0732デフォルトの名無しさん
2011/01/18(火) 21:43:58やっぱwhile
だけじゃ無理ぽですよね??
0733デフォルトの名無しさん
2011/01/18(火) 21:55:110734デフォルトの名無しさん
2011/01/18(火) 22:09:14ちくしょおおおおおおおおおおお
0735デフォルトの名無しさん
2011/01/18(火) 22:23:17do {
scanf("%d", &a);
getchar();
} while(a!=0 && a!=1 && a!=2);
間にゲッチャを挟んだら、なぜか動いた。不思議すぎる。
0736デフォルトの名無しさん
2011/01/18(火) 22:32:300737デフォルトの名無しさん
2011/01/18(火) 23:43:480738デフォルトの名無しさん
2011/01/19(水) 00:54:540739デフォルトの名無しさん
2011/01/19(水) 01:07:300740デフォルトの名無しさん
2011/01/19(水) 01:39:57見つかりません。
どなたか情報お持ちの方いらっしゃいませんか。
0741デフォルトの名無しさん
2011/01/19(水) 01:49:40ありがとうございます!
0742デフォルトの名無しさん
2011/01/19(水) 02:05:490744デフォルトの名無しさん
2011/01/19(水) 14:26:13http://q.hatena.ne.jp/1118121349
0745デフォルトの名無しさん
2011/01/19(水) 15:48:49http://codepad.org/Vnyt0IuA
はじめてC言語でSAを作ったのでこれであっているのかわかりません。。。
あと初期温度の設定方法等もイマイチわかりません、、
またブロック1つ1つの座標を出したいのですが、うまくいきません。。
質問が多いですがよろしくお願いします。
0746デフォルトの名無しさん
2011/01/19(水) 17:22:26#include<stdio.h>
#define GetNum(ulFlag) ((ulFlag&0x01)?0:(ulFlag?0x02)?1:2)
int main(){
int nNum[3];
unsigned long ulFlag=0x01;
nNum[0]=1;
nNum[1]=1;
nNum[2]=2;
printf("%d\n",nNum[GetNum(ulFlag)]);
return 0;
}
しかし、printf()の部分で「error: expected ':' before ')' token」とエラーが出てしまいます。
恐らくマクロが間違っていると思うのですが、どの様に修正すればよいのでしょうか。
0747デフォルトの名無しさん
2011/01/19(水) 17:26:25? が単体で使われている
0748746
2011/01/19(水) 17:41:51回答有難うございます。
(ulFlag?0x02)
を
(ulFlag&0x02)
に修正した所、無事動作しました。
原因がタイポとはお恥ずかしい限りです...
0749デフォルトの名無しさん
2011/01/19(水) 18:08:30角度を使うみたいですが角度に関するプログラミング知識がないです
0750デフォルトの名無しさん
2011/01/19(水) 18:42:210751デフォルトの名無しさん
2011/01/19(水) 19:47:27を使ってファイル演算子のプログラムを作ってるのですが
自分はコンパイルするときに引数を指定するのではなく、プログラム実行時にscanfを使って引数を指定したいのですが
どうやればいいのでしょうか
そのまま
for(i=0;i<argc:i++){
scanf( "%d", &argv[i+1] );
}
ってやって引数を指定できますか?
できればどうすればいいか教えて欲しいです・・・
0752デフォルトの名無しさん
2011/01/19(水) 19:50:18sprintf
0753デフォルトの名無しさん
2011/01/19(水) 19:51:500754デフォルトの名無しさん
2011/01/19(水) 19:55:55それを調べればできるんですね。調べてみます!
0755デフォルトの名無しさん
2011/01/19(水) 19:56:22argv[i+1] 実行時に渡した引数が文字列で得られる
sscanf(argv[i+1], "%d", &i);
実行時に渡した引数(文字列) から整数値を i へ入れる
0756デフォルトの名無しさん
2011/01/19(水) 20:02:490757デフォルトの名無しさん
2011/01/19(水) 20:03:50つまらない確認ですが
scanf("%d", &i);
sscanf(argv[i+1], "%d", &i);
の流れで、コンパイル時のコマンドライン引数をプログラム実行中のコマンドプロンプトから入力して指定出来るってことですか?
0758デフォルトの名無しさん
2011/01/19(水) 20:13:35実行時の引数: 実行ファイル名に続いてタイプした文字
例: a.exe 1 2 3
これは argv[] から得られる
実行中コマンドプロンプトからの入力
これは scanf() で得られる
コンパイル時(≒実行ファイルを作る時)の引数って何のことだ?
コンパイラに渡す引数のことか? 例: cc -c a.c
0759デフォルトの名無しさん
2011/01/19(水) 20:19:34えっとですね、
コンパイラの時に
a.exe ファイル名 文字列1 文字列2って言うのやつです
これでファイルを指定して、そのファイル名に文字列1、2をデータとして付随させるって感じなのでしょうか・・・
0760デフォルトの名無しさん
2011/01/19(水) 20:25:10コマンドプロンプト上で
a.exe ファイル名 文字列1 文字列2 [enterキー]
こうした時だな? (統合環境からデバック実行という話ではない: このケースは統合環境側で設定する話)
なら
argc は 4
argv[0] が a.exe
argv[1] が ファイル名
argv[2] が 文字列1
argv[3] が 文字列2
こういうふうになってくれる
0761デフォルトの名無しさん
2011/01/19(水) 20:27:39おお、それが理想でした!ありがとうございます!やってみます
0762デフォルトの名無しさん
2011/01/19(水) 20:37:32はい、あります
0763デフォルトの名無しさん
2011/01/19(水) 20:43:33#include <math.h>
0764デフォルトの名無しさん
2011/01/19(水) 22:43:52いえいえ
0765デフォルトの名無しさん
2011/01/19(水) 22:44:260766デフォルトの名無しさん
2011/01/19(水) 23:02:590767デフォルトの名無しさん
2011/01/19(水) 23:56:24またわすれちったw
0768デフォルトの名無しさん
2011/01/19(水) 23:58:05http://www.nicovideo.jp/watch/1295415473
MGプランニング
http://www.mg-p.jp/contact/index.html
0769751
2011/01/20(木) 00:35:32一応教わったことをもとにしてプログラムを組んでみました
http://codepad.org/0ogGmmKa
perrorは多分これで動いたので大丈夫かもしれませんが、こんなので大丈夫なんでしょうか・・・
0770デフォルトの名無しさん
2011/01/20(木) 00:45:04構造体
0771デフォルトの名無しさん
2011/01/20(木) 00:46:270772デフォルトの名無しさん
2011/01/20(木) 00:56:07苦肉の策で以下のようなプログラムが考えられますが、
もっと高速なアルゴリズムはないでしょうか
よろしくお願いします。
int a;
a=(int)sqrt(N);
if( a^2 == N^2 ){
printf("Nは自然数aの2乗の数である\n");
}
else{
printf("Nの2乗根は自然数ではありません\n");
}
0773デフォルトの名無しさん
2011/01/20(木) 00:58:13上記に誤りがありました。
誤) if( a^2 == N^2 )
正) if( a^2 == N )
0774デフォルトの名無しさん
2011/01/20(木) 01:01:450775デフォルトの名無しさん
2011/01/20(木) 01:10:18N の範囲が狭くて、何度も計算を繰り返すなら
一度計算しておいて後はテーブルを参照するとか
0776デフォルトの名無しさん
2011/01/20(木) 01:15:41高速じゃないのでお尋ねしている次第です
>>775
Nの範囲は1000^2くらいまでなので、ちょっと厳しいですね。
0777デフォルトの名無しさん
2011/01/20(木) 01:18:41{
int i, j;
for(i = 2; i * i <= n; i++) {
for(j = 0; n % i == 0; j++) n /= i;
if(j & 1) return 0;
}
return n == 1;
}
素直に書けばこんなもんかな
0778デフォルトの名無しさん
2011/01/20(木) 01:22:57二乗かどうか調べるだけなら 10^6 bit ですむ
これって 125kB にしかならないからパソコン上でなら問題ないと思う
何の二乗か調べる必要があるなら short を使うとして 2MB でおk
0779デフォルトの名無しさん
2011/01/20(木) 01:32:350780デフォルトの名無しさん
2011/01/20(木) 01:35:41>>778さんのテーブル参照アルゴと
以下の単純なアルゴとではどっちが早いんですかね…
高速かの知識がないため、どれが早いのか判断できません
すみません
int a;
for(a=2; a*a<=N; a++){
if( a*a == N ) return 0;
}
0781デフォルトの名無しさん
2011/01/20(木) 01:37:29sqrt の方が圧倒的に早かった
0782デフォルトの名無しさん
2011/01/20(木) 01:37:51アルゴと略すなボケ
0783デフォルトの名無しさん
2011/01/20(木) 01:42:21for(n=1;n<1000*1000;n++) sum+=check(n);
の時間を計測した結果
>>772 1.5秒
>>777 41.6秒
>>778 0.6秒
0784デフォルトの名無しさん
2011/01/20(木) 01:46:16失礼 >>778 0.5秒だった
0785デフォルトの名無しさん
2011/01/20(木) 01:47:26テーブル参照ですらこの速度には敵わない。
よって>>777のルゴの方が>>778のルゴより速いし、ベクトル化してsqrtを一気に計算するようにすれば、さらに1/4の速度にさえなりうるアルよ。
0786デフォルトの名無しさん
2011/01/20(木) 01:49:590787デフォルトの名無しさん
2011/01/20(木) 01:51:00すみません…知識が足らずちょっと理解ができません
>>782
おっしゃるとおりなのですが、いま試せる環境にありません。
言葉は気をつけます。
>>783
わざわざ試していただき、本当にありがとうございす。
テーブル参照方式でいこうと思います。
>>785
今回はそこまで考えていませんのでテーブル参照でいきたいとおもいます。
ありがとうございました。
0788デフォルトの名無しさん
2011/01/20(木) 09:31:310789デフォルトの名無しさん
2011/01/20(木) 16:45:04それは分かります
3点のなす角度から求めようとしたのですが断念してます
何かうまく凸包を作れる方法はありませんか?
0790デフォルトの名無しさん
2011/01/20(木) 16:48:12誰だかわかんねー
質問の内容は?
0791デフォルトの名無しさん
2011/01/20(木) 16:50:58このようなハッシュ関数を作ってみました。
何か不具合はあるでしょうか。よろしくお願いします。
0792デフォルトの名無しさん
2011/01/20(木) 16:52:48if(fq==NULL){
printf("入力ファイルが存在しません。\n");
if(argv[4]=="1"){
printf("続けるにはEnterを押してください");
scanf("%c\n",&c);
while(c!="\n"){
printf("ええっ?\n");
scanf("%c",&c);
}
if(c=="\n")
exit(1);
}
else
exit(1);
}
改行を認識しません。どうすればいいでしょうか?
0793デフォルトの名無しさん
2011/01/20(木) 16:58:54一直線上にない 3点を結んで得られる領域は常に凸包だぜ?
ってのはおいといて、与えられた点列は
一筆書きの経路順に並んでいるのか?
↑の順序がランダムなものなのか?
あちこちにちらばた座標の羅列なのか?
得られた凸包で囲まれる領域内に、与えられた全ての点が存在すること が条件だと思うけど…
0794デフォルトの名無しさん
2011/01/20(木) 17:05:50while(c!="\n"){
↓
while(c!='\n'){
if(c=="\n")
↓
if(c=='\n')
0795デフォルトの名無しさん
2011/01/20(木) 17:27:50設計意図が不明
ハッシュ法に用いるには巨大すぎるし、
かといって暗号学的ハッシュ関数の検証なんか
このスレでできるわけがない
0796デフォルトの名無しさん
2011/01/20(木) 17:35:4564bit長のハッシュ値得るだけなら CRC64 を実装すりゃ良いしね
0797デフォルトの名無しさん
2011/01/20(木) 17:39:42>>749です
0798デフォルトの名無しさん
2011/01/20(木) 17:40:59何度もすいません。。
444〜505行目までのzahyo()が思うように動いてくれません。
やりたいこととしては、
zahyo[j][0][0or1or2]に直方体のx,y,z座標が一番小さい部分、
zahyo[j][1][0or1or2]に直方体のx,y,z座標が一番大きい部分、
の値を後順走査によって求めていきたいのですがわかりません。
どなたかよろしくお願いします。
0799デフォルトの名無しさん
2011/01/20(木) 17:42:49分かりにくいから解決するまでコテつけてよ
atan2 で左回りをチェックするだけでおk
初期位置は一番端の点(最大値or最小値の点)にすればいい
0800デフォルトの名無しさん
2011/01/20(木) 17:43:59行列が大きすぎるのでしょうか?
0801デフォルトの名無しさん
2011/01/20(木) 17:47:500802デフォルトの名無しさん
2011/01/20(木) 17:49:310804デフォルトの名無しさん
2011/01/20(木) 18:03:330805デフォルトの名無しさん
2011/01/20(木) 18:03:52ハッシュ法に使うには得られるハッシュ値の値域が広すぎる
# おおよそハッシュ法では、ハッシュ値の値域を指せるだけの配列が必要になるので
多対1関数で 値の衝突の確立 値のユニーク性 を求めるのは数学の話
0806デフォルトの名無しさん
2011/01/20(木) 18:04:130807デフォルトの名無しさん
2011/01/20(木) 18:07:35数学の話になるんですね。数学板に行ったほうがいいですか?
0808デフォルトの名無しさん
2011/01/20(木) 18:15:480809デフォルトの名無しさん
2011/01/20(木) 18:16:39ttp://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0#.E6.94.B9.E7.AB.84.E3.81.AE.E6.A4.9C.E5.87.BA
なんか相当メンドクサソウだぞ?
SHA-256 とか doudai?
0810デフォルトの名無しさん
2011/01/20(木) 18:21:440811デフォルトの名無しさん
2011/01/20(木) 18:21:530812デフォルトの名無しさん
2011/01/20(木) 18:27:100813デフォルトの名無しさん
2011/01/20(木) 18:30:120814デフォルトの名無しさん
2011/01/20(木) 18:32:090815デフォルトの名無しさん
2011/01/20(木) 18:39:490816デフォルトの名無しさん
2011/01/20(木) 18:40:210817デフォルトの名無しさん
2011/01/20(木) 18:45:07スレ違いですよ
0818デフォルトの名無しさん
2011/01/20(木) 19:03:39どこのスレがいいですかねー
0819デフォルトの名無しさん
2011/01/20(木) 19:17:260820749
2011/01/20(木) 19:49:35あちこちにちらっばた座標の羅列です。
各点を配列に入れて
一番下の座標を配列の最初の所までもっていく所まではできているのですが
どうもatan2の使い方が間違っているのかうまくいきません
kakudo[i]=atan2((double)y2-(double)y1,(double)x2-(double)x1);
で、y1、x1固定でy2、x2の値をyn、xnまで変えてそれぞれ計算する。
ここで確認のためkakudoの中身を見たのですがprintfでは出ないのですが・・・
0821デフォルトの名無しさん
2011/01/20(木) 19:56:51atan2 の戻り値は浮動小数点数でラジアン単位なんだけど、printf の書式や
kakudo[] の型は大丈夫なん?
0822749
2011/01/20(木) 20:13:090823デフォルトの名無しさん
2011/01/20(木) 20:23:420824デフォルトの名無しさん
2011/01/20(木) 20:37:57とした場合、aの各要素の値はどうなりますか?
0825デフォルトの名無しさん
2011/01/20(木) 20:42:26これだとCtrl-cが入力されたら関数実行して終了 だけど
プログラムとしてCtrl-cが入力されたことになる(ユーザーがCtrl-cを押さずに)
ようにするのはどうすればよいでしょう
raise(SIGINT) ・・・とか?
0826デフォルトの名無しさん
2011/01/20(木) 20:42:44scanfでは %lf
0827デフォルトの名無しさん
2011/01/20(木) 20:42:51そもそもコンパイル出来ないので
心配する必要は無いです
0828デフォルトの名無しさん
2011/01/20(木) 20:49:33それでいいです
0829デフォルトの名無しさん
2011/01/20(木) 20:51:33コンパイルできますが・・・
javacですよ、分かってるんです、か
0830デフォルトの名無しさん
2011/01/20(木) 20:52:18C言語?
0831デフォルトの名無しさん
2011/01/20(木) 20:55:140832デフォルトの名無しさん
2011/01/20(木) 20:56:35つスレタイ
0833デフォルトの名無しさん
2011/01/20(木) 21:10:22つjavac
0834デフォルトの名無しさん
2011/01/20(木) 21:16:32new って予約語ですらない記憶だが…
0835デフォルトの名無しさん
2011/01/20(木) 21:18:15ごめん
君のノリは理解できない
0836デフォルトの名無しさん
2011/01/20(木) 21:30:42javacはjavaのコンパイラ
javaの規格には準拠しているがC89やC90に準拠している必要性は皆無
どうしてそんな発想ができるのか理解に苦しむのだが
0837デフォルトの名無しさん
2011/01/20(木) 21:31:390838デフォルトの名無しさん
2011/01/20(木) 21:32:11やってみた
http://codepad.org/nqkE5ooD
変数名はめちゃめちゃなので気をつけて
0839デフォルトの名無しさん
2011/01/20(木) 21:33:15お前何言ってんの?
0840デフォルトの名無しさん
2011/01/20(木) 21:34:230841デフォルトの名無しさん
2011/01/20(木) 21:43:100842デフォルトの名無しさん
2011/01/20(木) 21:44:520843デフォルトの名無しさん
2011/01/20(木) 21:51:030844デフォルトの名無しさん
2011/01/20(木) 21:54:470845デフォルトの名無しさん
2011/01/20(木) 21:58:05/ ̄ ̄ ̄\
/ ⌒ ⌒ ヽ
/ ( ●)(●) |
| (__人__) } うーっす
/、. ` ⌒´ ヽ
/ |
| | /
ヽ_| ┌──┐ |丿
| ├──┤ |
| ├──┤ |
0846デフォルトの名無しさん
2011/01/20(木) 22:13:23とりあえずそう書いておけば優位に立てた気がするよね
0847デフォルトの名無しさん
2011/01/20(木) 22:14:170848デフォルトの名無しさん
2011/01/20(木) 22:20:480849デフォルトの名無しさん
2011/01/20(木) 22:21:500850デフォルトの名無しさん
2011/01/20(木) 22:23:190851デフォルトの名無しさん
2011/01/20(木) 22:24:530852デフォルトの名無しさん
2011/01/20(木) 22:28:440853デフォルトの名無しさん
2011/01/20(木) 22:34:420854デフォルトの名無しさん
2011/01/20(木) 22:43:500855デフォルトの名無しさん
2011/01/20(木) 22:53:120856デフォルトの名無しさん
2011/01/20(木) 22:54:390857デフォルトの名無しさん
2011/01/20(木) 22:58:01/ つ つ < 大丈夫だって,こんな糞スレ誰も来ねえよ
(( (_(_ ノ ノ
し∪ ∪
Σ( ゚д゚ )゚д゚)
/ つ つ
(_(_ ノ ノ
し∪ ∪
( ゚д゚ )゚д゚)
/ つ つ
(( (_(_ ノ ノ
し∪ ∪
0858デフォルトの名無しさん
2011/01/20(木) 22:58:340859デフォルトの名無しさん
2011/01/20(木) 23:04:42http://www.nicovideo.jp/watch/sm8517855
0860デフォルトの名無しさん
2011/01/20(木) 23:10:47神
0861デフォルトの名無しさん
2011/01/20(木) 23:17:41天才プログラマー
0862デフォルトの名無しさん
2011/01/20(木) 23:55:55すげぇな
0863デフォルトの名無しさん
2011/01/20(木) 23:57:470864デフォルトの名無しさん
2011/01/21(金) 00:02:310865デフォルトの名無しさん
2011/01/21(金) 00:05:16死ね
0866デフォルトの名無しさん
2011/01/21(金) 00:06:40あまりそういうこと書き込まないほうが君のためだよ
0867デフォルトの名無しさん
2011/01/21(金) 00:13:050868デフォルトの名無しさん
2011/01/21(金) 00:20:33おまえらときたら
0869デフォルトの名無しさん
2011/01/21(金) 00:25:11お前まだいたのか
よっぽど悔しかったんだな
0870デフォルトの名無しさん
2011/01/21(金) 00:26:23釣られる〜ごまかす
0871デフォルトの名無しさん
2011/01/21(金) 00:31:010872デフォルトの名無しさん
2011/01/21(金) 00:37:29つjavac
0873デフォルトの名無しさん
2011/01/21(金) 00:41:21つg95
0874デフォルトの名無しさん
2011/01/21(金) 00:44:15つvbc
0875デフォルトの名無しさん
2011/01/21(金) 00:46:540876デフォルトの名無しさん
2011/01/21(金) 00:53:370877デフォルトの名無しさん
2011/01/21(金) 01:12:020878デフォルトの名無しさん
2011/01/21(金) 01:14:030879デフォルトの名無しさん
2011/01/21(金) 01:14:58教えてください(>_<)
0880デフォルトの名無しさん
2011/01/21(金) 01:15:53コテつけてくれればいいのに
0881デフォルトの名無しさん
2011/01/21(金) 01:16:28でもお前にはできないんだろ?w
0882デフォルトの名無しさん
2011/01/21(金) 01:16:320883デフォルトの名無しさん
2011/01/21(金) 01:16:440884デフォルトの名無しさん
2011/01/21(金) 01:23:34スーパークラス。
デストラクタは読み出される順番の逆。
これ以上はスレチ
0885デフォルトの名無しさん
2011/01/21(金) 01:28:33任せた
0886デフォルトの名無しさん
2011/01/21(金) 01:30:040887デフォルトの名無しさん
2011/01/21(金) 01:31:33そもそもコンパイル出来ないので
心配する必要は無いです
0889デフォルトの名無しさん
2011/01/21(金) 01:39:42それはね、ソースコードが出てないとスベるんだよ
0890デフォルトの名無しさん
2011/01/21(金) 01:41:42そしたら意味不明なことをブツブツ呟きながら顔真っ赤にして泣き出しやがったwwwwwww
俺はさらにもう一発顔面に蹴りを入れてやったねwwwwwwwww
周りの女どもは俺に惚れてたわwwwwwwwwwwwwwwww
0891デフォルトの名無しさん
2011/01/21(金) 01:43:510892デフォルトの名無しさん
2011/01/21(金) 01:46:570893デフォルトの名無しさん
2011/01/21(金) 01:56:30うp
0894デフォルトの名無しさん
2011/01/21(金) 01:58:070895デフォルトの名無しさん
2011/01/21(金) 02:24:200896デフォルトの名無しさん
2011/01/21(金) 02:48:380897デフォルトの名無しさん
2011/01/21(金) 03:09:300898デフォルトの名無しさん
2011/01/21(金) 03:56:410899デフォルトの名無しさん
2011/01/21(金) 04:17:350900デフォルトの名無しさん
2011/01/21(金) 05:31:070901デフォルトの名無しさん
2011/01/21(金) 06:07:420902デフォルトの名無しさん
2011/01/21(金) 10:01:17を起動させる命令って何だっけ?
教えて?
win32やmfcでもできます?
0903デフォルトの名無しさん
2011/01/21(金) 10:25:070904デフォルトの名無しさん
2011/01/21(金) 10:27:11system
0905デフォルトの名無しさん
2011/01/21(金) 14:12:09処理を行ってから1つ値を増やす・減らす、1つ値を増やす・減らしてから処理を行う
これはわかるんですが、具体的どういう事なのかよくわからないです教えてください
0906デフォルトの名無しさん
2011/01/21(金) 14:24:390907デフォルトの名無しさん
2011/01/21(金) 15:06:16わかるのにわからないというのがよくわからない
0908デフォルトの名無しさん
2011/01/21(金) 15:07:42自分でもなんて言ったらいいかわからないんですが
理解はできる具体例がわからなくて納得できない
こんな感じでもやもや
0909デフォルトの名無しさん
2011/01/21(金) 15:15:58じゃあ適当な具体例を書いてみたから実行結果と照らし合わせて自分で考えてみなさい
http://codepad.org/jsKrX9BY
0910デフォルトの名無しさん
2011/01/21(金) 15:17:34サル並みの初心者だけどゆっくり考えてみます
お手数掛けます><
0911デフォルトの名無しさん
2011/01/21(金) 15:22:16printf ++a;
結果 11
a = 10;
printf a++;
結果 10
0912デフォルトの名無しさん
2011/01/21(金) 15:31:02数字が4つ123,456,789,999で
i++ははじめから3つ
++iは123を飛ばして3つ
123,456,789
456,789,999
というのはワカリマシタ
>>911のは
aの10に1を増やしてから出力するから11
下は出力を先にしてるから10
こうですかわかりません・・・
0913デフォルトの名無しさん
2011/01/21(金) 15:40:41わかっていたのではなかったのか
0914デフォルトの名無しさん
2011/01/21(金) 16:04:28printfで評価される前にインクリメントされるかされないかの違い。
0915デフォルトの名無しさん
2011/01/21(金) 16:17:27わざと誤解を招くような言い方をするなんて意地悪な奴だw
0916デフォルトの名無しさん
2011/01/21(金) 16:58:16有難う 試してみます
0917デフォルトの名無しさん
2011/01/21(金) 16:58:580918デフォルトの名無しさん
2011/01/21(金) 17:02:000919デフォルトの名無しさん
2011/01/21(金) 17:05:45vc 6.0 のプログラムを 2005 vc に変換しようとしています。
> DialogBox( hi, "DLG_DATA", HWND_DESKTOP, (DLGPROC)dlgproc );
>1>c:\users\新しいフォルダー (13)\9章\list0910\list0910.cpp(11) : error C2664: 'DialogBoxParamW' :
2 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
なんか良くわからん よろ
0920デフォルトの名無しさん
2011/01/21(金) 17:06:440921デフォルトの名無しさん
2011/01/21(金) 17:17:19L
0922デフォルトの名無しさん
2011/01/21(金) 17:21:420923デフォルトの名無しさん
2011/01/21(金) 17:25:040924デフォルトの名無しさん
2011/01/21(金) 18:07:58やる気があるならC++
Cは止めときな
0925デフォルトの名無しさん
2011/01/21(金) 18:44:240926デフォルトの名無しさん
2011/01/21(金) 19:00:040927デフォルトの名無しさん
2011/01/21(金) 19:06:270928デフォルトの名無しさん
2011/01/21(金) 19:07:03頑張ってるんですけどね・・・
0929デフォルトの名無しさん
2011/01/21(金) 20:11:10しらね
0930デフォルトの名無しさん
2011/01/21(金) 21:57:100931デフォルトの名無しさん
2011/01/21(金) 22:41:560932デフォルトの名無しさん
2011/01/21(金) 23:08:210933デフォルトの名無しさん
2011/01/21(金) 23:46:570934デフォルトの名無しさん
2011/01/22(土) 00:09:080935デフォルトの名無しさん
2011/01/22(土) 15:08:590936デフォルトの名無しさん
2011/01/22(土) 15:38:090937デフォルトの名無しさん
2011/01/22(土) 16:13:170938デフォルトの名無しさん
2011/01/22(土) 16:36:410939デフォルトの名無しさん
2011/01/22(土) 17:30:440940デフォルトの名無しさん
2011/01/22(土) 17:49:000941デフォルトの名無しさん
2011/01/22(土) 17:49:10ヤル気が出るコードを書いてきてくれ
0942デフォルトの名無しさん
2011/01/22(土) 17:53:070943デフォルトの名無しさん
2011/01/22(土) 18:30:530944デフォルトの名無しさん
2011/01/22(土) 18:51:390945デフォルトの名無しさん
2011/01/22(土) 18:57:270946デフォルトの名無しさん
2011/01/22(土) 19:10:430947デフォルトの名無しさん
2011/01/22(土) 19:13:020948デフォルトの名無しさん
2011/01/22(土) 19:14:200949デフォルトの名無しさん
2011/01/22(土) 19:17:300950デフォルトの名無しさん
2011/01/22(土) 19:50:070951デフォルトの名無しさん
2011/01/22(土) 19:55:540952デフォルトの名無しさん
2011/01/22(土) 20:07:440953デフォルトの名無しさん
2011/01/22(土) 20:11:58キチガイは一人だけ
0954デフォルトの名無しさん
2011/01/22(土) 20:32:200955デフォルトの名無しさん
2011/01/22(土) 20:34:140956デフォルトの名無しさん
2011/01/22(土) 20:35:100957デフォルトの名無しさん
2011/01/22(土) 20:39:270958デフォルトの名無しさん
2011/01/22(土) 20:40:450959デフォルトの名無しさん
2011/01/22(土) 20:49:430960デフォルトの名無しさん
2011/01/22(土) 20:59:560961デフォルトの名無しさん
2011/01/22(土) 21:10:070962デフォルトの名無しさん
2011/01/22(土) 21:22:150963デフォルトの名無しさん
2011/01/22(土) 21:47:07お前らには到底無理だなwwwwwwwwwwwwwwwwwwwwwww
0964デフォルトの名無しさん
2011/01/22(土) 21:49:23全部自分で準備して何分で出来ましたって(笑)
0965デフォルトの名無しさん
2011/01/22(土) 22:02:090966デフォルトの名無しさん
2011/01/22(土) 22:02:410967デフォルトの名無しさん
2011/01/22(土) 22:05:190968デフォルトの名無しさん
2011/01/22(土) 22:23:360969デフォルトの名無しさん
2011/01/22(土) 22:30:52だったら実質時間が超短縮性性能が高脳でソリューション的だな真似できんは
0970デフォルトの名無しさん
2011/01/22(土) 22:35:180971デフォルトの名無しさん
2011/01/22(土) 22:38:03それに今からCは遅いとかいわれる
0972デフォルトの名無しさん
2011/01/22(土) 22:39:250973デフォルトの名無しさん
2011/01/22(土) 22:41:07http://php.net/manual/ja/control-structures.do.while.php
優れたCプログラマだってさ。やったー!
0974デフォルトの名無しさん
2011/01/22(土) 22:42:510975デフォルトの名無しさん
2011/01/22(土) 22:44:40仕事の速さは神様からもらえなかった者にとってすごく悔しい
0976デフォルトの名無しさん
2011/01/22(土) 22:45:39http://www.nicovideo.jp/watch/sm8517855
0977デフォルトの名無しさん
2011/01/22(土) 22:47:42神
0978デフォルトの名無しさん
2011/01/22(土) 22:48:37M$も夢じゃないな
0979デフォルトの名無しさん
2011/01/22(土) 22:48:50天才プログラマー
0980デフォルトの名無しさん
2011/01/22(土) 22:49:50ttp://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/31.txt
0981デフォルトの名無しさん
2011/01/22(土) 22:51:27すげぇ
0982デフォルトの名無しさん
2011/01/22(土) 23:51:250983デフォルトの名無しさん
2011/01/22(土) 23:53:40ファイル足りなくないですか?
0984デフォルトの名無しさん
2011/01/22(土) 23:55:23おれがテトリスつくった時は完成までに1年かかった
0985デフォルトの名無しさん
2011/01/22(土) 23:56:580986デフォルトの名無しさん
2011/01/22(土) 23:59:560987デフォルトの名無しさん
2011/01/23(日) 00:00:510988デフォルトの名無しさん
2011/01/23(日) 00:02:17{
return main();
}
0989デフォルトの名無しさん
2011/01/23(日) 00:05:480990デフォルトの名無しさん
2011/01/23(日) 00:10:310991デフォルトの名無しさん
2011/01/23(日) 00:17:15「こんなコード書いたけどどうっすか?」みたいな。
ググればすぐ分かるのに質問してくる初心者とか、
結論がでてるのにとぼけて質問してるようなやつとか、寂しいからだろ。
0992デフォルトの名無しさん
2011/01/23(日) 00:18:31指摘すると釣れちゃっただし
そんなのを相手にしても何一つ得られる物はないからほっとくのがいいね
0993デフォルトの名無しさん
2011/01/23(日) 00:27:54急にどうしちゃったの
かまって欲しいの?
0994デフォルトの名無しさん
2011/01/23(日) 00:28:540995デフォルトの名無しさん
2011/01/23(日) 00:30:330996デフォルトの名無しさん
2011/01/23(日) 00:31:150997デフォルトの名無しさん
2011/01/23(日) 00:31:430998デフォルトの名無しさん
2011/01/23(日) 00:33:320999デフォルトの名無しさん
2011/01/23(日) 00:34:381000デフォルトの名無しさん
2011/01/23(日) 00:36:4010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。