学习不易,需要坚持。
1.写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
2.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
3.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
1.
//一个重要的查找算法:折半查找
//写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
#include <stdio.h>
int Fold_half_search(int arr[], int sz, int key)
{
int left = 0 ;
int right = sz - 1 ;
int mid = 0 ; //中间值
while(left <= right)
{
mid = ( left + right ) / 2 ;
//查找成功
if( key == arr[mid] )
{
return mid ;
}
//若查找失败,则改变左右指针继续查找
if( arr[mid] < key )
{
left = mid + 1 ;
}
if( arr[mid] > key )
{
right = mid - 1 ;
}
}
return -1 ;
}
void Print(int arr[], int sz)
{
int i = 0 ;
for(i=0; i<sz; i++)
{
printf("%d ", arr[i]) ;
}
printf("\n") ;
}
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9} ;
int ret = 0 ;
int input = 0 ;//需要查找的数
int flag = 0 ; //标志
int size = sizeof(arr) / sizeof(arr[0]) ;
printf("/******折半查找*****/\n") ;
Print(arr, size) ;
while( flag < 2 )
{
printf("请输入你想要查找的数字: ") ;
scanf("%d", &input) ;
ret = Fold_half_search(arr, size, input) ;
printf("下标为:arr[%d]\n", ret) ;
flag++ ;
}
return 0 ;
}
运行结果:
2.
//编写代码模拟三次密码输入的场景。
//最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
#include <stdio.h>
#include <string.h>
void Enter()
{
int count = 0 ; //记录输入次数
char name[] = "1016705287" ;
char psw[] = "xagydx" ;
char name_input[20] = { 0 } ;
char psw_input[20] = { 0 } ;
while ( count < 3 )
{
printf("请输入QQ账号: ") ;
scanf("%s", name_input) ;
printf("请输入QQ密码: ") ;
scanf("%s", psw_input) ;
if( ( strcmp(name, name_input) == 0 ) && (strcmp(psw, psw_input) == 0 ) )
{
printf("密码输入正确!\n") ;
break ;
}
else
{
printf("账号或密码输入错误,请重新输入!\n") ;
}
count ++ ;
}
}
int main()
{
Enter() ;
return 0 ;
}
运行结果:
3.
//编写一个程序,可以一直接收键盘字符,
//如果是小写字符就输出对应的大写字符,
//如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
#include <stdio.h>
char Judge(char ch)
{
//如果输入的是小写字母
if( ch >= 97 && ch <= 122 )
{
printf("处理后的字符:%c", ch - 32) ;
}
//如果接收的是大写字母
if( ch >=65 && ch <= 90 )
{
printf("处理后的字符:%c", ch + 32) ;
}
//如果接收的是数字,则不输出
if( ch > 48 && ch <= 57 )
{
printf("检测到数字\n") ;
return ;
}
}
int main()
{
int count = 0 ;
char ch = 0 ;
while(count < 3)
{
printf("请输入一个字符: ") ;
scanf("%c", &ch) ;
Judge(ch) ; //判断函数
while ((ch = getchar()) != EOF && ch != '\n'); //清除缓冲区
printf("\n") ;
count++ ;
}
return 0 ;
}
运行结果: