0基础学编程之猜数字游戏,折半二分查找,模拟输入密码及大小写互换
2018-03-29 22:20
483 查看
1.完成猜数字游戏。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*****************\n");
printf("*****************\n");
printf("***1.PLAY GAME***\n");
printf("***0.EXIT GAME***\n");
printf("*****************\n");
printf("*****************\n");
}
void game()
{
/*生成随机数*/
int ret = 0;
int num = 0;
ret = rand()%100;
while(1)
{
printf("请猜数字:>>");
scanf("%d", &num);
if(num < ret)
{
printf("猜小了");
}
else if(num > ret)
{
printf("猜大了");
}
else
{
printf("恭喜你,猜对了");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu;
printf("请选择:>>");
scanf("%d", &input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
}
}while(input);
return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
#include<stdio.h>
int main()
{
int n=0;
int arr[]={0,1,2,3,4,5,6,7,8};
int left = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
int right = sz-1;
printf("请输入要查找的数字:\n");
scanf("%d", &n);
while(left <= right)
{
int mid=left+(right-left)/2;
if(arr[mid] == n)
{
printf("找到了%d: ", mid);
break;
}
else if(arr[mid] < n)
{
left = mid+1;
}
else
{
right = mid-1;
}
}
if(left > right)
{
printf("-1");
}
}
3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
#include<stdio.h>
int main()
{
char password[20]={0};
int i=0;
for(i=0; i<3; i++)
{
printf("请输入密码:");
scanf("%s", password);
if(strcmp(password,"123456") == 0)
{
printf("登陆成功!\n");
break;
}
else
{
printf("密码错误,请重新输入\n");
}
}
if(i==3)
{
printf("三次输入错误,退出程序!\n");
}
return 0;
}
4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a=0;
while(a!=EOF)
{
printf("请输入一个字母\n");
fflush(stdin);
scanf("%c", &a);
if((a>='A')&&(a<='Z'))
{
a+=32;
printf("%c\n", a);
}
else if((a>='a')&&(a<='z'))
{
a-=32;
printf("%c\n", a);
}
else
{
printf("");
}
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*****************\n");
printf("*****************\n");
printf("***1.PLAY GAME***\n");
printf("***0.EXIT GAME***\n");
printf("*****************\n");
printf("*****************\n");
}
void game()
{
/*生成随机数*/
int ret = 0;
int num = 0;
ret = rand()%100;
while(1)
{
printf("请猜数字:>>");
scanf("%d", &num);
if(num < ret)
{
printf("猜小了");
}
else if(num > ret)
{
printf("猜大了");
}
else
{
printf("恭喜你,猜对了");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu;
printf("请选择:>>");
scanf("%d", &input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
}
}while(input);
return 0;
}
2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
#include<stdio.h>
int main()
{
int n=0;
int arr[]={0,1,2,3,4,5,6,7,8};
int left = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
int right = sz-1;
printf("请输入要查找的数字:\n");
scanf("%d", &n);
while(left <= right)
{
int mid=left+(right-left)/2;
if(arr[mid] == n)
{
printf("找到了%d: ", mid);
break;
}
else if(arr[mid] < n)
{
left = mid+1;
}
else
{
right = mid-1;
}
}
if(left > right)
{
printf("-1");
}
}
3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
#include<stdio.h>
int main()
{
char password[20]={0};
int i=0;
for(i=0; i<3; i++)
{
printf("请输入密码:");
scanf("%s", password);
if(strcmp(password,"123456") == 0)
{
printf("登陆成功!\n");
break;
}
else
{
printf("密码错误,请重新输入\n");
}
}
if(i==3)
{
printf("三次输入错误,退出程序!\n");
}
return 0;
}
4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
#include<stdio.h>
#include<stdlib.h>
int main()
{
char a=0;
while(a!=EOF)
{
printf("请输入一个字母\n");
fflush(stdin);
scanf("%c", &a);
if((a>='A')&&(a<='Z'))
{
a+=32;
printf("%c\n", a);
}
else if((a>='a')&&(a<='z'))
{
a-=32;
printf("%c\n", a);
}
else
{
printf("");
}
}
return 0;
}
相关文章推荐
- 黑马程序员之C#编程基础学习笔记:提示用户输入密码,如果密码是“888888”,则提示正确,否则提示错误。
- 黑马程序员之C#编程基础学习笔记:提示用户输入密码,如果密码是“888888”,则提示正确,否则要求再输入一次,如果密码是“888888”则提示正确,否则提示错误。
- 黑马程序员之C#编程基础学习笔记:提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用户用户名不存在
- 黑马程序员之C#编程基础学习笔记:要求用户输入用户名和密码,只要不是admin,888888就一直提示要求重新输入。
- 黑马程序员之WinForm编程基础学习笔记:登陆界面,登陆错误三次退出程序,假设用户名,密码是admin,888888,不区分大小写。(易错点:局部变量与类变量),退出程序Close()或者Appli
- 数据结构中的折半查找,查找对象为有序数组。用getchar()在写出输入字母输出相应的大小写。
- 黑马程序员之WinForm编程基础学习笔记:修改密码。界面上有旧密码,新密码,重复新密码,假设旧密码为888888,两次输入的新密码必须和旧密码不一样,并且两次输入的新密码必须一致。
- 编程基础之二分查找 06:月度开销 (二分,使区间和最小)
- 黑马程序员之C#编程基础学习笔记:用while break实现要求用户输入用户名和密码,只要不是admin,888888就一直提示要求重新输入。
- 编程成长日记――――模拟三次输入密码
- JAVA基础之二分(折半)查找法
- 猜数字游戏, 4000 折半查找法,模拟输入密码,字符大小写转换
- 【FZUOJ 2178】礼物分配 (折半查找+二分)
- Bash Shell模拟密码输入
- 编写代码模拟三次密码输入的场景。
- LinuxC/C++编程基础(11) 基于深度优先搜索查找迷宫路线
- 【C】模拟三次密码输入的场景
- 二分查找另类--【编程珠玑第四章】
- C语言 模拟三次密码输入
- Babelfish(二分查找,字符串的处理略有难度,用sscanf输入)