把题读明白就行了,水题。注意判断之后及时的退出循环。
1 #include<stdio.h> 2 #include<string.h> 3 4 int main() 5 { 6 int T, hangman=7, n, m, i, j, error, flag, right; 7 char s1[1000], s2[1000]; 8 while(scanf("%d%*c", &T)==1 && T!=-1) 9 { 10 gets(s1); 11 gets(s2); 12 n=strlen(s1); 13 m=strlen(s2); 14 error=0; 15 right=0; 16 printf("Round %d\n", T); 17 for (i=0; i<m; i++) 18 { 19 flag=0; 20 for (j=0; j<n; j++) 21 { 22 if (s1[j] == s2[i]) 23 { 24 s1[j]='\0'; 25 flag=1; 26 right++; 27 } 28 } 29 if (!flag) 30 { 31 error++; 32 } 33 if (error >= hangman) 34 { 35 printf("You lose.\n"); 36 break; 37 } 38 if (right==n) 39 { 40 printf("You win.\n"); 41 break; 42 } 43 } 44 if (right<n && i==m) 45 { 46 printf("You chickened out.\n"); 47 continue; 48 } 49 } 50 return 0; 51 }