1.写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
2.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
3.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
1,写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
int left = 0;
int right = sizeof(arr)/sizeof(arr[0])-1;
int n;
printf("请输入要查找的数:");
scanf("%d", &n);
while (left <= right){
int middle = (left + right) / 2;
if (n == arr[middle]) {
printf("找到了,");
printf("下标为%d\n", middle);
break;
}
else if (n > arr[middle]) {
left = middle + 1;
}
else right = middle - 1;
}
printf("未找到!\n");
system("pause");
return -1;
}
2.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char str[] = "123456";
char arr[10];
int i;
for (i = 1; i<4; i++){
printf("passward:");
scanf("%s", &arr);
if (strcmp(arr, "123456")==0){
printf("登陆成功\n");
break;
}else{
printf("密码错误,请重新输入,你还有%d次机会\n",3-i);
if (i == 3)
printf("退出登录!\n");
}
}
system("pause");
return 0;
}
3.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
char bigLetter(char x){
return x >= 'A'&&x <= 'Z';
}
char smallLetter(char x){
return x >= 'a'&&x <= 'z';
}
char number(char x){
if (x >= '0'&&x <= '9');
return 0;
}
char other(char x){
return x;
}
int main(){
while (1){
char x = getchar();
if (bigLetter(x)){
putchar(x + 32);
}
else if (smallLetter(x)){
putchar(x - 32);
}
else if(number(x)){
printf("");//do nothing
}else{
putchar(other(x));
}
}
system("pause");
return 0;
}