C言語勉強中ですぅ

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
まだ三日目くらいですけども、Cを勉強してます。
本を読んで、組み方は分かってきたけれども、本当に組めるのかどうか
分かりませんっ。
「〇×を作ってみろ!」
みたいな演習問題的なのください。
あ、三日目っての忘れないでネ♪
2shige:02/01/28 06:05
戦略付きじゃんけんとかが手頃じゃろ。
3デフォルトの名無しさん:02/01/28 06:05
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>> C >>>>>>>>>>>>>>>>>>>>>> Haskel
4:02/01/28 06:06
ん?戦略って??
5大和:02/01/28 06:10
米を食わない奴は非国民。
日本人ならコメを食え。

1はまずはそれからだ。
6デフォルトの名無しさん:02/01/28 06:10
Ruby処理系。
C言語が現存しているのはRubyの処理系を作るためです。
7デフォルトの名無しさん:02/01/28 06:11
Ruby以外の言語は糞
8大和:02/01/28 06:14
ちなみにRubyを無視する奴はクソ。
日本人ならRubyを一度は使え。
だがここで誉め殺ししてる奴はクソ。
9C言語歴3ヶ月:02/01/28 06:17
>>1
単語カウントプログラムを作るといいかも。
漏れは最初それを作った。標準入力から文章を読み込んで単語数をカウントするの。
「単語数」が難しけりゃ「文字数」でもいいと思うけど。
…やる気があるならおたがい頑張ろう!
10:02/01/28 06:19
>>9
がんばろーー、ちなみに、全然分からない(〜〜;)

ところで、上のしとたちが言ってることがまるで分からない。。。
11C言語歴3ヶ月:02/01/28 06:22
>>1
大丈夫。みんな君の熱意がネタだと思って煽ってんのさ。
熱意が本物だとわかればきっと暖かく見守ってくれるよ。
だから、このスレを有効に使おうね。
121:02/01/28 06:32
あぃ(●▽●)ノ
13C言語歴3ヶ月:02/01/28 06:37
>>12
三日目ってことは、もうhello,Worldぐらいはできるんだろ?
141:02/01/28 06:41
HELLO WORLD くらいはできるって土湯意味?
えっとですね、超基本の本を一冊終わらしたくらいです(^〇^)ノ
15C言語歴3ヶ月:02/01/28 06:43
>>14
いや、printf("Hello,World!);っていうのが書けるかどうか聞いたんだけど。
Hello,Worldを表示させるだけのプログラムって新しい言語を触り始めたときに
よく使うよ。
超基本の本を終わらしたといわれても、技術レベルがさっぱりわからん。
ポインタや構造体は一通り学んだの?
161:02/01/28 06:46
はぃ、そんな記述も載ってました!



何を言っておられるのか全然分かりませんでしたが。
だから、只今改訂新C言語入門ってな本を買ってきて、
最初からやり直してる次第でありまし。(ーー)
17C言語歴3ヶ月:02/01/28 06:53
>>16
そ、それはまさか林晴比古の本では…?
君は2ch初心者だったか。
http://pc.2ch.net/test/read.cgi/tech/1010312992/
ここを参考にして本を買うとよかった。
漏れはよくしらんが林氏の本は非常に評判が悪い。まあ今更言ってもなんだが。
とりあえずその本で勉強して、間違いを指摘できるくらいになるべし。
資金に余裕があるならほかの本で勉強したほうが良いかとも思う。
>超基本の本を一冊終わらしたくらいです
読んだだけ、に30デュカーティ
191:02/01/28 07:01
む、そうなのか。。。Σ(ーへー;)
しょっく(;ム;)

まぁとにかくこれでがんばってみますぅ(^^)
20VB厨:02/01/28 07:04
「DLL作りたいけどCわかんね〜」って放置して
検索して拾ったDLLやOCXでなんとかしてきたけど
ここ読んで、再挑戦しようって気分になったさ。
関係ないけど
ruby信者って面白いね
もっと笑わせてくれ
22C言語歴3ヶ月:02/01/28 07:06
>>19
とりあえずその絵文字やめな。
熱意がネタにしか思えない。
231:02/01/28 07:07
すいません…やめます。
241:02/01/28 07:18
#include<stdio.h>

main()
{
char ss[80];

while(gets(ss)!=NULL)
{
puts(ss);
}
}
とゆーふーに書いてあってNULLがどーこー説明してあるんですが、
コンパイラに

'NULL' undefined 言われた…。

何がいけないんでしょ???
25shige:02/01/28 07:23
man gets
man fgets

及び、

12.23: なぜgets()を使うなと誰もが言うのか。
http://www.catnet.ne.jp/kouno/c_faq/c12.html#23

を見る。
26C言語歴3ヶ月:02/01/28 07:25
>>24
すまんが漏れにもよーわからん。
だけど漏れはコンパイルできたぞ?多分環境の違いかな…?
ただ、while(gets(ss)!=NULL)という式が怖いような気がする。
そんな式初めて見た。
271:02/01/28 07:27
んじゃあ、よぅ分からんので保留ってことで(笑
28C言語歴3ヶ月:02/01/28 07:29
>>25
それは「配列で確保した分を超えた文を読み込んだとき」
まずいからっていう対処法じゃないんですか?
NULLが定義されていないっていうのとは話が違うような??
#include <stdio.h>

int
main(int argc, char *argv[])
{
    char buf[BUFSIZ];

    while (fgets(buf, BUFSIZ, stdin) != NULL)
        puts(buf);

    return 0;
}
30C言語歴3ヶ月:02/01/28 07:32
>>27
保留、はないだろう。
こういうところをきちんと学んでおかないと。せっかくいろんな人に教えてもらえるんだし。
31デフォルトの名無しさん:02/01/28 07:36
>'NULL' undefined 言われた…。
コンパイラは何?
321:02/01/28 07:40
>コンパイラは何?
えっと、LSIC86ですな。
33C言語歴3ヶ月:02/01/28 07:41
>>29
#define BUFSIZ 512 /* Buffer size for stdio */
ってことを初めて知りました。藁えねえ…。
なんかこのスレ変だぞ。
35 :02/01/28 08:23
>>33
2chらしくない?
Ruby厨のおかげで「終了」が入らなかったためと思われ。
3ヶ月の人と3日の人の
勉強スレ
38 :02/01/28 08:51
>>37
明日には3ヶ月1日の人と4日の人の勉強スレになります。
>>32
なんで今時LSI-C86。286でも使ってんの?
40C言語歴9ヶ月:02/01/28 13:50
俺も混ぜてくれ。
9ヶ月も勉強しているんだがわからん。
UNIX上でmath.hをインクルードした時に、gccでコンパイルするときに-lmを
入れないといけないようだが、-lmって何ですか?

それとコマンドラインパラメータで、main(int argc, char *argv[])と書くが、
何でいつもargcとargvなんでしょう…?
「l」ってライブラリを指定するときつけるもんじゃ
なかったっけ?
42デフォルトの名無しさん:02/01/28 14:00
>>40
-lmは知らんが、argcとargvは慣例上のもの。別に変数名として成り立っていればなんでもいい。
ちょうどカウンターに使うiと同じようなもの。
43C 2ヶ月:02/01/28 14:00
#include <stdio.h>
int main()
{
 int a,k=0;
 while((a=getchar()) != EOF){
  if(a == '{') k++;
  else if(a == '}') k--;
 }
 if(k == 0) puts("正しい対応");
 else puts("不定");
}
数学関連のライブラリをリンク、かな…
うろ覚え〜
>40
-lオプションでmという名前のライブラリをリンクするように指示している。
mathライブラリの本体がmに入ってる。

arg count arg value の略 単なる慣習
arg vector
って説も…
>>45
argumentの略では・・・
わかると思うけど arg はargument ね
むーん。
教えやすい質問はかぶりまくるな、、
>>40
> gccでコンパイルするときに-lmを
> 入れないといけないようだが、-lmって何ですか?
mというライブラリをリンクさせるオプション。
mは数学関連のライブラリ

例えば、libhoge.slライブラリをリンクさせたかったら、
-lhogeとする。
自分もなかなか上達できない口なんでお仲間に、、、

>>2さんのお題は
前回相手が出した手を覚えておいてそれを次の手の推測に使う
とか言う感じでしょうか?
>>51
ですな。傾向分析とかできると面白いかもね。
53やさしい人:02/01/28 15:18
5451:02/01/28 15:25
では、作ってみます。>戦略じゃんけん
囚人のジレンマ シミュレーション について調べると
その手の戦略についていろいろわかるよ。
>>55
しっぺ返しが最強ってことでいいんだっけ?
囚人のジレンマ だとそうらしいね。
じゃんけんは3すくみなのでまた違う結果になるだろう。
>>57
じゃんけんの場合は最適解はありえないか。
やっぱ手のパターンを解析するほかはなし。

オープンなじゃんけんサーバなんてどうかな?意味不明?
59デフォルトの名無しさん:02/01/28 18:25
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define HSIZE 10

/* slist構造体とSLISTを定義する */
typedef struct slist{
char *pkey;
char *pchar;
struct slist *next;
}SLIST;

/* ハッシュテーブル */

SLIST *htable[HSIZE];

/* ハッシュ関数 */
unsigned long Hash(char *pch)
{
/* 種としてアドレス値を与える */
srand((unsigned int)pch);

/* rand()を使って擬似乱数を生成する */
return (unsigned long)(rand() % HSIZE);
}

/* ハッシュテーブルを作成する関数 */
void RegisterHashTable(char *pch1, char *pch2)
{
SLIST *lpnew, *lptemp;l
unsigned long h = Hash(pch1);

/* 新しいリスト要素を生成する */
lpnew = (SLIST *)malloc(sizeof(SLIST));
if(lpnew == NULL){
/* stderrにエラー文字列を出力する */
fprintf(stderr, "メモリエラー\n");
/* exit()関数を使って実行を終了する */
exit(1);
}
/* 新しい要素に値を代入する */
lpnew->pkey = pch1;
lpnew->pchar = pch2;
/* 自分自身とする */
lpnew->next = lpnew;

/* 未登録のケース */
if(htable[h] == NULL)
/* ハッシュテーブルに登録する */
htable[h] = lpnew;
else
{
lptemp = htable[h];
while(lptemp->next != lptemp)
lptemp = lptemp->next; <==これはどういうこと?
/* リンクする */
lptemp->next = lpnew;
}
}
マルチポスト
うぜえ
Cやるんだったら同時並行でAPIもやると楽しいから
是非来なさい。絶対楽しい。簡単だし。だからっ!

http://pc.2ch.net/test/read.cgi/tech/1006783012/l50
ちゃんと来いョ・・・・・・
63デフォルトの名無しさん:02/01/28 20:14
o
64デフォルトの名無しさん:02/01/28 20:20
10年スレと1ヶ月スレと3日スレと立ったか。
cはユーザーの層が厚いな。

C言語関係の本 合計何冊読んだ?
http://pc.2ch.net/test/read.cgi/tech/1006413388/
C言語の初歩的な質問です。
http://pc.2ch.net/test/read.cgi/tech/1008637395/
C言語に自信のある方教えてください
http://pc.2ch.net/test/read.cgi/tech/1009006993/
cのプログラムなのですが・・。教えてください。
http://pc.2ch.net/test/read.cgi/tech/1006783839/
C言語プログラミング検定
http://pc.2ch.net/test/read.cgi/tech/1010168724/
C言語の初歩の初歩の質問
http://pc.2ch.net/test/read.cgi/tech/1011177306/
C言語なら、俺に聞け! <11>
http://pc.2ch.net/test/read.cgi/tech/1009499565/
Cって
http://pc.2ch.net/test/read.cgi/tech/1010244839/
C の超カンタンなことなら漏れに聞け
http://pc.2ch.net/test/read.cgi/tech/1009190994/
65 :02/01/28 21:08
>>61
お前はあっちで暴れている電波か?
61
電波じゃねーの!
帰ってきた旅人です。
ひまだったら俺の作ったやつみてくれよ
67 :02/01/28 21:41
1はどこいった?
彼にも是非使って欲しいくらいだ。
今ならただであげる。でも開発版。
もうすぐ完成。そしたら買ってもらおうか!(ごめんなさ!)
6951:02/01/28 23:16
こんばんは。
ちょっと遅くなりましたが「戦略無し」の奴を書いてみました。
でも乱数を発生させるのがわからなくて。
どうやってあげればいいですか?コピペでいいのかな?
70 :02/01/28 23:43
>>69
コピペだとまずいからどっかに上げたほうがよくないか?
7151:02/01/28 23:57
time.hつかって乱数できました。
もう少し書き直します。

>>70
そうですね。
適当なアプロダ探してきます。
7251:02/01/29 00:06
↓にjyanken.cで書き込みました。
htmlではインデントは反映されないみたいですね。

http://tools.geocities.co.jp/HeartLand-Sakura/8361/@geoboard/
73デフォルトの名無しさん:02/01/29 00:24
74 :02/01/29 00:36
>>71
子供の写真は一体…?
7551:02/01/29 00:41
>>73
情報ありがとうございます。
こんなんあったんですね、便利だ。


>>74
我が子です。
遠くへ引っ越した友人に見せるのに使ったんですよ。
76デフォルトの名無しさん:02/01/29 01:02
>>75
ifを多用しすぎです。
まとめられるところはまとめてしまいましょう。
7751:02/01/29 01:05
>>76
ありがとうございます。
やってみます。
7851:02/01/29 01:56
結構削りました。
とりあえず、自分と相手の手が表示されなくなってますが
後で付け加えます。

http://www.geocities.co.jp/HeartLand-Sakura/8361/jyanken.c.txt

オヤスミsage
>>78
あら、きれいなソースですこと
意外にまともになってきたな。

今後に期待age
81デフォルトの名無しさん:02/01/29 09:50
>>1
とりあえず本を読んでから始めるんじゃなく
本を読みながら書けといいたい。
82デフォルトの名無しさん:02/01/29 09:53
>>78
if((myhand % 3) == 0) myhand = 0;
else if((myhand % 3) == 1) myhand = 1;
else if((myhand % 3) == 2) myhand = 2;
この辺、無駄だと気づけばもっといい。
>>82
興味深いコードだな。
天然じゃなきゃ書けねー。
84デフォルトの名無しさん:02/01/29 10:16
switch((hand-myhand+3)&3){
  case 0:printf("あいこ\n");break;
  case 1:printf("おまえ負け\n");break;
  case 2:printf("おまえ勝ち\n");break;
}
85デフォルトの名無しさん:02/01/29 15:07
がんばってくれ!!!!!!
86使っちゃダメなのん by 2ch:02/01/29 15:29
getchar()もダメ
gets()もダメ
scanf()なんぞ言うに及ばず
これらがある入門書はクソ。

476 名前:デフォルトの名無しさん 投稿日:01/11/30 10:16
「猫でも分かる〜〜」見れや。

「猫でも分かる云々」にはscanfが紹介されているが
ミスプリなんでーす。
なんでgetchar()がだめやねん。
>>86
理由を示さないと推奨されない理由が分からないと思うけど。
scanf は指定したフォーマットを逸脱した入力に対する
エラー処理が満足にできないのが問題点。
getchar や gets は別にいいと思うが。
f*** 系を使えって?
89デフォルトの名無しさん:02/01/29 15:49
ほかにもbuffer overrun exploitの問題があるよね。
>>88
scanf()はまだ注意深く使えばエラー処理できるが、
gets()は論外。逝ってよし>>88
理由としては

「いや、自分は何で悪いか分からないけど、みんなそう言ってるから」


「みんなそう言ってるから」
scanfの悪口はこうして広まった。
そんな!本当はいい人なんですscanfは!
>>90
そういやバッファが溢れるか。
char buf[1024*1024];
これでだいたい問題なし。
>>94
そんなに甘やかしちゃだめ!
9651:02/01/29 18:00
>>82-84
アドバイスありがとうございます。
もっと精進します。

で、scanf()はfscanf()に変えたほうがいいんでしょうか?
>>94
(;´Д`)

>>96
自分でscanf()がダメだと思わないならそのままでよし。
「言われたから変えた」では何の意味もないんで。

# 俺は使用する人間を高度に信頼できるなら
# scanf()でぜんぜんおっけーだと思っている
逆に使い方を誤ったときにどうなるか や、
それによって不具合が出た際の対処の方法なんかを学べるかも知れないので
一度はやっておくべきかも知れん。

つってもアレかな、
エラーの判断が難しいかな
OSが弾いてくれるほどのエラーなら一発で分かるけど
>>95
>>93への誤爆かと思ったが、なんとなく通じるな。
10051:02/01/29 23:01
>>82
意味がわかりました。
myhand=rand()%3
だけでよかったですね。
いや、myhand無しでそのままrand()使っててもいいのかな?

>>84
ビット演算子を理解してないのでなんとも。
hand-myhand+3は1、2、3、4、5のどれかになりますが
&3とすると1、2、3、0、1となるので?です。
1、2、0、1、2となるはずなのですが。
もう少し考えてみます。

http://www.geocities.co.jp/HeartLand-Sakura/8361/test.c.txt
http://www.geocities.co.jp/HeartLand-Sakura/8361/jyanken.c.txt
101初心もの:02/01/29 23:36
お勧めのC言語の著書教えて下さい。
>rand()%3
これって偏らん?
rand()の実装次第。
たとえば、VCのrandは>>16した結果なので、
そんなに偏らないと思われれる。
10451:02/01/29 23:58
そろそろ戦略を織り込もうと考えて検索していたら
こんなのを見つけました。

http://www3.ocn.ne.jp/~sigma/C/janken.htm
http://www3.ocn.ne.jp/~sigma/C/janken2.htm

Part2は戦略なのか?
105デフォルトの名無しさん:02/01/30 00:30
戦略案

・自分が出した手をGoo,Choki,Par三つの変数に保存(カウント)しておく。
・COMはこの変数を参照して、相手が一番多く出した手に勝てる手を出す。

これだけだと、単純になってしまうので、ある確率でランダム手にするという
のも入れないと面白くないとおもいます。
実装は簡単なので、挑戦してみてください。
戦略案その2

自分が出した前回出した手を変数に保存しておいて、今回相手が出した手を調べて、たとえば前回こっちがパーを出したときは次相手はチョキを出しやすいなどの相手の傾向を把握する。
1071:02/01/30 09:16
む???
いつの間にか100 を超えてる…。
>>103
というか、いまどきrand()%nでかたよるようなひどい実装の処理系なんて
無いと思われ。
10984:02/01/30 09:48
>>100
いや、%3でいいんだよ。
そのまま教えるのもどうかと思って蟲入れたんだけど・・・。
蟲… 小金井?
自分の手と相手の手の9つの組み合わせのそれぞれで、次に相手が出した手の
多いものに勝つ手を出すようにする、とか。
って書いてたら、CoreWarsやりたくなってきたよ、検索してみよう、っと。
11251:02/01/30 17:01
戦略への第一歩として勝敗数の表示をつけました。
また乱数の偏りを調べてみましたが、ほとんど無いみたいです。

http://www.geocities.co.jp/HeartLand-Sakura/8361/jyanken.c.txt
http://www.geocities.co.jp/HeartLand-Sakura/8361/random.c.txt

ちなみにWin2000ProでBorland C++ Compiler 5.5.1を使って作ってます。
11351:02/01/31 02:24
戦略は
 プレイヤーが出した手のうち、
 プレイヤーが一番多く負けてる手に勝つ手をコンピュータは出す
という感じにしようと思います。

勝敗数入りに出した手の数も入れた改良版です。

http://www.geocities.co.jp/HeartLand-Sakura/8361/jyanken.c.txt

じゃんけんよりは戦略的な要素がある両手じゃんけんも入れてみたいです。
114デフォルトの名無しさん:02/01/31 03:07
限定じゃんけん作ってよー
>>58
最適解は存在するよ。丁度、1/3だ。w
階段じゃんけんのようにGCPで得点の違うゲームだとまた違う結果になるが…。
G…a点、C…b点、P…c点の時の最適解(均衡点)は
Gを出す確率をp、Cを出す確率をqとすると、
対称系ゼロサムゲームだと相手の期待利得が0で均衡点だから
相手Gの時の相手の期待利得=0:aq-c(1-p-q)=0
相手C:-ap+b(1-p-q)=0
相手P:cp-bq=0
の連立方程式を解けば良い。
>>114
同時多人数限定じゃんけんとか面白そうだよね。
さらに、GCPで(もしくは状況で)点数が違い、点数の奪い合いの形で、
初めの持ち点が0になったら、その人は強制終了みたいな。
4人でやってりゃ、1人を集中攻撃したほうがいいのか、
1位の人を裏切れば良いのか、同じ引き分けでも捨てるカードで有利不利があるみたいな。
116C 初日:02/02/01 14:34
#include <stdio.h>

int main(void)
{
printf("みなさん、よろしゅう\n");
return 0;
}
11751:02/02/04 11:13
一応えせ戦略をつけました。
プレイヤーがそれぞれの手で負けた割合を元に
コンピューターが出す手を決めるようにしてみましたが、
はっきり言ってダメでした。

http://www.geocities.co.jp/HeartLand-Sakura/8361/jyanken.c.txt
118デフォルトの名無しさん:02/02/04 16:55
2次元配列を使ってみればどうかな?
119デフォルトの名無しさん:02/02/04 17:04
12051:02/02/04 22:01
>>118
え、どういうことですか?
121デフォルトの名無しさん:02/02/04 22:07

お前らお前らお前ら!

女の匂いがするとどうしてそんなに親切にするのだ!
アフォかヴァカか。
ふつうならクソスレ扱い間違いないだろうが!

差別はんた〜い!
122電波5号:02/02/04 22:32
強いじゃんけんソフトって
あったよね
全然勝てないの
強敵だったなぁ
table[3(相手が前に出した手)][3(それに対する勝数)]とかどう?

>>121 女って誰? ハァハァ(w
12451:02/02/04 23:56
>>122
詳細わかりませんか?

>>123
構造体だと手ごとに名前をつけられますから
見た目分かりやすいかな、と思ったんです。
無駄な項目が多いな、とは思っています。

相手が直前に出した手、というのはやっぱり重要でしょうか。
125デフォルトの名無しさん:02/02/05 00:02
>>122
それってこちらが押したキーを見て、それに勝てる手を後出しするんだろ(w
126デフォルトの名無しさん:02/02/05 00:04
>>122
話はそれるけど、じゃんけんで勝つには、相手のひとつ前の手を出すと7割
勝てるらしいね、人間は無意識にグー・チョキ・パーと順番に出してしまう
らしいよ。
相手がひつつ前にグーを出してたら、今回はこっちがグーを出すみたいに。
>>125 それは強い(w

table[3(相手が前に出した手)][3(さらにその前の手)]
って感じでもよくない?こっちも初心者だからよくわからないけど。
そろそろ次に行きたいなぁと思う今日この頃。
オセロ♪
129デフォルトの名無しさん:02/02/05 14:20
アルゴリズム作るならオセロはかなり面倒じゃない?
囲碁でおれをたのしませてくれ
131デフォルトの名無しさん:02/02/05 14:51
>>129
思考の深さをnとすると
その盤面からnターン目までの合計でで一番多く取れるところ。
これくらいのアルゴリズムならそんなに難しくない。

>>131
>>131
序盤は出来るだけ少ししかとらない
各辺から2列目は出来るだけ置かない
辺上は出来るだけとる
くらい考えたほうがいいかなぁ。
オセロまじめに勉強したわけじゃないけど。
>>125
そうだったのか・・・・

滅茶苦茶強いのでビックリしてたんだが。

「こ・・ これはすげえアルゴリズムだ!」とか思ってた 鬱
134デフォルトの名無しさん:02/02/05 15:07
>>133
それってゲーセンのマージャンに
「さすがコンピューターだ、実に強い」
と関心しているようなものですぞ(笑

まさかサンタさんとかも信じてないでしょうね(笑
135132:02/02/05 15:08
>序盤は出来るだけ少ししかとらない
そういえばそうだ…。
>>134
幼稚園か小学校のとき近くのスーパーのゲームコーナーにじゃんけんゲームがあって、それにはまってたのを覚えてるよ(;´Д`)
そうか・・・あれは遅出ししてたのか・・・純真な子供心をもてあそぶとは、許せん!
どかーん!
(⌒⌒⌒)
 ||

/ ̄ ̄ ̄ ̄ ̄\
| ・ U      |
| |ι        |つ
U||  ̄ ̄ ||
   ̄      ̄
もうおこったぞう
じゃんけんゲームめ!!
>1
健太君は1500円持って295円のガム4つと300円のあめ玉
6つ買いました。さてお釣はいくらですか?
139デフォルトの名無しさん:02/02/05 15:44
>>138
こういう非本質的なことは周囲の方にご相談下さい。
強いジャンケンゲームにワラタ。
141デフォルトの名無しさん:02/02/05 16:02
>>140

意外とジャンケンゲームもコンピュータだかこそ勝率を上げる
ことが可能かもよ。

例えば、熱い日なんかは本能的に熱を発散したいが故に「パー」を
出しやすいとか、あいこが続いたのちのグーは統計的に次の手は、
「チョキ」を出しやすい。とか。
>>141
マルコフ連鎖というものにたいする知識をつけることをお勧めする。
143デフォルトの名無しさん:02/02/05 16:53
>>138
いくらを出すんですか?

それ以前に
所持金が1500円なのですか?
それとも手にもってるのが1500円で財布にはもっと沢山あるんですか。
300円もするのに、6つも欲しくなるあめ玉って、どんなんだろ。
く〜〜〜〜〜〜っ 気になりぃ〜〜〜〜〜
あめ玉はあめ玉でもどこで舐めるのかな
146デフォルトの名無しさん:02/02/05 19:38
「あめを探しているんだが」

「あめなんてどこでも売ってるだろうが」

「どこでも売ってないあめを探している・・・
 目に見えないほど小さなあめさ」
14751:02/02/07 10:00
scanfだと数字以外を入れたらおかしくなりますね。
getsとatoi使って書き直してます。

xyzzyマンセー。
148デフォルトの名無しさん:02/02/07 14:01
>>147
fgets
>148
getchはダメなん?
150デフォルトの名無しさん:02/02/07 18:28
>>149
fgetsが正解なのをみんな知らんのか。
バッファーオーバーラン攻撃は今日も続きそうだな・・
15151:02/02/08 00:08
fgetsですか、、、調べてみます。
152>:02/02/08 00:51
>>138
持ってる金額はお釣りには関係ない
渡した金額を教えてくれ

 C言語を覚えたいという奴に戦略じゃんけんプログラムを作らせるのもどうかと思うが?
 漏れ忠告はポインタと配列についてアフォな本読んでデタラメ覚えないようにってことかな
>1
お題だけど、文字で、もぐらたたきなんかはどうかな?
環境依存な感じのするkbhit()って関数もあるし。(BCC&VCは持ってるはず。)
エクケープシーケンスで色変えたり、カーソル移動したり、画面消したりできるし、
面白いと思うんだけど。どう?
>153
ANSIエスケープシーケンスはNT系コマンド
プロンプトでは無効なのをご承知か。
>>153
もぐらたたきってどうやんの?
ピュアCで入力(叩く)までの時間に制限つけることって出来たっけ?
15651:02/02/08 01:23
>>152
自分はポインタ、配列については
秘伝 C言語問答 ポインタ編 柴田望洋
Cプログラミング専門課程 藤原博文
を読んでる途中です。

前者は第2版ではなく新版なんですけど。

もしかして、「と」本でしょうか、、、
157デフォルトの名無しさん:02/02/08 01:32
>>156
柴田氏は、どうでもよいことから書く癖があるようだ。
昔C++の本を読んで、今そう思う。

プリミティブな概念から覚えるのは、
時間が沢山あって我慢強ければよいのだろうが・・・

158デフォルトの名無しさん:02/02/08 01:40
暇な学生には、望洋氏の本は一度は読んでおくべき本だと思うよ。
ただ、手っ取り早く書けるようになる類の本ではないと思われ。
159デフォルトの名無しさん:02/02/08 09:16
今度の院試でCが出るんだけど、大事なとこって何かな?
多分、構造体、共用体、ポインタ、配列、ループくらい
だと思うんですが・・・。基礎的な問題ばかりなので、普通に
解けるとは思うのですが、何か基本的な重要事項って
ほかにありませんでしたっけ?
どこまでが基本的なのか基準がわからん
161デフォルトの名無しさん:02/02/08 10:28
>>159
それってそれだけで
Cの教科書の半分以上が出題ポイントだと言っているに等しい。
これ以上どうしろというのだ。もっと増やして欲しいのか?

試験でマッシヴなコードや知識が必要となるような問題が出
るはずもないので、というか他の所の勉強をしておいた方が
点になるかもしれません。
関数くらいは基本に入れとこうよ。
まぁ、関数ポインタとダブルポインタと多次元配列は重点的にやっときなさい。
164153:02/02/09 00:47
>154
うは。知りませんでした。
お題としては面白いと思ったのだけれど。Win9x系限定か。残念。
154、ありがと。

>155
ピュアCだと厳しいのではないかな。
多分方言な感じの_kbhit()はそこで動作が止まらず、キーのバッファから一文字分を
_getch()に突っ込んで次に行きます。
マシンをいじってると思うので、ANSIの守備外ではないかと思います。
余談だけど、ウエイトにはclockを使うといいよ。
LONGだから、40日くらいで桁があふれちゃうけど、ゲームで40日耐久は無いでしょ。(笑

165かいじ:02/02/10 05:22
>>114

限定じゃんけん作ってみた。
だけど思考ルーチンできてない・・・
勉強中ひとたち思考ルーチン完成させてください。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1013286007_1/getntei.c
166かいじ:02/02/10 05:28
見にくかったのでHTML版にしてみました。
といっても、2時間くらいで作ったのでソースがちょっと汚いです。
ごめんなさい。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1013286007_2/gentei.html
>>166

162 : /*すまん、適当すぎる・・・いい思考ルーチンを考えてくれ*/
163 : int rnd;
164 : do
165 : {
166 : rnd = rand()%3;
167 : } while(!card_check(pMy,rnd));

本当に適当すぎる(W

168かいじ:02/02/10 07:06
16951:02/02/10 14:28
限定じゃんけんってカイジでやってたカードの奴ですか?
170かいじ:02/02/10 15:15
>>169
そーです、あの限定じゃんけんです。
ルールの変更や、思考ルーチンを考えてね!
カードの買い占めとか同盟を組めたら面白いかも。
ソースは51さんのソースを元にしてるんで、がんばって(結構、手直ししたけど)
171ななし:02/02/10 15:52

system("ls -la");
とかしたあとに標準出力に表示される文字を
プログラム内の変数に入れるのってどうしたらよいですか?
パイプではなくその後の行ですぐその変数を使いたいのです。
ざわざわサウンド搭載
173デフォルトの名無しさん:02/02/10 16:02
>>152
前橋和弥の「C言語ポインタ完全制覇」ってどうですか?
>173
ポインタの理解が完璧じゃないと思う人
は読んでもいいかと
175デフォルトの名無しさん:02/02/10 17:02
>>174
ある程度は信用しても大丈夫ってことですか?
>176
心配なら実際に本屋でみてみぃ
あふ
176→175
178デフォルトの名無しさん:02/02/10 17:20
いや、実際に勝って所有してるんですけど、過激な発言が多いから
本当に信用できるのか不安になったのです。
>>171
最後の一行が意味不明。
>>179
ファイルに出力してそれを読め。
ミス
>>179 でなく >>171
MAJIこういうスレやめれ。2chに自分専用すれたてんのやめろ。
重くなるわ、ageるやついるわで、迷惑極まりない。
よって終了。
183171:02/02/11 08:13
>179
>180
すみません。
例えば、
char string[64];
sprintf(string,"%s",system("perl -e \"print test\""));
printf("%s",string)//stringにperlからの出力[test]が入っている

というのが理想です。
もちろんsystem()の戻り値は実際にはこうではないですが・・・
Apacheとかのウェブサーバが*.cgiファイルをperlなどに渡すときって
system("perl test.cgi >temp.txt");
とかしてそのあとにtemp.txtを開いてクライアントに送ってるのでしょうかね・・?
もっとスマートなやり方がある気がしたので・・
184デフォルトの名無しさん:02/02/11 09:54
,区切りのテキストファイル
fdjlk,fdkaj,fdsajl,fsak,dsaj
の3番目だけを読み出したいというプログラムのコードはどう作ればよいですか?
>>184
なにもせずに、とりあえず質問しようとか思うな。
まずやってみてから聞け
3番目だけを読み出すように作れ
>>184
Perlで書いたらいいよ。
>>183
まさしくそれをするためのパイプだが。

char string[64];
FILE *child = popen("perl -e \"print test\"", "r");
fread(string, 1, sizeof string, child);
pclose(child);
あ、間違えた。つーか>183からのバグだが。

FILE *child = popen("perl -e \"print 'test'\"", "r");

何にも出て来やしねぇと思ったら、testがファイルハンドルと見なされてるじゃ
ねーか。
あと>188じゃ省略してるが、fread()の戻り値はちゃんと見ろよ。
NUL terminateも必要だし。
190暇つぶし:02/02/12 20:19
>>184
strtok
191171:02/02/12 23:14
>188,189
激烈サンクスです。
popenという関数を知らなかったです・・・
1リクエストごとにテンプファイルを作って
でもテンプファイルは重なると上書きされちゃうから、注意しなきゃ・・
とか思ってたところでした。
なんか光明が見えそうです。
192デフォルトの名無しさん:02/02/14 17:44
たまにはage
193デフォルトの名無しさん:02/02/14 17:48
age
195デフォルトの名無しさん:02/03/05 16:37
 
196デフォルトの名無しさん:02/03/18 11:03
保守age
1971:02/03/26 02:09
あれ、196もついてる…
198デフォルトの名無しさん:02/03/28 10:44
>>197
続きは?
>>197
君がいない間にジャンケンゲームをがんばってた人がいたから。
進んでんの?
201201げったー:02/03/28 18:25
こういうスレで罵倒されずに進行するとは驚いた。
応援してるぞ。
20251:02/03/28 23:37
忙しくってちょっとご無沙汰しております。

自分の書いたジャンケンのソースはまだ落とせるはずですので
お暇な方は、どうぞ批判したり改造したりしてください。
批判は大歓迎です。

http://www.geocities.co.jp/HeartLand-Sakura/8361/jyanken.c.txt
203デフォルトの名無しさん:02/03/28 23:46
>>202
長すぎ
20451:02/03/28 23:59
>>203
どうもです。
もう少し削れるなーとは思うんですが
自分の技術ではどこをどう削っていいんだか、、、

エディタのいいのも見つからないし。
205デフォルトの名無しさん:02/03/29 10:59
>>203
こんなもんじゃないの?

>>204
xyzzyなんてどーかな。
20651:02/03/30 01:09
>>205
xyzzy使ってみました。いい感じですね。
エディタはできればEmacsっぽいのがいいので
少しこれでがんばってみます。
今までWin2000のコマンドプロンプトでDOS用の
Memacs使ってたんで、、、
207デフォルトの名無しさん:02/03/30 01:28
保守
C/C++専用板を作りました。
http://www15.big.or.jp/~s-w-/bbs/c/index.html#1
209デフォルトの名無しさん:02/03/30 11:43
>>208
誰もいないやん。
いや〜ん