初心者です。
学校の課題で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;
無題
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; }