日常练习。

1.猜数字游戏。
电脑所及给一个1到100的数。你可以在其中猜一个数,会提示比你猜的数大还是小。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//菜单
int menu(){
	int a;
	printf("____________________________\n");
	printf("1.开始游戏。\n");
	printf("2.退出游戏。\n");
	printf("____________________________\n");
	printf("请输入你的选项:");
	scanf("%d", &a);
	return a;
}
//游戏过程
void game(){
	int num;
	int b = rand() % 100 + 1;
	while (1){
		printf("请任意输入一个1-100的数:");
		scanf("%d", &num);
		if (num > b){
			printf("你输入的数过大。\n");
		}
		else if (num < b){
			printf("你输入的数过小。\n");
		}
		else{
			printf("你猜对了!\n");
			break;
		}
	}
}
int main(){
	srand((unsigned int)time(0));
	while (1){
		int choice = menu();
		if (choice == 1){
			game();
		}
		else if (choice == 2){
			printf("欢迎你的下次使用过!\n");
			break;
		}
		else{
			printf("输入错误!请重新输入!\n");
		}
	}
	system("pause");
	return 0;
}

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

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 10
//输入要查找的数组
void in(int a[],int n){
	printf("请输入一个从小到大整形数组:");
	for (int i = 0; i < n; i++){
		scanf("%d", &a[i]);
	}
}
//折半法查找所要找的数
int BinaryFind(int a[], int size, int to_find){
	int left = 0;
	int right = size - 1;
	while (left<=right)
	{
		int mid = (left + right) / 2;
		if (to_find>a[mid])
		{
			left = mid + 1;
		}
		else if (to_find<a[mid])
		{
			right = mid - 1;
		}
		else
		{
			return mid;
			break;
		}
	}
	return -1;
}
int main(){
	int a[N], n, to_find;
	printf("请输入你要查找数组的长度:");
	scanf("%d", &n);
	in(a, n);
	printf("请输入一个你要查找的数:");
	scanf("%d", &to_find);
	int size = sizeof(a) / sizeof(a[0]);
	int i = BinaryFind(a, size, to_find);
	if (i == -1){
		printf("没找到!\n");
	}
	else{
		printf("找到了,数组下标为:%d\n", i);
	}
	system("pause");
	return 0;
}

3.编写代码模拟三次密码输入的场景。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
	char str1[100] = { 0 };
	char str2 []= "123456";
	for (int i = 1; i <= 3; i++){
		printf("请输入密码:");
		scanf("%s", str1);
		int a = strcmp(str1, str2);
		if (a == 0){
			printf("登陆成功。\n");
			break;
		}
		else{
			printf("密码错误,你还有%d次机会。\n", 3 - i);
		}
	}
	system("pause");
	return 0;
}

.4.编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
我用让其输入字符串来实现可以一直输入。

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100

//将输入的字符串按规则存入如另一字符串
int change(char str1[], int num1, char str2[]){
	int j = 0;
	for (int i = 0; i < num1; i++){
	    if (str1[i] >= 'A' && str1[i] <= 'Z'){
			str2[j] = str1[i] + 32;
			j++;
		}
		else	 if (str1[i] >= 'a' && str1[i] <='z'){
			str2[j] = str1[i] - 32;
			j++;
		}
		else if (str1[i] >= '0'&& str1[i] <= '9'){
			continue;
		}
		else{
			str2[j] = str1[i];
			j++;
		}
	}
	return j;
}
int main(){
	char str1[N];
	char str2[N];
	printf("请输入字符串:");
	scanf("%s", str1);
	int num1 = strlen(str1);
	int num2 = change(str1, num1, str2);
	printf("按照规则变化的字符串为:");
	for (int i = 0; i <= num2; i++){
		printf("%c", str2[i]);
	}
	printf("\n");
	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值