|
发表于 2017-3-30 11:32:48
|
显示全部楼层
程序似乎是没问题^_^
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- void generate_abcd(int *a, int *b, int *c, int *d)
- {
- *a = rand() % 10;
- do
- {
- *b = rand() % 10;
- }
- while(*b == *a);
- do
- {
- *c = rand() % 10;
- }
- while((*c == *a) || (*c == *b));
- do
- {
- *d = rand() % 10;
- }
- while((*d == *a) || (*d == *b) || (*d == *c));
- }
- void input_abcd(int *a, int *b, int *c, int *d)
- {
- char buf[10];
- printf("please input abcd:");
- fgets(buf, 10, stdin);
- sscanf(buf, "%c%c%c%c", (char *)a, (char *)b, (char *)c, (char *)d);
- *a -= '0';
- *b -= '0';
- *c -= '0';
- *d -= '0';
- }
- int main(void)
- {
- int a = 0, b = 0, c = 0, d = 0;
- int ua = 0, ub = 0, uc = 0, ud = 0;
- int resualt_a = 0, resualt_b = 0;
- int chance = 8; // 8次机会
- srand((unsigned int)time(NULL));
- generate_abcd(&a, &b, &c, &d);
- while(chance)
- {
- //printf("%d %d %d %d\n", a, b, c, d); // 此代码用来作弊^_^
- resualt_a = 0;
- resualt_b = 0;
- printf("还有%d次机会\n", chance);
- input_abcd(&ua, &ub, &uc, &ud);
- if(a == ua) resualt_a++;
- if(b == ub) resualt_a++;
- if(c == uc) resualt_a++;
- if(d == ud) resualt_a++;
- if(resualt_a == 4)
- {
- printf("4A0B\n");
- printf("恭喜你,猜对了^_^\n");
- return 0;
- }
- if(a == ub) resualt_b++;
- if(a == uc) resualt_b++;
- if(a == ud) resualt_b++;
- if(b == ua) resualt_b++;
- if(b == uc) resualt_b++;
- if(b == ud) resualt_b++;
- if(c == ua) resualt_b++;
- if(c == ub) resualt_b++;
- if(c == ud) resualt_b++;
- if(d == ua) resualt_b++;
- if(d == ub) resualt_b++;
- if(d == uc) resualt_b++;
- printf("%dA%dB\n", resualt_a, resualt_b);
- chance--;
- }
- printf("很遗憾,答案是:\n");
- printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
- return 0;
- }
复制代码 |
|