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


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

C言語なら俺に聞け(入門編)Part 95



1 名前:デフォルトの名無しさん [2012/01/13(金) 22:05:06.14 ]
C言語の*入門者*向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 94
toro.2ch.net/test/read.cgi/tech/1324648274/
★過去スレ
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++の宿題片付けます 155代目
toro.2ch.net/test/read.cgi/tech/1325685876/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
codepad.org/

355 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:26:20.65 ]
それはテストが下手だといわざるを得ない

356 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:37:23.71 ]
つーか、普段キャッシュにあたらないような状況ならそこを改善する意味がないだろ。

357 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:47:20.87 ]
【C++】高速化手法【SSE】
toro.2ch.net/test/read.cgi/tech/1130349336/

358 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 17:55:11.41 ]
実測は実データまたは実データに近い仮想データで行うんだから
それでキャッシュヒットしまくって全体に対する占有時間が小さくなってるなら
>>356の言うとおり改善する意味なし。

359 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 19:59:00.54 ]
>350
ヘッダファイル作ってコメント入れときゃ多少マシだろ。

360 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:04:22.56 ]
>見やすくするという理由

実際に見やすくなり、再利用が出来るなら、そうして良いんじゃないの?

361 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:34:18.83 ]
関数の行数は1画面に収まる程度にするとよいとCodeCompleteに書いてあったぞ
2〜3行しかない処理を関数化するのは逆によろしくないようで。

362 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:39:13.90 ]
>>361
意味のある名前をつけられるかどうかを指標にする
同じコードを2回書くならそれを関数かできないか検討する

363 名前: ◆QZaw55cn4c mailto:sage [2012/01/18(水) 20:40:12.35 ]
>>350
解決するべき条件をひとつずつ皮をむくようにクリアしながら下位の関数に投げてしまう、というのは私はよくします。
直近では
toro.2ch.net/test/read.cgi/tech/1325685876/339
main() は fopen() と fclose() しかしていない。



364 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:41:53.23 ]
1画面って何行くらいなんだろ
画面解像度やフォントサイズでかなり違いがでそうだけど

365 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:44:51.45 ]
一つ関数を作る度に、膨大な設計書を書かされていた時は、
一つの関数が300行を楽々超えていた。

366 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 20:50:00.46 ]
個人的には、短い関数が多い方が見やすい。

>>365
開発だとそうなりがちだわな。
2000超えてるの見たときは、驚いたけど。

367 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:10:25.39 ]
一行の関数とか大量に作るなあ
まあ(C++ではなく)C言語なら、多少は自重するが
それでも20行以内の関数なんて全然珍しくはない

368 名前:デフォルトの名無しさん [2012/01/18(水) 21:16:46.85 ]
>>361
基準が行数って時点で目的意識はどこへやら

いまどき行いくらって稼ぎ方はそうないだろうが
頭脳労働者らしからぬ発言には気をつけろな

369 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:32:50.30 ]
亜流だか我流だか、かも試練が、

アルゴリズムが埋もれないように関数化する

370 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:54:25.28 ]
>>350
> ひとつの関数を見やすくするという理由だけで、こんな風に
> 入れ子になっていく事は、なるべく避けた方がいいのかな?

必要ないなら、「入れ子 (ネスト)」は少ないほうがいい。
俺なら、こう書くかな。

int main() {
 func1();
 func2();
 func3();
}
void func1() {
 ...
}
void func2() {
 ...
}
void func3() {
 ...
}

371 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 21:58:58.37 ]
>>370
あまりにこの形式になりすぎて
上位のほうの関数が実際に何やってるのか
よくわからんくなってるプロジェクトを最近見た

372 名前:デフォルトの名無しさん [2012/01/18(水) 22:21:44.34 ]
>>370
ナンセンス

関数内に隠せないものを関数スコープで宣言とか
おまえは B の時代のヨボヨボジジイか?

373 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:22:28.10 ]
>>364
こういう場面で言われる1画面は80*25をさす場合が多い。80文字、25行ね。
最近はメソッドや変数名が長い場合も多く、横方向への基準を緩和していることも多い。
たとえば120文字までにおさめるなど。

縦方向は今も昔もさほど変わっていないと思う。
でもメソッドチェーンなんかで、1かたまりの処理が複数行にわたる場合なんかを考えると、
今となっては25行は厳しいかもしれないね。



374 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:24:25.63 ]


ステマ相関図画像更新(1/17)
gazo.restspace.jp/img-box/img20120117010742.jpg
テレビや新聞、大規模なネットサイトで「今流行の」「今話題の〜」「女性に人気の〜」等と言われるものはほぼ全て
この画像上部、○○堂がコントロールしている。
  ・世間にどの程度流行らせるか
  ・流行に乗り遅れる(流行に乗り遅れさせる)人間をどのくらい作るか
  ・話題に乗り遅れた人間に対してどの程度の疎外感を与えるか
  ・いつその流行を終わらせるか
2chもステマ会場
www.dotup.org/uploda/www.dotup.org2526030.jpg

ちなみに ハリーポッターと賢者の石の 「石」とはテレビのこと(著者が執筆当時)
 ダイオード→半導体→シリコン→石
 賢者とはテレビを見る人間でも番組を作る人間でもなく、テレビを操る人間。


375 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:42:55.85 ]
なんのことだかさっぱりだが、そこはダイオードじゃなくてトランジスタだろ。

376 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:47:08.66 ]
>>370
俺もそれっぽい書き方するわ。
もちろん、そこまで極端ではないけど。

377 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:50:22.44 ]
アジャイルなら、ある処理を関数化するかどうか、つまり処理の粒度は「意図によるプログラミング」に従う。

378 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 22:52:07.61 ]
趣味のソースなら再利用する気が無い限り関数化しないな。


379 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:07:22.27 ]
>>372
意味わからん、あくまでも >>350 の改善案だぞ。

380 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:51:17.96 ]
>>378
関数化の大きな目的の1つである同一コードを纏めて修正を1回で済ませる、という目的を忘れてる気がする。

どんなコードの書き方でも基本的に構わないけど、
バグの温床になる書き方はどんな書き方でもNGだと思うが

381 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 23:54:29.63 ]
>>372
>>379

ナンセンス以前に、おまえら超能力者かと
mainからみて隠蔽したい内容であるなら、>>350だし、
それがアルゴリズムとして重要でmainからみとおせる必要があるなら>>370だし。

それが、>>350で読み解けてるみたいだから、超能力でもあるんだろう。

382 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 00:12:29.16 ]
ameblo.jp/c-plus-style/
検証お願いします

383 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 07:30:01.47 ]
「俺のコーディングが最も正しい!!」



384 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 08:21:13.40 ]
コンパイラ通ったの?

385 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 08:21:41.81 ]
コーディングスタイルはそれぞれでも、
1関数は百行以内で頼みたい。

386 名前:384 mailto:sage [2012/01/19(木) 08:25:52.23 ]
ソース読み間違えたorz

387 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 10:52:47.12 ]
>>382
ぱっと見、抽象型プログラミングっぽいけど、よく見たらファイル一個につき
selfが一個だな。
あんまり利点を感じない。

388 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 14:07:44.90 ]
いったい検証てなんなんだ?
意味がわからんのだが。

389 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 15:18:28.05 ]
査読してほしいってことぐらいわかろう

390 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 15:50:28.51 ]
何がしたいコードなのかもわからずに査読も何もないだろう。
ぱっと見、OOPを噂で聞いたくらいで何かそういうことを
やろうとしたような残念なコードにしか見えないんだが。

391 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:34:27.20 ]
ネバーネバーネバーネバーギブアップって、
! ! ! ! give_up という事で、
give_upがtrueなら
! ! ! ! give_up もtrueという事で
ギブアップなんですよね?

392 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 17:51:02.21 ]
give_up || !give_up
だよ

393 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 18:37:49.17 ]
番号を選択し、選択した番号によって処理を変えたいのですが、
[範囲外の数値が入力されました。]としか表示されません
番号通りの処理をさせるにはどうしたらいいのでしょうか


codepad.org/IOuFqtMb




394 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 18:44:58.18 ]
>>393
- scanf("%d", menu);
+ scanf("%d", &menu);

395 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 18:51:32.77 ]
>>394
有難うございます
早速修正します

396 名前:デフォルトの名無しさん [2012/01/19(木) 20:51:59.13 ]
コンパイラが宣言された配列に対して実際に確保するメモリ領域の大きさを決める基準ってなに?

397 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:00:03.22 ]
>>396
配列のサイズ以外に何かあるの?

398 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:25:55.65 ]
char は1バイト
int は4バイト(処理系によりけり)
long は8バイト(処理系によりけり)

とかを聞きたいんじゃね?

399 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:44:19.30 ]
コンパイラの仕様による
としか

400 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 21:48:02.12 ]
char a[6];
が8バイト分確保するとか。
コンパイラ依存だろうが。

401 名前:396 [2012/01/19(木) 22:24:08.73 ]
すまん、要素数が1の時に1byte、2〜16で16byte、17〜32で32byte、33〜64で64byteっていう実験結果が得られたのを前提に頼む。

402 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:32:17.25 ]
>>401
char配列?

403 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:32:39.53 ]
>>401
>すまん、要素数が1の時に1byte、2〜16で16byte、17〜32で32byte、33〜64で64byteっていう実験結果が得られたのを前提に頼む。

そんなのじゃなく、実際の宣言部分を見せろ。



404 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:37:07.14 ]
>>401
OSやコンパリラとか書かないと

405 名前:396 [2012/01/19(木) 22:56:02.82 ]
char a[i];

コンパイラはgcc

406 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 22:57:55.71 ]
>>381
俺の超能力をもってしても、お前のレスは意味不明。

407 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:02:24.89 ]
>>401
別に普通のことだろ。
何が疑問なんだ?

408 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:03:38.25 ]
プラグマとかコンパイルオプションで変えられるっしょ

409 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:05:06.72 ]
>>405
とりあえず↓だと
#include<stdio.h>
int main(int argc, char **argv)
{
char a1[1];
char a2[2];
char a17[17];
char a33[33];

printf("sizeof(a1) = %d\n", sizeof(a1));
printf("sizeof(a2) = %d\n", sizeof(a2));
printf("sizeof(a17) = %d\n", sizeof(a17));
printf("sizeof(a33) = %d\n", sizeof(a33));
return 0;
}
実行結果 こうなる。
sizeof(a1) = 1
sizeof(a2) = 2
sizeof(a17) = 17
sizeof(a33) = 33

gccは
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-cygwin/4.5.3/lto-wrapper.exe
Target: i686-pc-cygwin
--中略--
Thread model: posix
gcc version 4.5.3 (GCC)

410 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:07:02.20 ]
>>405
>char a[i];
要素数が変数になっているのが気になるな。
情報小出しにしないで、>401でどうしてそう判断したのか、
コードを出しな。

411 名前:デフォルトの名無しさん [2012/01/19(木) 23:25:53.81 ]
>>410

#include <stdio.h>
#define i 1
int main(void)
{
char a[i],b[i],c[i];
printf("a:%p\n",a);
printf("b:%p\n",b);
printf("c:%p\n",c);
}

412 名前:デフォルトの名無しさん [2012/01/19(木) 23:27:23.14 ]
>要素数が変数
>>405がやってるのは、なに言語?

413 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:27:53.71 ]
>>411
そういう書き方、気持ち悪いと思う



414 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:28:00.33 ]
どうせワード境界だのなんだのの話だろ?

415 名前:デフォルトの名無しさん [2012/01/19(木) 23:28:08.95 ]
アドレス表示してなにがやりたいの?

416 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:42:07.25 ]
>>411
環境によって、4の倍数のアドレスがアクセスが速いとか、奇数アドレスにアクセスできないとか
あるから変数とかきっちり敷き詰めて置かれないことのほうが多い。

417 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:43:01.09 ]
#include <stdio.h>
char a[XXX];
char b[1];
int main(){printf("%d ",b-a);return 0;}

for XXX in 1 2 3 4 5 6 7 8 9 10; do gcc -DXXX=$XXX hoge.c; ./a.out; done

結果
1 2 3 4 5 6 7 8 9 10

418 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:44:02.24 ]
>>405
配列の添字が変数のトキはとくべつなしょりになるよ

419 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:44:43.21 ]
構造体だと
#pragma pack(1)
みたいな、隙間無く埋めろとか指定できるのもあるな。
こんなの使わないから忘れたけど。

420 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:45:13.81 ]
>>417
a,bの順番にかくほされるとはかぎらないよ

421 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:53:00.39 ]
構造体は何にもしなくてもアドレス続いてるんじゃなかたけ?
例えば、
struct a{
long n;
char c[4];
};
a.nの次のアドレスにa.c[0]が続いてるんじゃないの??

422 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:54:34.00 ]
struct a{
char c[3];
long n;
};
はどうなってるのかと考える?

423 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:54:42.23 ]
いいえ



424 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:57:17.34 ]
>>422
char c[3]がlongに合わせられるんでしょ?
ちなみにlongは4バイトでw

425 名前:デフォルトの名無しさん mailto:sage [2012/01/19(木) 23:58:17.42 ]
何を根拠にそう言ってるんだ?

426 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:00:03.47 ]
>>421
隙間あいてることもあるよ。

427 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:01:02.85 ]
>>424
>char c[3]がlongに合わせられるんでしょ?

×

428 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:03:08.82 ]
なんとw
char c[3]の領域破壊したら、その下のlong nも壊れるんじゃないんだ


429 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:07:56.70 ]
>>411
それは配列がどう配置されるかで、

>>396
>コンパイラが宣言された配列に対して実際に確保するメモリ領域の大きさを決める基準ってなに?
の、配列に対して確保されるメモリ領域の大きさとは、話が変わってるぞ。

>>409で示したように、「配列に対して実際に確保するメモリ領域」の大きさは、char a[N];
ならNになっている。


430 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:17:02.14 ]
構造体のサイズとアライメント
ttp://www.g-ishihara.com/c_st_01.htm

431 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:43:40.33 ]
double array[10][20]に対応するキャストってなんでしょうか?
よろしくお願いいたします。

432 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:46:33.99 ]
ポインタと意味と斟酌すると、
 double (*p)[20] = array;

433 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:56:51.62 ]
ダブルポインタとかトリプルポインタってどういう時に使うの?



434 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:58:22.67 ]
使う時が来るまでほっといていいよ

435 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 01:00:02.56 ]
>>433
とりあえずコマンドライン引数を使おうとすると、早速char **argvが出てくるな。

436 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 01:06:52.78 ]
>>435
コマンドラインで char *argvしか使ったこと無いけどそれ何の意味があるの?

437 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 01:28:56.92 ]
>>436
複数パラメータ時は?

438 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 06:52:37.88 ]
>>436
>コマンドラインで char *argvしか使ったこと無いけどそれ何の意味があるの?

コマンドライン引数はint argc, char **argvしかありえないが、処理系なに使っている?

439 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 06:53:40.58 ]
関数の中で引数の変数にポインタを設定するときとか

440 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:28:45.67 ]
引数の char *argv[] が実際には char **argv であることなんて
知らない人のが多いだろう。


441 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:33:20.81 ]
あれは字句分解が面倒でのぅ

442 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:42:40.29 ]
>>440
引数の場合同じことになるだけで、実際は前者だろ。

443 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:03:26.72 ]
[]が配列を渡しているように見えるからイカンのでは



444 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:09:20.92 ]
atoi関数の、
ループ(・・・){
n = 10 * n + (s[i] - '0');
・・・
}
return n;
この処理って何をやっているのですか><
iPhoneセミコロン打てない><

445 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:14:30.21 ]
卓上で手動ステップ実行やってみなさい

446 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:20:58.46 ]
2バイト文字のバイナリ化ってどうすれば出来ますか?

447 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:31:09.33 ]
1バイトの場合と一緒

448 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:45:13.57 ]
>>444
ヒント:
(s[i] - '0') この部分はs[i]の1文字から、数値を得ている
s[i]がcharの'1'だとすると、'1'=0x31
'0'は0x30なので、0x31 - 0x30 から 数値として1を得る


449 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 13:25:11.24 ]
>>444
>iPhoneセミコロン打てない><
「日本語テンキー」を使っている状態だろうから、
左下の地球儀アイコンを押して「English(US)」にすればフルキーが出る。
そこで左下の「123」キーを押せば「;」キーが見える。

450 名前:デフォルトの名無しさん [2012/01/20(金) 15:09:21.28 ]
学校の課題で自分でプログラム作れって言われて、
グリコゲーム作ろうと思ったんだけど、うまく動作しないんだ。
助けてくれ。
エンドレスじゃんけん状態から抜け出せない・・・><
↓みたいなプログラム作ったんだが。


451 名前:デフォルトの名無しさん [2012/01/20(金) 15:11:34.14 ]
>>450です

プログラムです


#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void)
{
int you,cpu,kaidan;
int y_position = 0;
int c_position = 0;

printf("グリコゲーム\n");
printf(“階段の数>>”);
scanf(“ %d\n”,&kaidan);


452 名前:デフォルトの名無しさん [2012/01/20(金) 15:12:40.43 ]
>>451の続きです

srand(time(NULL));
do
{
printf("最初はグー\n");
printf("\nじゃん!けん!\n");
do
{
printf("ポン!\n");
printf("グー:1 チョキ:2 パー:3 >>");
scanf("%d\n",&you);
cpu = rand()%3 + 1;
printf("cpu>>");
if(cpu == 1)
printf("グー\n");
else if(cpu == 2)
printf("チョキ\n");
else
printf("パー\n");
} while(you == cpu);


453 名前:デフォルトの名無しさん [2012/01/20(金) 15:13:44.78 ]
>>452の続きです

if (you == 1 && cpu == 2)
{
printf("you:「グ・リ・コ!」");
y_position = y_position + 3;
printf("you>>%d段目\n",y_position);
printf("cpu>>%d段目\n",c_position);
}
else if (you == 2 && cpu == 3)
{
printf("you:「チ・ア・ガ・ア・ル!」");
y_position = y_position + 5;
printf("you>>%d段目\n",y_position);
printf("cpu>>%d段目\n",c_position);
}
else if (you == 3 && cpu == 1)
{
printf("you:「パ・イ・ナ・ツ・プ・ル!」");
y_position = y_position + 6;
printf("you>>%d段目\n",y_position);
printf("cpu>>%d段目\n",c_position);
}




454 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 15:15:02.09 ]
>>450
宿題スレって知ってるか
>>1

455 名前:デフォルトの名無しさん [2012/01/20(金) 15:15:22.80 ]
>>453の続きです

else if (cpu == 1 && you == 2)
{
printf("cpu:「グ・リ・コ!」");
c_position = c_position + 3;
printf("you>>%d段目\n",y_position);
printf("cpu>>%d段目\n",c_position);
}
else if (cpu == 2 && you == 3)
{
printf("cpu:「チ・ア・ガ・ア・ル!」");
c_position = c_position + 5;
printf("you>>%d段目\n",y_position);
printf("cpu>>%d段目\n",c_position);
}
else if (cpu == 3 && you == 1)
{
printf("cpu:「パ・イ・ナ・ツ・プ・ル!」");
c_position = c_position + 6;
printf("you>>%d段目\n",y_position);
printf("cpu>>%d段目\n",c_position);
}



}while((y_position < kaidan) && (c_position < kaidan));








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

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

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