有个好问题,帮忙分析一下!!!
#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;
}
这个程序有点瑕疵,运行的准确率有点低啊,帮忙改一下,悉心听取!