初心者です。
学校の課題で3回勝負のジャンケンのジャンケンの勝敗を判定する関数judge_mentを定義するには、どうすればいいでしょうか。
include <stdio.h
#include <stdlib.h>
#include <time.h>
int main(void)
{
int user, comp, i, uwin = 0, cwin = 0;
printf("じゃんけん3回勝負!\n\n");
srand( (unsigned)time( NULL ) );
for(i = 0; i < 3; i++){
printf("何を出しますか?\n");
printf("1 グー 2 チョキ 3 パー\n");
scanf("%d", &user);
comp = rand() % 3 + 1;
if(comp == 1){
if(user == 1){
printf("あなたはグー。私はグー。ひきわけですね。\n");
}
else if(user == 2){
printf("あなたはチョキ。私はグー。私の勝ちですね。\n");
cwin++;
}
else if(user == 3){
printf("あなたはパー。私はグー。あなたの勝ちです。\n");
uwin++;
}
}
else if(comp == 2){
if(user == 1){
printf("あなたはグー。私はチョキ。あなたの勝ちです。\n");
uwin++;
}
else if(user == 2){
printf("あなたはチョキ。私はチョキ。ひきわけですね。\n");
}
else if(user == 3){
printf("あなたはパー。私はチョキ。私の勝ちですね。\n");
cwin++;
}
}
if(comp == 3){
if(user == 1){
printf("あなたはグー。私はパー。私の勝ちですね。\n");
cwin++;
}
else if(user == 2){
printf("あなたはチョキ。私はパー。あなたの勝ちです。\n");
uwin++;
}
else if(user == 3){
printf("あなたはパー。私はパー。ひきわけですね。\n");
}
}
}
printf("\nあなたの%d勝%d敗%d引き分け\n", uwin, cwin, 3 - uwin - cwin);
return 0;
無題
-
conio
Re:無題
単純にやると、以下のようになります。
改良の余地はあるので、色々と手を加えてみるのも良いかもしれません。
-----------------------------------------------------------------------------------
int user, comp, i, uwin = 0, cwin = 0;
void judge_ment(void)
{
if(comp == 1){
if(user == 1){
printf("あなたはグー。私はグー。ひきわけですね。\n");
}else if(user == 2){
printf("あなたはチョキ。私はグー。私の勝ちですね。\n");
cwin++;
}
else if(user == 3){
printf("あなたはパー。私はグー。あなたの勝ちです。\n");
uwin++;
}
}else if(comp == 2){
if(user == 1){
printf("あなたはグー。私はチョキ。あなたの勝ちです。\n");
uwin++;
}else if(user == 2){
printf("あなたはチョキ。私はチョキ。ひきわけですね。\n");
}else if(user == 3){
printf("あなたはパー。私はチョキ。私の勝ちですね。\n");
cwin++;
}
}else if(comp == 3){
if(user == 1){
printf("あなたはグー。私はパー。私の勝ちですね。\n");
cwin++;
}else if(user == 2){
printf("あなたはチョキ。私はパー。あなたの勝ちです。\n");
uwin++;
}else if(user == 3){
printf("あなたはパー。私はパー。ひきわけですね。\n");
}
}
}
int main(void)
{
printf("じゃんけん3回勝負!\n\n");
srand( (unsigned)time( NULL ) );
for(i = 0; i < 3; i++)
{
printf("何を出しますか?\n");
printf("1 グー 2 チョキ 3 パー\n");
scanf("%d", &user);
comp = rand() % 3 + 1;
judge_ment();//判定する関数
}
printf("\nあなたの%d勝%d敗%d引き分け\n", uwin, cwin, 3 - uwin - cwin);
return(0);
}
------------------------------------------------------------------------------------
初級者
Re:無題
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int judge_ment(int u,int c)
{
if (u==c) return 1;
return (u%3+1==c)?0:2;
}
int main(void)
{
char *h[/url]={"","グー。","チョキ。","パー。"};
char *p[/url]={"あなたは","私は" };
char *r[/url]={"あなたの勝ちです。","引分けです。","私の勝ちですね。",};
int c,u,res,cwin=0,uwin=0,i;
srand((unsigned) time(NULL));
printf("じゃんけん3回勝負!\n");
for(i=0;i<3;i++) {
printf("\n何を出しますか?\n");
printf("1 グー 2 チョキ 3 パー\n");
scanf("%d",&u);
c=rand()%3+1;
printf("%s%s",p[1],h[c]);
printf("%s%s",p[0],h[[/url]);
printf("%s\n",r[res=judge_ment(u,c)]);
if(res==0)uwin++;
if(res==2)cwin++;
}
printf("\nあなたの%d勝%d敗%d引分け\n",uwin,cwin,3-uwin-cwin);
return 0;
}