搜索
查看: 2789|回复: 8
打印 上一主题 下一主题

新人琢磨了1个星期了,才做成这样

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-27 23:22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int pdcf(int a[4])/*判断数字是否重复*/
{int i,d;
for(i=1;i<3;i++)
  
        { if (a[0]==a[i])
            {d=1;printf("有数字重复\n");break;}
         if (a[1]==a[1+i])
            {d=1;printf("有数字重复\n");break;}
         if (a[2]==a[3])
            {d=1;printf("有数字重复\n");break;}
         else d=0;}
        
return d;}
void main()
    /*猜数字*/
{int s[10]={0,1,2,3,4,5,6,7,8,9};
int c1,c2,c3,c4,c5,c6,i,j,sum,d=1,d1=1;
int m=0,b,q,md=0,t=0,c=1,num[4],a[4];
srand(time(0));/*设置随机数种子为当前时间*/
for (i=0;i<1982;i++)/*这里是人为设置的循环数,目的是打乱s[10],其实是伪随机*/
  {j=rand()%8;
     b=s[j];
     s[j]=s[j+1];
     s[j+1]=b;}
for(i=0;i<4;i++)
  { num[i]=s[i]    ;printf("%d",num[i]);}/*这里也可以去掉printf语句,我写在这里是为了自己知道出了什么数*/
      /*此时num[4]中为随机数*/
while(c){
    while(d==1)
{ printf("请输入四位数用回车结束\n");
scanf("%d",&sum);
a[0]=sum/1000%10;
a[1]=sum/100%10;
a[2]=sum/10%10;
a[3]=sum%10;
d=pdcf(a);
   
}
d=1;
int k=0,t=0,tw=0,i;
for(i=0;i<4;i++)
   for(k=0;k<4;k++)
  if (a[k]==num[i])
   if(k!=i) tw=tw+1;
   else t=t+1;
if (t==4) {printf("全对,真棒\n");break;}
printf("有%d个数位置正确,但是有%d个数位置不对\n",t,tw);
}

sleep(10000);

return 0;
}



/*问题1,还没有设置边界判断,如果输入三位数,那么会自动在前面+上0,这个怎么判断
问题2,前后两次的重复判断都有问题,这一个星期都在这上面折腾了*/

沙发
发表于 2012-10-7 12:32:12 来自手机 | 只看该作者
路过,,,,,,,,
板凳
发表于 2012-10-7 14:28:34 | 只看该作者
新人。写了这么多。
地板
发表于 2012-10-9 22:56:10 | 只看该作者
看不懂
表压力山大
5#
发表于 2012-10-13 14:42:01 | 只看该作者
这不是新人吧
6#
发表于 2012-10-16 17:35:06 | 只看该作者
哎呦,不错噢
7#
发表于 2012-10-16 19:00:41 | 只看该作者
这是新人吗?学了多久写出的呀
8#
发表于 2013-8-25 17:18:00 | 只看该作者
呃呃呃
9#
发表于 2013-10-23 16:37:28 | 只看该作者





。         
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表