期待通りの出力結果が得られないです。
C言語に慣れてないため、お知恵を貸して頂けると嬉しいです。
whiteとblackのいずれかを入力して、
whiteが2つになったら、pass
blackが3つになったら、failure
にするようにしたいです。
一応コードを書いてみましたが、
期待通りの出力結果が得られないです。
■入力例
4
black
black
white
black
■出力例
black
black
white
failure ←4回目にblackが入力され、その時点でblackが3つになったため、failureを出力する。
#include <stdio.h>
#include <string.h>
int blackcount;
int whitecount;
void count_black(void) {
if(blackcount == 3)
{
printf("failure");
}
else{
printf("black");
}
}
void count_white(void) {
if(whitecount == 2)
{
printf("pass");
}
else{
printf("white"); //strike!
}
}
int main(void){
int i,num;
char Judgment[10];
char *s1 = "black";
scanf("%d",&num);
if((3<=num)&&(num<=6)){
for(i=1; i<=num; i++){
scanf("%s", Judgment);
if (strcmp(Judgment,s1) == 0)
{
count_black();
blackcount++;
}
else{
count_white();
whitecount++;
}
}
}
return 0;
}
宜しくお願い致します。