目录
前言:
在上一次博客中小编讲解了分支语句中的一些小习题,接下来小编带大家一起玩一个猜数字的小游戏,以及再和大家分享一些练习题。
猜数字游戏:
写一个猜数字游戏要求:
1.自动产生1~100之间的随机数。
2.猜数字
a.猜对了就恭喜你,游戏结束。
b.猜错了会告诉你猜大了还是猜小了,继续猜直到猜对为止。
3.游戏可以一直玩,除非自己选择退出游戏
代码如下所示:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*********************************\n");
printf("************ 1.play *************\n");
printf("************ 0.exit *************\n");
printf("*********************************\n");
}
//3.游戏的具体设计
void game()
{
//a.使得产生的数字是1~100
int ret = rand() % 100 + 1;
int guess = 0;
//b.开始猜数字
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了!\n");
}
else if (guess > ret)
{
printf("猜大了!\n");
}
else
{
printf("恭喜你猜对了!!!\n");
break;
}
}
}
int main()
{
int input = 0;
//1.生成随机数
srand((unsigned int)time(NULL));//srand是设置随机的起点函数,rand是生成随机数的函数
//时间戳 是有time()库函数获取
do
{
//2.打印菜单
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选错了,请重新选择\n");
break;
}
}while (input);
return 0;
}
代码截图如下所示:
练习题:
1.写一个代码将三个整数按从小到大输出。
代码如下所示:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
//1.先创造出三个变量
int a = 0;
int b = 0;
int c = 0;
//2.在让用户输入三个数字
scanf("%d %d %d", &a, &b, &c);
//3.进行排序
if (a < b)
{
int t = 0;
t = b;
b = a;
a = t;
}
if (a < c)
{
int t = 0;
t = c;
c = a;
a = t;
}
if (b < c)
{
int t = 0;
t = c;
c = b;
b = t;
}
printf("排序后的结果为:%d %d %d", a, b, c);
return 0;
}
代码截图如下所示:
2.写一个代码打印1~100之间的所有3的倍数的数字。
代码如下所示:
#include<stdio.h>
int main()
{
int i = 0;
//方法一:
/*for (i = 1; i <= 100; i++)
{
if (i % 3 == 0)
{
printf("%d ", i);
}
}*/
//方法二:
for (i = 3; i <= 100; i += 3)
{
printf("%d ", i);
}
return 0;
}
结果如下截图所示:
3.给定两个数,求这两数的最大公约数。
代码如下所示:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
//方法一:
////1.找到两个数字之间最小的那个,把它放到min中
//int min = 0;
//if (a < b)
//{
// min = a;
//}
//else
//{
// min = b;
//}
////2.试用min~1中的每一个数字除以最大的那个数,如果可以整除,则为最大公约数
//while(1)
//{
// if (a % min == 0 && b % min == 0)
// {
// printf("最大公约数为:%d\n", min);
// break;
// }
// min--;
//}
//方法二:
//辗转相除法:
int t = 0;
while (a % b)
{
t = a % b;
a = b;
b = t;
}
printf("最大公约数为:%d", b);
return 0;
}
结果截图如下所示:
4.打印1000~2000之间的闰年。
判断是否是闰年的条件是看它能否被400整除,或者是看它能否被4整除且不被100整除。
代码如下所示:
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1000; i <= 2000; i++)
{
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
{
printf("%d ", i);
}
}
return 0;
}
代码截图如下所示:
5.写一个代码,打印100~200之间的素数
代码如下所示:
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int count = 0;
//方法一:
////产生100~200之间的数
//for (i = 100; i <= 200; i++)
//{
// int j = 0;
// //用2~i之间的数去除以它。
// for (j = 2; j <= i; j++)
// {
// if (i % j == 0)
// {
// break;
// }
// }
// if (i == j)
// {
// printf("%d ", i);
// count++;
// }
//}
//方法二:
//判断是否为素数只需要i除以从2~开平方i之间的数即可
for (i = 100; i <= 200; i++)
{
int j = 0;
int flag = 1;//假设flag就是素数
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0;//不是素数
break;
}
}
if (flag == 1)
{
printf("%d ", i);
count++;
}
}
printf("\ncount=%d\n", count);
return 0;
}
代码截图如下所示:
结束语:
这次的分享就到这里啦!这次小编主要分享了猜数字游戏和分支语句的一些练习题,大家赶快动手自己来实践一下吧!想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)