在VS2013环境下,基础进阶中。。。(5)

1.写一个猜数字的小游戏

#include<stdio.h>
#include<windows.h>
#include<time.h>

#pragma warning(disable:4996)

void menu()
{
printf("#####################################\n");
printf("###########    1.PLAY   #############\n");
printf("###########    0.EXIT   #############\n");
printf("#####################################\n");

}

void game()
{
int guss = 0;
int num = rand() % 100 + 1;
//产生一个0~100的随机数
printf("在0~100之间请猜一个数字:");
scanf("%d",&guss);
while (num != guss)
{
if (num > guss)
{
printf("不好意思,你猜的太小了!\n");
printf("请再猜一次哟(^-^):");
scanf("%d", &guss);
}
else
{
printf("不好意思,你猜的太大了!\n");
printf("请再猜一次哟(^-^):");
scanf("%d", &guss);
}
}
printf("你真的是太棒了!这个数就是:%d\n", num);
printf("游戏结束\n");

}

int main()
{
srand((unsigned)time(NULL));
//设置一个随机种子,每次运行都能保证随机种子不同
int enter = 0;
do
{
menu();
printf("请选择是否参与游戏:");
scanf("%d", &enter);
switch (enter)
{
case 1:
game();
break;
case 0:
break;
default:
printf("输入错误!请正确选择(1/0)");
break;
}
} while (enter);
system("pause");
return 0;

}

在VS2013环境下,基础进阶中。。。(5)


2.写代码实现在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)

#include<stdio.h>
#include<windows.h>
#pragma warning(disable:4996)

int search(int *b,int size,int key)
{
int left = 0;
int right = size-1;
int mid = 0;
while (left <= right)
{
mid = (left + right) / 2;
if (key > b[mid])
{
left = mid + 1;
}
else if (key < b[mid])
{
right = mid - 1;
}
else
{
return mid;
}
}
if (left > right)
{
return -1;
}
}
int main()
{
int num = 0;
int a[10] = { 0 };
printf("请输入10个有序整型数字(以空格或者回车间隔):\n");
for (int i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
printf("请输入一个数字(我们会告诉你它在数组中的下标):");
scanf("%d",&num);
printf("%d的下标是:%d(如果是-1,则表示这个数据不在数组中)\n", num, search(a, 10, num));
system("pause");
return 0;

}

在VS2013环境下,基础进阶中。。。(5)

在VS2013环境下,基础进阶中。。。(5)


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

#include<stdio.h>
#include<windows.h>

#pragma warning(disable:4996)

#define psw "tyy"

int main()

{
char a[10] = {'\0'};
int times = 3;
for (; times > 0; times--)
{
printf("请输入密码:");
gets(a);
if (0 == strcmp(psw, a))
{
break;
}
else
{
printf("密码输入错误,请重新输入(还剩%d次机会);",times-1);
}
}
if (0 == times)
{
printf("登录失败,账户冻结!!\n");
}
else
{
printf("Welcome Home(^_^)\n");
}
system("pause");
return 0;

}

在VS2013环境下,基础进阶中。。。(5)

在VS2013环境下,基础进阶中。。。(5)


4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出

#include<stdio.h>
#include<windows.h>

#pragma warning(disable:4996)

int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (ch >= 'A' && ch <= 'Z')
{
ch += 32;
putchar(ch);
}
else if (ch >= 'a' && ch <= 'z')
{
ch -= 32;
putchar(ch);
}
}
system("pause");
return 0;

}

在VS2013环境下,基础进阶中。。。(5)