有兴趣的来猜一下,等待您的指点
这是个猜数问题,电脑随机出一组数(四个数字),你自己输入四个,和电脑的一样就赢了。 不一样电脑就提示其中有几个是对的,并且对应那几位也是对的。如果全对就赢了。但是这个程序我写的有点不对,应为输出结果有点误差,帮忙看一下!
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int woshu,
jishu,
xhwo,
xhji,
// jige,
// jiwei,
wei;
int f1=0,
f2=0,
f3=0,
f4=0,
jige=0,
jiwei=0;
srand((unsigned int)time(NULL));
jishu = rand()%9000+1000;
// printf("%d 输入一个数:",jishu); //不加这个猜的难度加大了点
scanf("%d",&woshu);
while(woshu!=jishu)
{
f1=f2=f3=f4=0;
jige=0;
jiwei=0;
for(xhwo=1000;xhwo>=1;xhwo=xhwo/10)
{
for(wei=1,xhji=1000;xhji>=1;wei++,xhji=xhji/10)
{
if(woshu/xhwo%10 == jishu/xhji%10)
{
switch(wei)
{
case 1:
if(0==f1)
{
jige++;
f1=1;
break;
}
break;
case 2:
if(0==f2)
{
jige++;
f2=1;
break;
}
break;
case 3:
if(0==f3)
{
jige++;
f3=1;
break;
}
break;
case 4:
if(0==f4)
{
jige++;
f4=1;
break;
}
break;
}
}
}
}
for(xhwo=1000;xhwo>=1;xhwo=xhwo/10)
{
if(woshu/xhwo%10==jishu/xhwo%10)
{
jiwei++;
}
}
printf("有%d个相等的\n",jige);
printf("有%d位相同\n",jiwei);
printf("在输入一个数:");
scanf("%d",&woshu);
}
printf("你赢了\n");
return 0;
}
这个程序有点瑕疵,运行的准确率有点低啊,帮忙改一下,悉心听取!