fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct user {
  5. char name[6];
  6. char pass[6];
  7. };
  8.  
  9. int main() {
  10. //таблица юзеров
  11. struct user users[] = {
  12. {"",""}, //буфер для текущего юзера
  13. {"vasya", "pup"}
  14. };
  15.  
  16. for(size_t count = 3;count > 0;) {
  17. printf("user password:"); scanf("%s%s", users[0].name, users[0].pass);
  18.  
  19. for(size_t i = 1; i<sizeof(users)/sizeof(*users); i++) {
  20. printf("\nTry to %s:%s vs %s:%s\n", users[0].name, users[0].pass, users[i].name, users[i].pass);
  21. if (strcmp(users[0].name, users[i].name)==0 && strcmp(users[0].pass, users[i].pass)==0) {
  22. printf("access granted\n");
  23. return 0;
  24. }
  25. }
  26. printf("password is invalid. you cant try %d more time(s)\n", --count);
  27. }
  28.  
  29. printf("access denied!");
  30. return 1;
  31. }
  32.  
Success #stdin #stdout 0s 4332KB
stdin
petya 012345ABCDEFG
ABCDEF G
stdout
user password:
Try to petya:012345ABCDEFG vs ABCDEFG:G
password is invalid. you cant try 2 more time(s)
user password:
Try to ABCDEFG:G vs ABCDEFG:G
access granted