系统随机产生四个不同的有序的数字 (从小到大排列),等待用户输入猜测的结果, 用A来表示数字正确且位置正确的个数 ,用B来表示数字正确但位置不正确的个数,给八次机会,猜中则游戏成功,机会用完则游戏失败
分析:1.需要一个数组存放生成的随机数,保证数据不重复且按从小到大排列
2.需要另外一个数组存放用户的猜测结果
3.需要一个变量记录已经猜了多少次
4.将两个数组进行比较,统计A和B的个数并告知用户,方便其继续猜
5.当用户全部猜中或机会用完时,游戏结束,退出
我第一次得到题目时编写的代码如下:
#include #include #include int main(void) {
//提示游戏规则
printf("****************************************************\n");
printf("*********************游戏规则***********************\n");
printf("系统将随机生成四个不同的有序数字(按从小到大排列)\n");
printf("请输入您猜测的四个数字\n");
printf("用A表示数字正确且位置正确的个数\n");
printf("用B表示数字正确但位置不正确的个数\n");
printf("一共有八次机会\n");
printf("****************************************************\n");
//产生不同的随机数
srand(time(NULL));
int number[4];
number[0] = rand() %9+1;
number[1] = rand() %9+1;
number[2] = rand() %9+1;
number[3] = rand() %9+1;
while (number[1] == number[0]) {
number[1] = rand() %9+1;
}
while (number[2] == number[1] || number[2] == number [0]) {
number[2] = rand() %9+1;
}
while (number[3] == number[2] || number[3] == number [1] || number[3] ==number[0]) {
number[3] = rand() %9+1;
}
//这一句是为了检查数据是否重复,真正编译时应该删掉
printf("%4d %4d %4d %4d\n",number[0],number[1],number[2],number[3]);
//将随机数按从小到大排列
for(int i = 0; i < 4; i++){
for(int j = 0; j < i; j++)
{
if(nu