我们C语言任务是“其中一人输入一个数字,另外一个通过每次猜测数字然后计算机给出的提示猜出最终答案”
有带佬知道怎么做嘛😭
#include <stdio.h>
#include <stdlib.h>
#include <time.h>//time系统时间头文件
void menu()//创建游戏菜单
{
printf("**************\n");
printf("****1.play****\n");
printf("****0.exit****\n");
printf("**************\n");
}
void playgame()
{
int magic=rand()%100+1;//随机一个1-100的整数
int guess;
int counter=0;//计数器,初始为0
while(1)
{
do{
printf("请猜一个数字:");//提示用户进行猜数字游戏,输入一个整数
scanf("%d",&guess);
counter++;
if(guess>magic)//根据比较结果,提示用户高了,低了,或是猜对了.
printf("太大了!\n");
else if(guess<magic)
printf("太小了!\n");
else
printf("right!\n");
}while(guess!=magic);
printf("您一共猜了%d次,你真是太棒了!\n",counter);
}
}
int main()
{
int input=0;
srand((unsigned int)time(0));//time(0)得到的是时间戳,对应头文件#include <time.h>
do{
menu();
scanf("%d",&input);
switch(input)
{
case 1:
playgame();
break;
case 0:
exit(0);
break;
default:
printf("输入错误!\n");
}
}while(input);
return 0;
}
void outdegree(MGraph G)
{
for(int i = 0; i < G.vexnum; i++)
{
int c = 0;
for(int j = 0; j < G.vexnum; j++)
if(G.arcs[i][j] == 1)
c++;
printf("%c:%d\n",G.vexs[i],c);
}
}
这个任务可以使用二分查找算法来实现。具体步骤如下:
让另一个人输入一个数字,作为猜测的答案。
计算机在一定范围内随机生成一个数字,作为第一次猜测的数字。
根据猜测的数字和答案的大小关系,给出提示。如果猜测的数字比答案小,提示“猜小了”,如果猜测的数字比答案大,提示“猜大了”。如果猜对了,提示“猜对了”。
根据提示,调整猜测的范围,再次随机生成一个数字,继续猜测。
重复步骤3和4,直到猜中答案。
下面是示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int answer, guess, min_num = 1, max_num = 100, count = 0;
srand(time(NULL)); // 设置随机数种子
printf("请输入一个数字作为答案:");
scanf("%d", &answer);
do {
// 生成猜测的数字
guess = rand() % (max_num - min_num + 1) + min_num;
printf("第%d次猜测:%d\n", ++count, guess);
if (guess == answer) {
printf("猜对了!\n");
break;
} else if (guess < answer) {
printf("猜小了!\n");
min_num = guess + 1;
} else {
printf("猜大了!\n");
max_num = guess - 1;
}
} while (1);
return 0;
}