这个算是C的吧,你把输入改成cin 输出改成 cout 看起来就是C++了,实话说,不写成图形界面的话,这种小程序哪来的C,C++的区分?
#include
#include
#include
bool a[10] = {0};
int op(int n,int m)
{
if(n == m) return 1;
else return 0;
}
int opx (int n,int m)
{
int ans = 0;
if(n%10 == m%10) ans ++;
if(n/10 % 10 == m/10 %10) ans ++;
if(n/100% 10 == m/100 %10) ans ++;
if(n/1000 == m/1000) ans ++;
return ans;
}
int opy (int n,int m)
{
bool s[10] = {0};
int ans = 0,i,j;
int p[4],q[4];
for(i = 0;i < 4;i ++) {
p[i] = n%10;
n/= 10;
}
for(i = 0;i < 4;i ++) {
q[i] = m%10;
m /= 10;
}
for(i =0;i < 4;i ++) {
if(p[i]!= q[i]) {
for(j = 0;j < 4;j ++) {
if(p[i] == q[j] && s[p[i]] == 0) {
ans ++;
s[p[i]] = 1;
}
}
}
}
return ans;
}
int main()
{
srand(time(NULL));
int n,t,ok = 0;
t = rand()%9+1;
a[t] = 1;
n = t;
while(n<1000) {
t = rand()%10;
if(a[t]) continue;
else n = n*10 + t,a[t] = 1;
}
printf("%d\n",n);//n 就是随机出来的数
int m = 0;//m表示猜的次数
int choose;
while(ok == 0) {
m++;
if(m == 8) {
printf("你已经猜了8次了,还要继续吗?(1:yes/0:false)");
scanf("%d",&choose);
while(1) {
if(choose == 1 || choose == 0) break;
else printf("输入非法,重新输入:");
}
if(choose == 0) break;
else ;
}
else if(m==15) {
printf("你已经猜了15次啦,是不是方法不对啊?休息一会再来玩吧!\n");
break;
}
else {
printf("请输入你猜测的数字:");
scanf("%d",&choose);
int x,y;
ok = op(n,choose);
x = opx(n,choose);
y = opy(n,choose);
if(!ok) printf("%dA%dB\n",x,y);
}
}
if(ok == 1) printf("你太棒了,这个数字就是%d,你一共猜了%d次哦!\n",n,m);
printf("退出游戏成功,欢迎下次再玩!~\n");
return 0;
}