"定義済み処理"を用いたプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
NAGI

"定義済み処理"を用いたプログラム

#1

投稿記事 by NAGI » 15年前

前回質問したときに答えてくださった皆様、本当にありがとうございました。
ここで聞いたことや、友達に教わりながらプログラムを完成させることはできたのですが、そのプログラムを"定義済み処理"を用いるような形に直せとのことでした。

授業では定義済み処理の話はしていましたが、実際にプログラムとして作成していなかったのでどのように作ればよいのかがわかりません。
教えていただけないでしょうか?

以下に前回作った、プログラムを載せておきます。
テニスのように、先に4勝するとどちらかの勝ちで終わるが、3勝3敗となったときには先に2連勝した方が勝ちになるように変更したプログラムです。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int a,b,w1=0,w2=0;
while(1){
srand(time(NULL));
b=rand()%2;
printf("Input the hand number[0 or 1]>>");
scanf("%d",&a);
if(a==0&&b==0){
w1=w1+1;
printf("You win.\n");
}
else if(a==0&&b==1){
w2=w2+1;
printf("You lose.\n");
}
else if(a==1&&b==0){
w2=w2+1;
printf("You lose.\n");
}
else if(a==1&&b==1){
w1=w1+1;
printf("You win.\n");
}
else{
printf("Input the right number.\n");
}
if(w1==4){
break;
}
if(w2==4){
break;
}
if(w1==3&&w2==3){
break;
}
if(w1==3&&w2==3){
w1=0;
w2=0;
while(1){
if(a==0&&b==0){
w1=w1+1;
printf("You win.\n");
w2=0;
}
else if(a==0&&b==1){
w2=w2+1;
printf("You lose.\n");
w1=0;
}
else if(a==1&&b==0){
w2=w2+1;
printf("You lose.\n");
w1=0;
}
else if(a==1&&b==1){
w1=w1+1;
printf("You win.\n");
w2=0;
}
else{
printf("Input the right number.\n");
}
if(w1==2){
break;
}
if(w2==2){
break;
}
}
}
}

return 0;
}

長いプログラムになっていますが、よろしくお願いします。

YuO

Re:

#2

投稿記事 by YuO » 15年前

"定義済み処理"という用語の定義を教えてください。
その用語はCの用語として一般的なものではないと思いますが。

NAGI

Re:

#3

投稿記事 by NAGI » 15年前

>YuOさん

1.srand(time(NULL));
b=rand()%2;

2.printf("Input the hand number[0 or 1]>>");
scanf("%d",&a);

3.if(a==0&&b==0){
w1=w1+1;
printf("You win.\n");
}
else if(a==0&&b==1){
w2=w2+1;
printf("You lose.\n");
}
else if(a==1&&b==0){
w2=w2+1;
printf("You lose.\n");
}
else if(a==1&&b==1){
w1=w1+1;
printf("You win.\n");
}
else{
printf("Input the right number.\n");
}
if(w1==4){
break;
}
if(w2==4){
break;
}
if(w1==3&&w2==3){
break;
}
if(w1==3&&w2==3){
w1=0;
w2=0;
while(1){
if(a==0&&b==0){
w1=w1+1;
printf("You win.\n");
w2=0;
}
else if(a==0&&b==1){
w2=w2+1;
printf("You lose.\n");
w1=0;
}
else if(a==1&&b==0){
w2=w2+1;
printf("You lose.\n");
w1=0;
}
else if(a==1&&b==1){
w1=w1+1;
printf("You win.\n");
w2=0;
}
else{
printf("Input the right number.\n");
}
if(w1==2){
break;
}
if(w2==2){
break;
}
}
}
}

の3つを関数化するらしいのですが・・・

フローチャートでは、
start
|
関数1
|
関数2
|
関数3
|
end

という流れになるとのことでした。

閉鎖

“C言語何でも質問掲示板” へ戻る