// 猜密码#include #include int disp_err(int pwd, int guss){ int mark[4] = {0}; int i = 0; for (i = 0; i < 4; i++) { if (pwd % 10 != guss % 10) { mark[3-i] = 1; } else { mark[3-i] = 0; } pwd /= 10; guss /= 10; } for (i = 0; i < 4; i++) { if (mark[i] == 0) { printf("第%d位数字相等\n", i+1); } else { printf("第%d位数字不等\n", i+1); } } printf("\n"); return 0; }int main(){ FILE *fp = NULL; int pwd = 0; int guss = -1; char mark = 0; if (access("password.txt", 0) == 0) { fp = fopen("password.txt","r"); if (fp == NULL) { exit(-1); } fscanf(fp, "%d", &pwd); } else { fp = fopen("password.txt","w+"); if (fp == NULL) { exit(-1); } pwd = 0; printf("请设置4位密码:"); scanf("%d", &pwd); fflush(stdin); fprintf(fp, "%d\n", pwd); } printf("****************************\n"); printf("开始猜密码\n"); do { if (scanf("%d", &guss) > 0) { fflush(stdin); if (guss != pwd) { printf("密码错误!!!\n"); } else { printf("密码正确!!!\n"); } } else { mark = getchar(); if ((mark == 'H') || (mark == 'h')) { if (guss != -1) { disp_err(pwd, guss); } } else if ((mark == 'K') || (mark == 'k')) { printf("密码:%d\n", pwd); } } } while(guss != pwd); fclose(fp); return 0; }
取消
评论