# include<time.h>
void menu()
{
printf("*************************\n");
printf("****1.game() 0.exit()**\n");
printf("*************************\n");
}
void game()
{
int num = 0;
int in = 0;
int n = 0;
num = rand() % 10+1;
printf("请猜数字\n");
while (n<3)
{
printf("你有三次选择的机会\n");
scanf("%d", &in);
if (num == in)
{
printf("恭喜你猜对了\n");
break;
}
else if (num > in)
{
printf("猜小了,请重新输入\n");
}
else
{
printf("猜大了,请重新输入\n");
}
n++;
}
if (n == 3)
{
printf("游戏失败\n");
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("请选择\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
exit(1);
break;
default:
printf("选择错误\n");
break;
}
} while (input);
system("pause");
return 0;
}
二、写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回 - 1.(折半查找)
int Find(int arr[], int key, int size)
{
int left = 0;
int right = size;
int mid= 0;
int i = 0;
while (left<right)
{
mid= left + ((right - left)/2);
if (arr[mid]>key)
right = mid - 1;
else if (arr[mid] < key)
left = mid + 1;
else
{
return 1;
}
}
if (left>right)
return 0;
}
int main()
{
int input = 0;
printf("请输入要查找的数字\n");
scanf("%d", &input);
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
int ret=Find(arr, input, sz);
if (1 == ret)
{
printf("找到了\n");
}
else
printf("没有找到\n");
system("pause");
return 0;
}