C语言程序会的帮个忙,在线等,谢谢了!

帮忙写出下面这个程序的:一·题目阐述及设计思路二·主要知识点三·设计优点四·设计缺点小弟我就这么点分,全用上了会的帮个忙,不胜感激!以下是程序:#include<stdi... 帮忙写出下面这个程序的:
一·题目阐述及设计思路
二·主要知识点
三·设计优点
四·设计缺点
小弟我就这么点分,全用上了会的帮个忙,不胜感激!
以下是程序:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int main(void)
{
int i=0,j=0,p[4],a,n=0,count=0,b,k=0,color=6,biaozhi=0,kk;
char flag='Y';
char dir,*pp;
char ss[5];
printf(" ggggg a m m eeeeeeeee\n");
printf(" gg gg a a m*m m*m ee\n");
printf(" g aaaaa m mm m eeeeeeeee\n");
printf(" gg ggg aa aa m m ee\n");
printf(" gggg g aaa aaa mmm mmm eeeeeeeee\n\n");
printf("\n\n");
printf(" **************************************************************\n");
printf(" * 游戏规则 *\n");
printf(" * 电脑在后台将随机产生一个四位数(各个位均不相同,且千位不为0)*\n");
printf(" * 由玩家来猜,玩家每次输入数字后将给出相应的提示 (例如:3A1B)*\n");
printf(" * [A]代表猜对的数字个数但不要求顺序也正确 *\n");
printf(" * [B]代表在对应位置上数字也正确的数字个数 *\n");
printf(" **************************************************************\n");
printf(" * 版权所有 侵权必究 *\n");
printf(" * Copyright(R) 1997-2007 *\n");
printf(" **************************************************************\n\n\n\n\n\n");
printf("Press [ENTER] to start the game...");
getchar();

while(flag=='Y')
{
srand( (unsigned)time( NULL ) );

printf("\n\n *************************你只有八次机会哦~~*************************\n");
printf(" ");
for(k=0;k<4;k++)
{
p[k]=rand()%10;
if(p[0]==0)k--;
if(k>0)
for(j=0;j<k;j++)
if(p[k]==p[j])k--;
}
count=0;
while(count!=8)
{
i=0;j=0;

printf("请输入四位数字:");
gets(ss); pp=ss;
for(kk=0;*pp!='\0';kk++) pp++;
if(kk!=4) biaozhi=1;else biaozhi=0;
for(kk=0;kk<4;kk++) if((*(ss+kk)<48)||(*(ss+kk))>=58){biaozhi=1;break;}
while (biaozhi)
{
printf("****输错啦吧?难道你想忽悠老夫??\n");
printf("请输入四位数字:");
gets(ss); pp=ss;
for(kk=0;*pp!='\0';kk++) pp++;
if(kk!=4) biaozhi=1;else biaozhi=0;
for(kk=0;kk<4;kk++) if((*(ss+kk)<48)||(*(ss+kk))>=58)biaozhi=1;
}
b=(*ss-48)*1000+(*(ss+1)-48)*100+(*(ss+2)-48)*10+(*(ss+3)-48);
a=b;
for(k=3;k>=0;k--)
{
if((a%10)==p[k])
j++;
a/=10;
}
for(k=3;k>=0;k--)
{
a=b;
for(n=0;n<4;n++)
{
if(p[k]==(a%10))
i++;
a/=10;
}
}
if(i==4&&j==4)
{
printf("猪头,恭喜你答对了~~你一共用了%d次\n",count+1);
break;
}
else if ((count+1)!=8)
printf("提示信息:%dA%dB ",i,j);
count++;
if(count==8)
{
printf("\n笨的跟猪一样!正确答案是:");
for(k=0;k<=3;k++)printf("%d",p[k]);
}
}
printf("\n再来一次(Y/N)?");
flag=getchar();
getchar();
flag=toupper(flag);
}
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n 谢谢使用!再见! \n\n\n\n\n\n\n\n\n\n\n\nPress [Enter] To Exit!");
getchar();
return 0;
}
全了,程序都在这
展开
 我来答
我是菜狗
2008-06-22 · TA获得超过118个赞
知道小有建树答主
回答量:272
采纳率:0%
帮助的人:0
展开全部
while(count!=8)
{
i=0;j=0;

printf("请输入四位数字:");
gets(ss); pp=ss; --输入字符如果用数组来装比较好
for(kk=0;*pp!='\0';kk++) pp++;控制你到底输入多少个
if(kk!=4) biaozhi=1;else biaozhi=0; 如果你输入不够4个
for(kk=0;kk<4;kk++) if((*(ss+kk)<48)||(*(ss+kk))>=58)控制你有没{biaozhi=1;break;} 有输入超过1-9的数~他只随机生成1-9的数
while (biaozhi)上面如果你输入超过9的数要你重输入
{
printf("****输错啦吧?难道你想忽悠老夫??\n");
printf("请输入四位数字:");
gets(ss); pp=ss;
for(kk=0;*pp!='\0';kk++) pp++;
if(kk!=4) biaozhi=1;else biaozhi=0;
for(kk=0;kk<4;kk++) if((*(ss+kk)<48)||(*(ss+kk))>=58)biaozhi=1;
}
b=(*ss-48)*1000+(*(ss+1)-48)*100+(*(ss+2)-48)*10+(*(ss+3)-48);
a=b; 就是这里代码比较差~分解来~分解去~用int数组就没有那么麻烦
for(k=3;k>=0;k--)
{
if((a%10)==p[k]) 分解出位数
j++; 如果成立J++求A 和B
a/=10;
}
for(k=3;k>=0;k--)
{
a=b;
for(n=0;n<4;n++)
{
if(p[k]==(a%10)) 求A 和B代表猜对的数字个数但不要求顺序也正确
i++;
a/=10;
}
}
设计优点:没什么优点就是好笑
设计缺点:代码差~就是一托屎
暗叹
2008-06-22 · TA获得超过815个赞
知道小有建树答主
回答量:1233
采纳率:0%
帮助的人:429万
展开全部
全了没
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式