闲暇之余

来源:互联网 发布:西乡淘宝美工培训 编辑:程序博客网 时间:2024/06/10 01:36

     最近学习压力比较大,真的是身心俱疲,但在闲暇之余还是要敲几行代码不然就生疏了,下面就是我这几天的成果,如果大家有什么建议的话就留言给我吧!


1.猜数字游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*****************************\n");
printf("****1.开始         0.退出****\n");
printf("*****************************\n");
}
void game()
{
int input=0;
int num=rand()%100+1;
srand((unsigned int)time( NULL ));
while(1)
{
printf("请猜数:");
scanf("%d",&input);
if(num==input)
{
printf("猜对了\n");
break;
}
if(num<input)
{
printf("猜大了\n");
}
if(num>input)
{
printf("猜小了\n");
}
}
}
int main()
{
int input=0;//选择是否开始游戏的
srand( (unsigned int)time( NULL ) );
do
{
menu();
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
}
while(input);
system("pause");
return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找) 
#include <stdio.h>
#include<windows.h>
int binary_search(int arr[],int k,int sz)
{
int left=0;
int right=sz-1;
while(left<=right)
{
int mid=left+(right-left)/2;
if(arr[mid]==k)
{
return mid;
}
if(arr[mid]<k)
{
left=mid++;
}
if(arr[mid]>k)
{
right=mid--;
}
}
return -1;


}
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int key=8;
int sz=sizeof(arr)/sizeof(arr[0]);
int ret=binary_search(arr,key,sz);
if(ret==-1)
printf("找不到\n");
else
printf("找到了,mid=%d\n",ret);

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

#include <stdio.h>
#include<string.h>
int main()
{
char arr[]="123456";
int i=0;
char input[10]={0};
for(i=0;i<3;i++)
{
printf("请输入密码:");
scanf("%s",input);
if(strcmp(input,arr)==0)
{
break;
}

if(strcmp(input,arr)!=0)
printf("密码错误\n");

}
if(i==3)
printf("退出登录\n");
if(i<3)
printf("登录成功\n");
system("pause");
return 0;
}
4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
#include<stdio.h>
int main()
{
char X;
scanf("%c",&X);

if((X>=65)&&(X<=90))
{
X=X+32;
printf("%c",X);
}
if((X>=97)&&(X<=122))
{
X=X-32;
printf("%c",X);
}
if((X>=48)&&(X<=57))
;
return 0;
}