5
来源:互联网 发布:启云软件怎么样 编辑:程序博客网 时间:2024/05/01 17:55
猜数字游戏:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void menu()
{
printf("************************\n");
printf("******** 1.play ********\n");
printf("******** 2.exit ********\n");
printf("************************\n");
}
void game()
{
int b = 0;
srand(time(NULL));
int a = rand() % 100;
while (1)
{
scanf("%d", &b);
if (b > a)
{
printf("猜大了\n");
}
else if (b < a)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了!!!\n");
break;
}
}
}
int main()
{
int ret = 0;
while (1)
{
menu();
scanf("%d", &ret);
if (ret == 1)
{
printf("游戏开始\n");
game();
}
if (ret == 2)
{
printf("游戏结束\n");
break;
}
}
return 0;
}
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void menu()
{
printf("************************\n");
printf("******** 1.play ********\n");
printf("******** 2.exit ********\n");
printf("************************\n");
}
void game()
{
int b = 0;
srand(time(NULL));
int a = rand() % 100;
while (1)
{
scanf("%d", &b);
if (b > a)
{
printf("猜大了\n");
}
else if (b < a)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了!!!\n");
break;
}
}
}
int main()
{
int ret = 0;
while (1)
{
menu();
scanf("%d", &ret);
if (ret == 1)
{
printf("游戏开始\n");
game();
}
if (ret == 2)
{
printf("游戏结束\n");
break;
}
}
return 0;
}
折半查找法:
#include<stdio.h>
int main()
{
int ret = 0;
int arr[] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10 };
scanf("%d", &ret);
int left = 0;
int right = sizeof(arr) / sizeof(arr[0])-1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (arr[mid] > ret)
{
right = mid;
right--;
}
if (arr[mid] < ret)
{
left = mid;
left++;
}
if (arr[mid] == ret)
{
printf("找到了,下标为 %d \n", mid);
return 0;
}
}
if (left>right)
{
printf("没有找到!!\n");
}
return 0;
}
int main()
{
int ret = 0;
int arr[] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10 };
scanf("%d", &ret);
int left = 0;
int right = sizeof(arr) / sizeof(arr[0])-1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (arr[mid] > ret)
{
right = mid;
right--;
}
if (arr[mid] < ret)
{
left = mid;
left++;
}
if (arr[mid] == ret)
{
printf("找到了,下标为 %d \n", mid);
return 0;
}
}
if (left>right)
{
printf("没有找到!!\n");
}
return 0;
}
编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序:
#include<stdio.h>
int main()
{
int i = 0;
int password = 123456;
int ret = 0;
while (i < 3)
{
printf("请输入密码\n");
scanf("%d", &ret);
if (ret == password)
{
printf("登陆成功\n");
return 0;
}
if (ret != password)
{
i++;
if (i==3)
{
break;
}
printf("请重新输入\n");
}
}
printf("登陆失败,退出程序\n");
return 0;
}
int main()
{
int i = 0;
int password = 123456;
int ret = 0;
while (i < 3)
{
printf("请输入密码\n");
scanf("%d", &ret);
if (ret == password)
{
printf("登陆成功\n");
return 0;
}
if (ret != password)
{
i++;
if (i==3)
{
break;
}
printf("请重新输入\n");
}
}
printf("登陆失败,退出程序\n");
return 0;
}
4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出:
#include<stdio.h>
int main()
{
int ch = 0;
printf("请输入一个字符:\n");
while ((ch = getchar()) != EOF)
{
if (ch >= 'a'&&ch <= 'z')
{
printf("%c\n", ch - 32);
}
if (ch >= 'A'&&ch <= 'Z')
{
printf("%c\n", ch + 32);
}
}
return 0;
}
int main()
{
int ch = 0;
printf("请输入一个字符:\n");
while ((ch = getchar()) != EOF)
{
if (ch >= 'a'&&ch <= 'z')
{
printf("%c\n", ch - 32);
}
if (ch >= 'A'&&ch <= 'Z')
{
printf("%c\n", ch + 32);
}
}
return 0;
}