#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int is_in(char *a,int n);
int main()
{
int i,num=4;
char *ans=NULL,*usr=NULL,tmp,col[2]={0,0};
char chk[10][2]={{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}};
long tt;
srand(time(&tt)%60);
ans=(char *)malloc(sizeof(char)*num);
tmp=rand()%10;
ans[0]=48+tmp;
chk[tmp][0]=1;
chk[tmp][1]=0;
for(i=1;i<num;i++){
do{
tmp=rand()%10;
}while(chk[tmp][0]==1);
ans[i]=48+tmp;
chk[tmp][0]=1;
chk[tmp][1]=i;
}
usr=(char *)malloc(sizeof(char)*(num+1));
printf("%d位數\n",num);
do{
col[0]=0;
col[1]=0;
printf("猜:");
scanf("%s",usr);
if(is_in(usr,num)){
printf("數字不可重覆!\n");
continue;
}
printf("\n結果:");
for(i=0;i<num;i++){
tmp=usr[i]-48;
if(chk[tmp][0]==1){
if(chk[tmp][1]==i){
col[0]++;
printf("[%c]",usr[i]);
}else{
col[1]++;
printf("%c",usr[i]);
}
}else{
printf("%c",usr[i]);
}
}
printf(" (%dA%dB)\n",col[0],col[1]);
}while(col[0]!=num);
system("pause");
return 0;
}
int is_in(char *a,int n){
char chk[10]={0,0,0,0,0,0,0,0,0,0};
int i,tmp;
for(i=0;i<n;i++){
tmp=a[i]-48;
if(chk[tmp]!=1){
chk[tmp]=1;
}else{
return 1;
}
}
return 0;
}
沒有留言:
張貼留言