#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void game ()
{
int num = 0;
int result = rand () % 100 + 1;
//printf("%d\n",result);
printf("猜一个1-100之间的整数:\n");
while (1)
{
scanf("%d",&num);
if (num > result)
{
printf("猜大了!\n");
}
else if (num < result)
{
printf("猜小了!\n");
}
else
{
printf("猜对了!\n");
break;
}
}
}
int main ()
{
int option = 0;
srand (time (NULL));
printf("猜数字游戏\n");
while ( 1 )
{
printf("------------------\n");
printf("--- 1.开始游戏 ---\n");
printf("--- 0.退出游戏 ---\n");
printf("------------------\n");
scanf("%d",&option);
if (option == 1)
{
game();
}
else if (option == 0)
{
break;
}
}
return 0;
}
写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1(折半查找)
#include <stdio.h>
int lookup (int a[], int n, int s)
{
int left = 0;
int right = n - 1;
int mid = 0;
while (left <= right)
{
mid = (left + right) / 2;
if (s < a[mid])
{
right = mid - 1;
}
else if (s > a[mid])
{
left = mid + 1;
}
else
{
return mid;
}
}
return -1;
}
int main ()
{
int arr[1000] = {0};
int i = 0;
int search = 0;
int result = 0;
//printf("%d\n%d\n",search,mid);
for (i; i < 1000; i++)
{
arr[i] = 2 * i;
}
printf("请输入要查找的整数:\n");
scanf("%d",&search);
result = lookup(arr, sizeof(arr) / sizeof(arr[0]), search);
printf("结果是%d\n",result);
return 0;
}