Test.c5

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

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define N 9    //方便更改数组长度
main(){
	int arr[N],tep;
	printf("请输入你的数组:\n");
	for (int i = 0; i < N; i++){
		printf("arr[%d]=",i);
		scanf("%d", &arr[i]);
		printf("\n");
	}
	printf("请输入你要查的数:");
	scanf("%d", &tep);
	int left = 0;
	int right = N;
	
	int i;
	while (left <= right){   //left左边的下标,right右边的下标
		i = (left + right) / 2; //i为中间的下标
		if (arr[i] > tep){
			right = i - 1;
		}
		else if (arr[i] < tep){
			left = i + 1;
		}
		else
			break;

	}
	if (left <= right){
		printf("找到了,下标是%d\n", i);
	}
	else
		return -1;
	system("pause");
}

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

最多输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
main(){
	char str[] = "hello"; //首先定义初始密码
	char str1[10];   //定义用户要输入的密码
	int i = 0;   //i的作用是记录用户输入错误三次后需要退出程序
	
	while (1){
		printf("请输入你的密码:");
		gets(str1);
		if (strcmp(str, str1)==0){  //strcmp 字符串比较函数
			printf("登陆成功\n");
			break;
		}
		else{			
			i++;
			if (i == 3){
				printf("你已经失忆了,再见\n");
				break;
			}
			printf("密码错误,请重新输入\n");
		}

	}
	system("pause");
	return 0;

}

3.编写一个程序,可以一直接收键盘字符

如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main(){
	char i;
	while (1){
		i=getchar();
		if (i >= 65 && i <= 90){
			printf("%c\n", i + 32);
		}
		else if (i >= 97 && i <= 122){
			printf("%c\n", i - 32);
		}
		else{
			printf("\n");
		}
	}
	system("pause");
	return 0;

}

由于忘了字符的输入,所以手动添加
一、输入数字可以用scanf输入。
如果输入的是整型数据,可以用
int a;
scanf("%d",&a);
实现把输入的数字赋值给a的效果。
类似的,如果是float, double,short,long等类型的数据,那么就要把变量定义成对应的类型,然后使用各自的格式字符%f,%lf,%hd,%ld等进行输入。

二、输入单个字符。
输入单个字符可以用以下两种函数。
定义char c;
1 scanf("%c", &c);
这种方法和输入数字是类似的,%c仅读入一个字符,并赋值给c。
2 c = getchar();
getchar函数的功能就是读入一个字符,并以返回值形式返回。

三、输入一串字符(以空白字符分隔)。
可以用scanf的%s格式。
char str[100];//空间要定义足够大
scanf("%s", str);//将字符串读入并存在str中

四,读入一行数据。
可以用gets函数。gets的功能就是读入一整行数据,以换行符为结束。
char str[100];//同样要足够大的空间
gets(str);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值