详细讲解C语言4(C语言系列)

目录

前言:

猜数字游戏:

练习题: 

结束语:


前言:

        在上一次博客中小编讲解了分支语句中的一些小习题,接下来小编带大家一起玩一个猜数字的小游戏,以及再和大家分享一些练习题。

猜数字游戏:

写一个猜数字游戏要求:

1.自动产生1~100之间的随机数。

2.猜数字

        a.猜对了就恭喜你,游戏结束。

        b.猜错了会告诉你猜大了还是猜小了,继续猜直到猜对为止。

3.游戏可以一直玩,除非自己选择退出游戏

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
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;
}

代码截图如下所示:

详细讲解C语言4(C语言系列)_第1张图片

练习题: 

1.写一个代码将三个整数按从小到大输出。

代码如下所示:

#define _CRT_SECURE_NO_WARNINGS 1
#include
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
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
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;
}

详细讲解C语言4(C语言系列)_第2张图片

 结果截图如下所示:

4.打印1000~2000之间的闰年。

判断是否是闰年的条件是看它能否被400整除,或者是看它能否被4整除且不被100整除。

代码如下所示:

#include
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;
}

 代码截图如下所示:

详细讲解C语言4(C语言系列)_第3张图片

5.写一个代码,打印100~200之间的素数

代码如下所示:

#include
#include
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;
}

 代码截图如下所示:

结束语:

        这次的分享就到这里啦!这次小编主要分享了猜数字游戏和分支语句的一些练习题,大家赶快动手自己来实践一下吧!想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)

你可能感兴趣的:(C语言,c语言)