C语言基础训练题(六)

C语言基础训练题

  1. 完成猜数字游戏。

  2. 写代码可以在整型有序数组中查找想要的数字,
    找到了返回下标,找不到返回-1.(折半查找)

  3. 编写代码模拟三次密码输入的场景。
    最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
    可以重新输入,最多输入三次。三次均错,则提示退出程序。

  4. 编写一个程序,可以一直接收键盘字符,
    如果是小写字符就输出对应的大写字符,
    如果接收的是大写字符,就输出对应的小写字符,
    如果是数字不输出。

1. 完成猜数字游戏。
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
						
int menu()
{
	int choice = 0;
	printf("--------------\n");
	printf("欢迎来到猜数字游戏!\n");
	printf("1.开始游戏\n");
	printf("0.退出游戏\n");	
	printf("请输入你的选择:");
	printf("--------------\n");
	scanf("%d", &choice);
	return choice;
}
void game()
{
	//	生成一个随机数
	int target = rand() % 100 + 1;
	while (1) {
		//	提示用户
		int num = 0;
		printf("请输入你要猜的数字:");
		scanf("%d", &num);
		//	判断
		if (num < target)
		{
			printf("你输入的低了!\n");
		}
		else if (num > target)
		{
			printf("你输入的高了!\n");
		}
		else
		{
			printf("猜对了!!!");
			break;
		}
	}	
}

int main4()
{
	// time()得到一个时间戳
	srand(time(0));
	while (1)
	{
		int choice = menu();
		if (choice == 1)
		{
			game();
		}
		else if (choice == 0)
		{
			printf("游戏结束!Bye!!!\n");
			break;
		}
		else
		{
			printf("你的输入有误.\n");
		}
	}
	return 0;
}
2. 写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
int search(int arr[], int size, int target)
{
	int l = 0, h = size - 1;
	int m = 0;
	while (l <= h)
	{
		m = (l + h) / 2;
		if (arr[m] > target)
			h = m - 1;
		else if (arr[m] < target)
			l = m + 1;
		else
			return m;
	}
	return -1;
}
3. 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。
void sign_in(int password)
{
	int in_password = 0, i = 0;
	scanf("请输入密码:%d", &in_password);
	while (i < 3)
	{
		scanf("%d", &in_password);
		if (in_password == password)
		{
			printf("登录成功\n");
			break;
		}		
		else
			printf("密码错误,请重新输入, (你还有%d次机会):", 3 - i - 1);
		i++;
	}		
}
4. 编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
void s_gets()
{
	char ch = ' ';
	while (1)
	{
		ch = getchar();
		if (ch >= 'a' && ch <= 'z')
			printf("你输入的是小写字符,转为大写字符为:%c\n", ch - 32);
		else if (ch >= 'A' && ch <= 'Z')
			printf("你输入的是大写字符,转为小写字符为:%c\n", ch + 32);
		else
			continue;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值