一个猜数字游戏代码的改进

题目:猜一个每位各不相同的四位数,输入一个数字,A表示与谜底数字相同数字的个数,B表示与谜底数字相同且所处的位置也相同的数字个数。

原始代码:

#include<iostream>
using namespace std;
const int number=3729;
int main()
{
	int answer,num,awei[4],nwei[4];
	int i,j;
	int a=0,b=0;
	answer=number;
	cout<<"请输入每位各不相同的4位数:"<<endl;
	for(i=0;i<4;i++)
	{
		awei[i]=answer%10;
		answer/=10;
	}
	while(a!=4)
	{
		cin>>num;
		for(i=0;i<4;i++)
		{
			nwei[i]=num%10;
			num/=10;
		}
		for(i=0,a=0,b=0;i<4;i++)
		{
			for(j=0;j<4;j++)
			{
				if(i==j)
				{
					if(nwei[i]==awei[j])
						a++;
				}
				else
				{
					if(nwei[i]==awei[j])
						b++;
				}
			}
		}
		cout<<"A:"<<a<<'\t'<<"B:"<<b<<endl;
	}
	system("PAUSE");
	return 0;
}


改进后代码

#include<iostream>
using namespace std;
const int number=3729;
int main()
{
	int answer,num,awei[10]={0};   //将数组各元素初始化为0
	int a=0,b=0;
	answer=number;
	cout<<"请输入每位各不相同的4位数:"<<endl;
	for(int i=1;i<=4;i++)
	{
		awei[answer%10]=i;    //将对应数组索引位的值改成对应数字所在的位数,比如5476,数字6位于第一位(从右向左),则数组中awei[6]=1
		answer/=10;
	}
	while(a!=4)
	{  
		a=0;
		b=0;
		cin>>num;
		for(int i=1;i<=4;i++)
		{
			if(awei[num%10])
			{
				if(awei[num%10]==i)
				{
					a++;
				}
				b++;
			}
			num/=10;
		}
		
		cout<<"A:"<<a<<'\t'<<"B:"<<b<<endl;
	}
	system("PAUSE");
	return 0;
}



 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,让我来解释一下如何用 C 语言写一个猜数字小游戏。 1. 首先,你需要定义一个要猜的数字。你可以用随机数生成器来生成一个 1 到 100 之间的数字,或者手动定义一个数字。 2. 接下来,你需要编写一个循环,让玩家能够不断猜测数字,直到猜中为止。可以使用 while 循环,让游戏能够一直运行,直到玩家猜中数字。 3. 在每次循环中,你需要让玩家输入一个数字。可以使用 scanf 函数来读取玩家输入的数字。 4. 然后,你需要比较玩家猜的数字和要猜的数字,判断猜测是否正确。如果猜测正确,就输出一个提示信息,并退出游戏;如果猜测错误,就输出一个错误提示信息,并提示玩家再次猜测。 下面是一份示例代码,你可以参考一下: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int number, guess, count = 0; srand(time(NULL)); number = rand() % 100 + 1; //生成 1 到 100 之间的随机数 printf("猜数字游戏开始!\n"); printf("猜一个 1 到 100 之间的数字。\n"); do { count++; printf("请输入你的猜测(第 %d 次):", count); scanf("%d", &guess); if (guess > number) { printf("猜的数字太大了!请再次猜测。\n"); } else if (guess < number) { printf("猜的数字太小了!请再次猜测。\n"); } else { printf("恭喜你,猜对了!你一共猜了 %d 次。\n", count); break; } } while (1); return 0; } ``` 希望这可以帮助到你! ### 回答2: 猜数字是一款经典的游戏,可以用C语言来实现。下面是一个用C语言编写的简单猜数字小游戏。 ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int number, guess, attempts = 0; srand(time(0)); number = rand() % 100 + 1; printf("欢迎来到猜数字游戏!\n"); do { printf("请输入一个1到100之间的整数:"); scanf("%d", &guess); attempts++; if(guess < number) { printf("猜的数字太小了!\n"); } else if(guess > number) { printf("猜的数字太大了!\n"); } else { printf("恭喜你猜对了!你一共猜了%d次。\n", attempts); } } while(guess != number); return 0; } ``` 这个程序首先生成了一个1到100的随机整数作为答案。然后,在一个循环中,用户可以输入一个猜测的数字。程序会根据用户的猜测给出相应的提示,直到用户猜对为止。 程序会统计用户猜测的次数,并在最后给出游戏结束的恭喜信息。 这是一个简单的猜数字小游戏的C语言实现。你可以运行这段代码来体验这个游戏并对其进行进一步的修改和改进。 ### 回答3: 猜数字小游戏是一种经典的游戏,常见于计算机编程课程中。下面我将以300字的篇幅介绍用C语言编写一个简单的猜数字小游戏。 首先,我们需要初始化一个随机生成的数字作为答案,这可以通过使用rand()函数配合时间函数time(NULL)来实现。比如,我们可以使用下列代码生成一个1到100之间的随机数字: ``` srand(time(NULL)); int answer = rand() % 100 + 1; ``` 然后,我们可以设置一个循环,让玩家可以多次猜数字,直到猜对为止。在每一次循环中,我们可以提示玩家输入一个数字,并将其与答案进行比较。根据比较的结果,我们可以给予相应的提示,告诉玩家是猜得太大了还是猜得太小了。当玩家猜对时,我们可以跳出循环并告诉玩家猜对了。下面是一个简单的示例代码: ``` int guess; while(1) { printf("请输入一个1到100之间的数字:"); scanf("%d", &guess); if(guess > answer) { printf("猜得太大了!\n"); } else if(guess < answer) { printf("猜得太小了!\n"); } else { printf("恭喜你,猜对了!\n"); break; } } ``` 最后,我们可以在主函数中调用这段代码,以便玩家可以开始游戏: ``` int main() { srand(time(NULL)); int answer = rand() % 100 + 1; int guess; while(1) { printf("请输入一个1到100之间的数字:"); scanf("%d", &guess); if(guess > answer) { printf("猜得太大了!\n"); } else if(guess < answer) { printf("猜得太小了!\n"); } else { printf("恭喜你,猜对了!\n"); break; } } return 0; } ``` 以上就是用C语言编写一个简单猜数字小游戏的内容,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值