[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 23:54 / Filesize : 183 KB / Number-of Response : 810
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 10



1 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 16:45:25 ]
C言語の入門者向け解説スレです。
・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
C言語なら俺に聞け(入門篇) Part 9
pc11.2ch.net/test/read.cgi/tech/1173284217/

過去スレ
Part 1 pc8.2ch.net/test/read.cgi/tech/1146700389/
Part 2 pc8.2ch.net/test/read.cgi/tech/1153818463/
Part 3 pc8.2ch.net/test/read.cgi/tech/1160682950/
Part 4 pc8.2ch.net/test/read.cgi/tech/1162999861/
Part 5 pc8.2ch.net/test/read.cgi/tech/1165022193/
Part 6 pc10.2ch.net/test/read.cgi/tech/1167325490/
Part 7 pc10.2ch.net/test/read.cgi/tech/1170064980/
Part 8 pc11.2ch.net/test/read.cgi/tech/1171946674/

関連スレ
C/C++の宿題を片付けます 84代目
pc11.2ch.net/test/read.cgi/tech/1172981618/
くだすれC言語(初心者用) Part.2
pc11.2ch.net/test/read.cgi/tech/1172099763/
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131
pc11.2ch.net/test/read.cgi/tech/1170338926/
【初心者歓迎】C/C++室 Ver.35【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1171888583/

【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html

620 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:15:22 ]
>>619
STL は C++ 標準ライブラリ

621 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 14:55:09 ]
スティーヴンス本も知らんのか君達は

622 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:17:13 ]
(´・ω・`)知らんがな

623 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 15:26:18 ]
C言語500の極意(うろおぼえ)みたいな本で十分だろ。

624 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 18:35:41 ]
608です。
皆様からのレスは本屋で携帯から読めて大変参考になりました。

>>615
>オーライリーのC Pocket Referenceに種類ごとに標準関数の説明が載ってるよ

C Desktop Reference なる本は見掛けたのですが、これの事?
内容は本の厚さに比例してそこそこと言う感じでした。
初めてCを使う人には良いかも。

>>623
>C言語500の極意(うろおぼえ)みたいな本で十分だろ。

これを見掛けた時は「これか!?」と思ったのですが、内容が・・・
参考になる点も多かったのですが、今求めている物とは大きくずれてました。


いざ探してみると満足の行く物は確かに無いですね。
みんなどうやってプログラミングしているんだろう?と不思議になってきました。
今にして思うと X680x0 libc は偉業と感じます。
これには標準的な関数ならバッチリ載っているので、残りは
>>617 を参考にするのがベターの様です。

本屋で探した感じでは C言語大辞典 がわりとイイ線行ってたので
今度は神保町あたりでじっくり探してみたいと思います。

レスしてくれた方々、有難う御座いました。

625 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:36:11 ]
配列って、絶対アドレス順にしかできないの?
a[0]とa[1]はメモリ上となりあわせで
a[0]アドレスが100ならa[1]は99といった感じで使いづらい・・・
malloc関数を使ったら、a[0]〜a[それまで]のものが全部初期化されちゃって使いづらい。
今までの配列の要素を変化させずに動的に配列の要素数を変化させることはできないですか?

scanf関数を使うたびに配列の要素をひとつずつ増加させるのを作りたいんだけど。
int ct=0,m,*data;
data=(int*)malloc(100*sizeof(int));

while(1){
scanf("%d",&m);
if(m==0)break;
data[ct]=m;
ct++;
}

たとえばこれだと100個以上の入力されるとエラー起こすし、
5個しか入力しないと残りの95個もったいない
どうすりゃいいですかね?

626 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:39:05 ]
そのための線形リストだ。

627 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 21:42:26 ]
>>625
・realloc
・std::vector (C++ 限定)

628 名前:デフォルトの名無しさん [2007/04/08(日) 22:09:43 ]
ビット演算の意味がわからない。



629 名前:デフォルトの名無しさん [2007/04/08(日) 22:11:34 ]
#include<stdio.h>
void main(void){
int x,y;
scanf("%d,%d",&x,&y);
printf("%d",x/y);
}

5行目:0で割っています と出るんですが、何故なんでしょうか?
x,yには0以外の数字を入力しています

630 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:15:11 ]
"%d,%d"のフォーマット通りに入力してる?

631 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:15:15 ]
>>620
>>603
>C言語では、関数に配列を渡して、渡された配列の要素数を調べる関数ってのは作れないのか。。。
に対して
>>604
>出来ん事も無いけど
って答えているので、STLってかテンプレート使わずにC言語の機能だけでできるのかなぁと思って聞いてみたわけです。

なんか粘着みたいですいません。

632 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:19:44 ]
>>624
いや"C Pocket Reference"
もれは英語版を使ってるけど一応ISBNは
0-596-00436-2

633 名前:629 [2007/04/08(日) 22:22:42 ]
>>630
すいません、フォーマット通りとはどういうことでしょうか?

634 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:26:52 ]
>>630じゃないが
たとえば
$ 4,2
にように入力してるかってこと

635 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:27:11 ]
10,2
とか

636 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:29:00 ]
123,456もだな

637 名前:629 [2007/04/08(日) 22:29:46 ]
>>634-635
やってませんでした。今やったらできました。ありがとうございます!

638 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:36:36 ]
>>636
いやwwwそれいったらintの範囲のその範囲乗までレスがつくぞ



639 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 07:17:09 ]
scanfの戻り値みろよ…

640 名前:デフォルトの名無しさん [2007/04/09(月) 10:18:00 ]
すいません、どなたかわかる方がいれば回答お願いします
C言語のコマンドラインから引数を渡すプログラムで
ちゃんと動いてくれませんorz
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[]){

FILE*fin,*fout;
char ss[256];
if(argc!=3){
printf("引数の数が違います\n");
exit(1);
}
if((fin=fopen(argv[1],"r"))==NULL)
{
printf("入力ファイルをオープンできません\n");
exit(1);
}
if((fout=fopen(argv[2],"w"))==NULL){
printf("入力ファイルをオープンできません\n");
exit(1);
}
while (fgets(ss,256,fin) !=NULL){
fputs(ss,fout);
}
fclose(fin);
fclose(fout);
return 0;


}

641 名前:デフォルトの名無しさん [2007/04/09(月) 10:21:03 ]
これをコマンドプロンプトやbcpadなどで実行しても最初の引数の数が違います、
としか表示されなくて・・・
色々調べて試行錯誤したのですが結局一晩かけてもわかりませんっでした
こんな自分は問題解決能力がないからPGむいてないのでしょうか(´Д`;)

642 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 10:24:50 ]
>>641
俺の環境ではちゃんと動いたけど?

643 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 10:25:15 ]
>>641
問題無いように見えるけど・・・

644 名前:もしかして、コマンドライン引き数を知らないと言う落ち? mailto:sage [2007/04/09(月) 10:38:51 ]
>>640
>これをコマンドプロンプトやbcpadなどで実行しても最初の引数の数が違います、
>としか表示されなくて・・・

漏れの環境では、引き数を指定しないで実行したらそうなった。
期待通りの動作じゃないのか?

645 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 10:45:37 ]
学びたての頃一日かけてやっとセミコロンが一つ足りないことに気付いたことがある俺の勝ち

646 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 10:50:17 ]
セミコロンが一つって思うだろうがたかが1日じゃないか
3日悩むよりずっといい
まだまだだな

647 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:00:17 ]
>>640のfinの宣言部で
FILEと*finがくっついて1つの単語になってるように見えるのはオレだけ?

648 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:04:53 ]
俺の三倍とはこやつやりおるわ…
hoge.exe piyo.txt
のようにコマンドプロンプトに入力すればファイルの中身を表示できるはずです。
くらい書いとけばいいのに、不親切なテキスト(かどうか知らんが)だなぁ



649 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:09:22 ]
漏れなんて、ソースファイル末尾の改行がないためにNULLポン消えなくて一週間悩んだぜ。
#コンパイラが生成するアセンブリ出力の改行が足りなくなると言う素敵なバグの所為だったんだけど。

650 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:18:17 ]
>>641
>これをコマンドプロンプトやbcpadなどで実行しても最初の引数の数が違います、
ってことは
printf("引数の数が違います\n");
が実行されて表示されてるってことで
それが実行される条件はプログラムに与えられた引数の数
だからtest.exe a.txt b.txtのようにプログラムに与える引数を変えればいいんじゃない

問題解決能力じゃないと思う
たとえばできるだけ客観的に説明する能力とか不足を補う理解力とか
誰もが通る道だけどな向き不向きなんてすぐにはわからん

651 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:21:31 ]
>>650
お前は日本語で説明する能力を養え

652 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 11:26:54 ]
PGに不向きな奴は1年持たない
1年持てば問題なす

653 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 12:42:16 ]
もれなんて一切コメントがないという芸能人の浮気疑惑のようなプロジェクトを引き継いで
マイプライベートタア〜イムを返上して解読&コメントつけていったのに
1ヵ月後に会社が清算を迎えたo... rz

654 名前:デフォルトの名無しさん [2007/04/09(月) 15:35:11 ]
>>640
ちゃんと動くんだが?

655 名前:デフォルトの名無しさん [2007/04/09(月) 20:53:17 ]
フリーウェアの秀丸のサイトを教えてください

656 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:54:50 ]
は?

657 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:55:17 ]
ttp://www5.ocn.ne.jp/~hidemaru/

658 名前:デフォルトの名無しさん [2007/04/09(月) 21:15:23 ]
#include <stdio.h>
int main(void) {
/*文*/
return 0;
}
入門書では上のように学んだんですが、コンパイルできれば次のような形式でも
問題ないのでしょうか?
#include <stdio.h>
main(){
/*文*/
}



659 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:22:17 ]
>>658
コンパイルできても上の方が望ましい。

660 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:25:08 ]
いや、下のでも問題ないよ。

661 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:30:00 ]
戻り値の書かれていない関数定義はintを返すと見なされる(Cではだっけ?)
ので、いいっちゃいい。(許容されるという意味で)


662 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:31:27 ]
return 0のほうか。
戻り値を使う予定がないならなんでもいいよ。
型は>>661にあるようにintになるがどんな値になるかは不明。


663 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:46:13 ]
>>659->>662
レスありがとうございます。他の人のプログラム見せてもらったとき
たまたま見つけて疑問に思った程度なんです。とりあえず、
自分で書くときは習ったやりかたでやっていこうと思います。

664 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:58:14 ]
>>663
たぶん書き忘れじゃないかと思ふ

665 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 22:58:37 ]
>>662
>intになるがどんな値になるかは不明。

あれ?return書かない場合は0返すんじゃなかったか?

666 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:06:02 ]
クラスのstaticで宣言したメンバー関数の関数ポインタを持つ事って可能ですか?

667 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:10:06 ]
>>665
C++では前からそうだが、CではC99から

>>666
C++はスレ違いだが、静的メンバ関数は、非メンバ関数同様に扱える。
ようするに静的メンバ関数へのポインタはただの関数へのポインタで扱える。

668 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:11:14 ]
>>666
可能
VCで試した
メンバーへのポインタじゃなくてC言語のように普通の関数へのポインタ



669 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:18:43 ]
参考書とかネットの記事とか見てるとmain()内の最後で、

  return 0;

  return (0);

って2種類の書き方見るんだけどこれらに明確な違いってあるのか?

低レベルな質問ですまん ><

670 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:24:11 ]
>>669
括弧いらない
あっても結果は変わらない

671 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:25:28 ]
違いはない。ただし括弧を付けない書き方が一般的。

昔はreturnに括弧を付けなければならなかった。
現在、括弧は不要になったが、あっても式の一部として扱われるのでコンパイルは通る。

672 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:26:01 ]
>>670
レスありがとう。やたら気になってたんだ

673 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:28:21 ]
>>669
returnは関数じゃなくてステートメントだから付けないてよい。
付けてもエラーにはならないが a = b + c を a = (b) + (c) などと書くのと同じことで冗長。

お作法的な話で言えば、綴りを間違って retrn 0 と書けば即コンパイルエラーだが、
retrn(0) と書いてしまうとそういう関数があるものと仮定されリンク時までエラーが発覚しない。

674 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 23:29:06 ]
>>671
いつの話だ。

675 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:48:13 ]
sizeof expr はつけなくてよいと分かっていても括弧つけてしまうな…

676 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:36:33 ]
これは確かに使い分けに迷う。
sizeof(型);
sizeof 変数;


677 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 02:42:05 ]
演算子もいってみりゃ関数みたいなもんじゃん
ってことで()付けてるけどいいのか?

678 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 03:55:13 ]
>>676
変数ではなく式



679 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 04:01:44 ]
>>677
別に構いませんよ。
++(*(&(i)));

680 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 05:33:50 ]
激しくうっとうしいわw

681 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 06:05:28 ]
式だったら尚更()つけないとね

682 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 10:55:06 ]
sizeof は、長い行の中に入ることもあって () なしだと見づらくなる場合があるからな
でもsizeof() じゃなくて、sizeof () にしてるな。

>>671
return に括弧が必要なときってあったか?

683 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 13:59:08 ]
mem = malloc(len * sizeof * mem);

684 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 15:55:00 ]
arrayという2次元配列にintの数値が入っています
for(i=0;i<array[0][j];i++)という風for文の条件式にしようとしても出来ませんでした
こういう場合はどうすればいいのですか

685 名前:640 [2007/04/10(火) 16:10:53 ]
やはりちゃんと動いてくれません(´Д`;)
>>650さんの意味がよくわからないのですが
>>if((fin=fopen(argv[1],"r"))==NULL) の所のargv[]を1ではなくて他
の数値を渡せということでしょうか??



686 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:15:25 ]
ちゃんと動かないって…もうちょっと他人にわかるように説明しろよ。
* どういう方法で起動していて、
* どういう挙動をして欲しいのか、
* そして実際はどういう結果になっているのか

687 名前:362 mailto:sage [2007/04/10(火) 16:38:24 ]
>>363
型を見てみたらsignedcharでした。
この型しかソケット通信では送れないのでしょうか?
>>364
ぐぐってもデータの転送順がかわることしかわかんなかったです><

多くのデータを一度にsendで送るいい方法はないのですか><

688 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 17:06:16 ]
bcpadから直接起動してるから引数渡せてないと予想



689 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 18:53:39 ]
趣味で麻雀をやってるんだけど、自分の打ち方がどれぐらい強いのか試そうと思ってC++のコンパイラさえあればあとは言語が書ければ代打ちソフトが作れるってdllを見たんでCをしてみようと思うんですけど。
これを読めばとりあえず素人はなんとかなるとか、このコンパイラが素人向けでわかりやすいなどありましたら教えてください。

一応Delphiは触るだけ触ったことはあるので言語そのものにアレルギー反応なんかは起こしませんけど、実用的なソフトを作ったことがないのでアルゴリズムなどちんぷんかんぷんです。

690 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:00:07 ]
にh

691 名前::: [2007/04/10(火) 19:00:55 ]
C言語習ったばかりなんですが、システムを組んでみたいと思ってます。
システムを組むための参考書や問題集は売ってますかね?自分で一から
システムを作るのはやはり難しいですか?

692 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:01:30 ]
システムの定義を教えてくれ

693 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:03:29 ]
>>690
わかりにくかったなら省きますけど要は、素人におすすめできるコンパイラ(いつまでも使えるのならなおいいけどわかりやすさ優先。)と素人向けの参考書を教えてくださいってことです。
OKですか?

眠いのでちょっと日本語がおかしかったのは見逃してください。

694 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:41:38 ]
>>693
おまいは、>>690を見て
>にほんg(ry
って分かったのかよw
だったらなぜ、そもそも改行が出来ないんだ


WindowsならBCCでおk

695 名前:687 mailto:sage [2007/04/10(火) 19:58:19 ]
キャストしてもデータが途中までしか送れません><
どうすればいいんですか

696 名前:デフォルトの名無しさん [2007/04/10(火) 23:22:31 ]
C言語で、char型の配列を確保する時に
領域を指定しないで宣言する方法ってありますか?

char *s[]; ←のように宣言してもsのサイズが不明、もしくはゼロとか出て
うまくいかないんですが、何かいい方法ありますか?
因みにこの問題ではmallocを使わないでやるという事が前提になってます。

697 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:24:37 ]
callocもしくはreallocを使えばいい

698 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:28:27 ]
>>695
じゃあ二回に分けて送れば



699 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:35:21 ]
質問です

AまたはBならCをする

if( A || B )
{
  C ;
}

という条件文をA、Bわけて記述した時に、
if( A )
{
  C ;
}
else
{
  if( B )
  {
    C ;
  }
}

こう記述できると思いますが、Cを1回だけ使うような記述の方法はあるでしょうか?

700 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:39:14 ]
最近、こんなトンチみたいな問題だす学校、多いのかね?

701 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:41:08 ]
>>689
それはつまり1人用の麻雀ゲームを作ろうというわけですね
それなら簡単なGUIと思考ルーチンが必要です
思考ルーチンは現在の状況, つまり引いた牌と持ち牌(っていうのか?もれは麻雀やらないから言い方違うかも)
と相手の打った牌などから次にどの牌を打つかを決める一連の思考の手順のことです
これは一般的に一種類あるいは数種類の思考パターンを用意し, これらのような決まった処理のことを
アルゴリズムと言う
アルゴリズム(思考手順)そのものは言語に依存しないので(もちろん言語によって書き方は異なるかもしれないけど)
すでに知っている言語があったら新たにCとかC++を勉強しなくてもOK
思考手順そのものを研究するのが目的ならVBやJavaなどの簡単にGUIが作れる言語が(個人的には)おすすめ
これを足がかりにほかのゲームや実用ソフトを作りたいなら将来にわたって使っていけるような言語を選ぶのもあり(CとかC++)
もしLinuxなどのUNIX系OSや, プラットフォーム非依存をターゲットとするならJavaが一番手っ取り早い
GTKやwxWidgetなどのクロスプラットフォームのツールキットを使うこともできる
(こういったツールキットは大抵複数の言語に対応している)
あるいはPythonなどのスクリプト言語を使ってみるのもあり

でも, ひとこと言わせてもらうと
> 自分の打ち方がどれぐらい強いのか試そうと思って
の意図はいまいちよくわからないが
作ったプログラムと自分で対戦すると言うなら
それは一人二役でゲームをするのと同じだからちょっと無意味っぽいと(個人的に)思う
また自分の思考をプログラミングしてほかの人やプログラムと戦わせたいのなら相当の覚悟が必要
人の思考は想像以上に複雑で, 無意識や勘なども作用してくるから
完全に自分の思考回路をプログラミングすることは(現実には)不可能に近い
したがって出来上がったプログラムは君自身より弱い
また, 何手か先を読むような(ありふれた)機能を盛り込む場合でも
計算しなければいけない手数は爆発的に増えるから(計算量とメモリーの増加), それをいかにして押さえるかとか
いろいろとテクニックも必要になってくる

ここまで考えるとかなり手間がかかる
もれは大学の卒論がチェスのゲーム理論だったからよくわかる

702 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:44:16 ]
>>699
do
{
    if( !A )
    {
        if( !B )
        {
            break ;
        }
    }
    C ;
}while(0);

703 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:48:24 ]
>>699
なぜそうするのかはわからんが
単純にフラグをつけるのもいいんじゃない?
Aが真ならflag = TRUE;してBのところでflag == TRUE;ならCを実行しないとか?

704 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:49:25 ]
>>699
if( A )
{
  C ;
}
else if( B )
{
  C ;
}

これじゃダメなのか?

705 名前:704 mailto:sage [2007/04/10(火) 23:52:50 ]
>>699
あー1回だけの記述か


706 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 23:54:18 ]
>>699
if(A) {
 goto l;
} else if(B) {
 l: C;
}

707 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:01:42 ]
>>699
if(A) goto label1;
if(B) goto label1;
goto label2;
label1: C;
label2: ;

708 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:18:16 ]
>>699人気だなww



709 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:30:03 ]
で、本当にこれ宿題なのか?
だとしたらこんな腐った問題を出す教師ってどんなやつなんだ。

710 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:35:24 ]
Q.腐った問題を出す教師自体が腐ってる確率を求めるプログラムを作りなさい

711 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:40:44 ]
>>710
int main()
{
printf("腐った問題を出す教師自体が腐ってる確率=%d%%",100);
return 0;
}

712 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 01:01:48 ]
>>701
えっとですね、あんまり必要ないかと思って省いてしまったんですけど。
東風荘っていうネット雀荘みたいなものがあるんですけど、そのゲームの画面の状況から変数を作るdllを見つけてですね。
上がりや聴牌の判断もそのdllの関数がやってくれるので私はその変数の扱いを設定するだけで麻雀の代うちソフトが作れるようになるわけなんです。
だから、相手は人だし麻雀というゲームを遊ぶための土台の部分は配布されているので単純にアルゴリズムを考えるだけでOKってことなんですよね。

テクニックとしては、プログラムのテクニックよりは麻雀のテクニックのほうが重要だとおもうので簡単という言葉を使わせてもらってます。

713 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 03:44:18 ]
そんな面白そうなものがあるのか。
ちょっと探してこよう……と思ったら一発で見つかった。

714 名前:701 mailto:sage [2007/04/11(水) 05:22:28 ]
>>712
ほほー便利だなー
それなら自分がどんな風に思考しているのかと
どうやってそれをアルゴリズムにするのかを悩むだけでいいのかw


715 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 07:56:24 ]
if (A) {
if (B) {
C;
}
}


716 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:00:29 ]
>>715
っ A==1 B==0

717 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:07:36 ]
>>715
おちつけ
それは、A||Bは(又は)ではなくてA&&B(喝)だ

718 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:07:36 ]
実際こういう場合はどうしたらいいの?
素直に判別式に論理演算使えってこと?



719 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:17:18 ]
switch (x) {
case A:
case B:
C;
}

720 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 08:22:28 ]
逆に論理演算を使いたくない理由ってのがわからない






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<183KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef