1.完成猜数字游戏
int GameInit()
{
int choose = 0;
printf("1.开始游戏\n");
printf("2.退出游戏\n");
printf("输入数字(1 or 2) : ");
scanf("%d" , &choose);
return choose;
}
void GameLoop()
{
int guess = 0; //输入的数
srand((unsigned int)time(0)); //设置随机数种子
int randomNum = rand() % 100 + 1; //生成一个 1~100的随机数
for (int i = 1; i <= 10; i++)
{
printf("输入第%d次要猜的数 : " , i);
scanf("%d", &guess);
if (guess > randomNum)
{
printf("大了\n");
}
else if (guess < randomNum)
{
printf("小了\n");
}
else
{
printf("猜中了\n");
return ;
}
}
printf("十次都没有猜中\n");
}
void GuessNum()
{
if (GameInit() == 1) //开始游戏
{
GameLoop();
}
else //退出游戏
{
return;
}
}
int main()
{
GuessNum();
system("pause");
return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
//int* arr : 待查数组
//int len : 数组长度
//int num : 待查数字
int BinSearch(int* arr , int len , int num)
{
int left = 0; //数组最左边下标
int right = len - 1; //数组最右边下标
int mid = 0; //数组中间下标
while (left <= right)
{
mid = (left + right) / 2; //求中间下标
if (arr[mid] > num)
{
right = mid - 1; //缩小范围
}
else if (arr[mid] < num)
{
left = mid + 1; //缩小范围
}
else
{
return mid; //查到
}
}
return -1;
}
3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序
void Login()
{
char pwd[1024] = "";
for (int i = 0; i < 3; i++)
{
printf("输入密码 : ");
scanf("%s", pwd);
if (strcmp(pwd, "123456") == 0)
{
printf("登录成功!\n");
return;
}
}
printf("密码错误三次 , 退出程序\n");
}
4.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
void UpperletterLowLetterConvert()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (ch >= 'a' && ch <= 'z')
{
putchar(ch - 32);
}
if (ch >= 'A' && ch <= 'Z')
{
putchar(ch + 32);
}
}
}