zl程序教程

您现在的位置是:首页 >  其他

当前栏目

C语言选择结构程序设计——“21点”游戏and一元二次方程and能否被3,5,7,9整除

游戏C语言 and 结构 选择 程序设计 21 能否
2023-09-11 14:19:58 时间

最全C系列题目!从0到管理系统

一、C语言数据类型及输出——体重是否正常、球的体积、计算存银行利息and浮点数长度与精度

二、C语言运算符与表达式——输出逆序数and二进制包含0和1的数量and判断是否为2的整数次幂的两种办法

三、C语言基本输入输出程序设计——计算当前时间and转换大写姓名and工资信息表

四、C语言顺序结构程序设计——对调数字and判断三角形

五、C语言选择结构程序设计——“21点”(BlackJack)游戏and一元二次方程and能否被3,5,7,9整除

六、C语言函数、指针应用程序设计——回文数判断and检验子串and仓库库存管理程序

七、C语言输入输出及选择结构程序设计的综合应用——简单超级战士游戏and 取牙签游戏

八、C语言循环结构及数组排序的综合应用——冒泡、插入、选择排序棒图显示and两个超长数相乘

九、C语言函数及数组的综合应用——儿童数学运算 and 递归求最大公约数

十、C语言函数及复杂数据结构的综合应用——简单户籍管理系统


一、实验目的:

1.掌握,使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。

2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力

二、实验要求

1.输入一个整数,判断它能否被3,5,7,9整除,并输出以下信息之一:①能同时被3,5,7,9整除;②能同时被a,b,c整除;③能同时被a,b整除;④能被a整除;⑤不能被3,5,7,9任一个整除。

2.从键盘任意输入a,b,c的值,编程计算并输出一元二次方程ax2+bx+c=0的根,当a=0时,输出“该方程不是一元二次方程,其根为…”(若b=0,输出“输入错误,不是方程”),当a≠0时,分b2-4ac>0、b2-4ac=0、b2-4ac<0三种情况计算并输出方程的根。

3.统计“21点”(BlackJack)游戏的点数。要求输入手中的25张牌的点数,可为210、J、Q、K、A。牌点为2-10的每张牌都分别记为相应的点数,花牌(JQK)记为10点,A既可以记为1点,也可记为11点,选择最为有利的。目标是尽可能接近但不要超过21点,超过21点表示这一手牌已经“爆”了。例如,一张A和一张10可记为11点或21点,但由于21点更好,要记为21点;1张A和2张8可记为17点或者27点,但由于27点已经“爆”了,要记为17点。输入应能够支持大小写,输出2~21的一个数字,或者“爆了”的提示信息。

三、代码

1.判断整数能否被3,5,7,9整除

/*
 * 文件名称:   基本实验5第一题
 * 作者:       不知何人
 * 完成日期:   2021.4.9
 * 内容摘要:   无
 * 注意:       无
*/

#include<stdio.h>

int main() {
	int a;

	scanf("%d", &a);		//获取输入的数 
	if (a % 3 == 0 && a % 5 == 0 && a % 7 == 0 && a % 9 == 0)
	{
		printf("能同时被3,5,7,9整除\n");
	}
	else if (a % 3 == 0 && a % 5 == 0 && a % 7 == 0)
	{
		printf("能同时被3,5,7整除\n");
	}
	else if (a % 3 == 0 && a % 7 == 0 && a % 9 == 0)
	{
		printf("能同时被3,7,9整除\n");
	}
	else if (a % 3 == 0 && a % 5 == 0 && a % 9 == 0)
	{
		printf("能同时被3,5,9整除\n");
	}
	else if (a % 3 == 0 && a % 5 == 0)
	{
		printf("能同时被3,5整除\n");
	}
	else if (a % 3 == 0 && a % 7 == 0)
	{
		printf("能同时被3,7整除\n");
	}
	else if (a % 3 == 0 && a % 9 == 0)
	{
		printf("能同时被3,9整除\n");
	}
	else if (a % 5 == 0 && a % 7 == 0)
	{
		printf("能同时被5,7整除\n");
	}
	else if (a % 3 == 0)
	{
		printf("能被3整除\n");
	}
	else if (a % 5 == 0)
	{
		printf("能被5整除\n");
	}
	else if (a % 7 == 0)
	{
		printf("能被7整除\n");
	}
	else
	{
		printf("不能被3,5,7,9任何一个数整除。\n");
	}
	//因为9为3的倍数,故所有可以被9整除的,都可以被3整除,此处便省去了多种分类。	
} 

2.编程计算一元二次方程

/*
 * 文件名称:   基本实验5第二题
 * 作者:       不知何人
 * 完成日期:   2021.4.9
 * 内容摘要:   无
 * 注意:       无
*/
#include <stdio.h>
#include <math.h>
int main() {
	float a, b, c, x, x1, x2;		//a,b,c分别作为二次项系数,一次项系数,常数。x为有一个根的方程解,x1,x2为有两个根的方程解。 

	printf("请输入一元二次方程的a,b,c分别作为二次项系数,一次项系数,常数。\n");
	scanf_s("%f%f%f", &a, &b, &c);		//输入各项的系数 
	if (a == 0) {
		if (b == 0)
		{
			printf("输入错误,不是方程。");		//a,b均为0的情况下,不是方程
		}
		else
		{
			x = (-c) / b;
			printf("该方程不是一元二次方程组,解为%.2f\n", x);		//a为0,b不为0时,为一元一次方程,可求解
		}
	}
	else {
		if ((b * b - 4 * a * c) > 0)
		{
			x1 = ((-b) + sqrt(b * b - 4 * a * c)) / 2 * a;
			x2 = ((-b) - sqrt(b * b - 4 * a * c)) / 2 * a;		//求根公式 未知数=负b+/-根号下b平减4ac/2a
			printf("方程的根为%.2f和%.2f\n", x1, x2);
		}
		else if (b * b - 4 * a * c == 0)
		{
			x = (-b) / 2 * a;
			printf("方程的根为%.2f\n", x);
		}
		else
		{
			printf("此方程无解。\n");
		}
	}
}

“21点”(BlackJack)游戏

/*
 * 文件名称:   基本实验5第三题
 * 作者:       不知何人
 * 完成日期:   2021.4.9
 * 内容摘要:   无
 * 注意:       无
*/
#include<stdio.h>

int main() {
	char a;		
	int i = 0, sum = 0;			//定义a/A出现的次数,总和。

	printf("请输入手中的牌(2-10与JQK),依次输入无需空格)。");
	while (1) {
		a = getchar();
		if (a == 'j' || a == 'J' || a == 'k' || a == 'K' || a == 'q' || a == 'Q') {
			sum = sum + 10;
		}
		else if (a == 'a' || a == 'A')
		{
			i++;		//记录a/A出现的次数,后面单独判断;
		}
		else if (a >= '2' && a <= '9')
		{
			sum = sum + a - '0';		//将输入的字符减去0字符的值,便是本身代表数值。
		}
		else if(a=='1')
		{
			sum += 10;		//如果输入10,则识别1后和直接加10,并getchar将后面的字符‘0’略过;
			getchar();
		}
		else
		{
			break;		//如果不满足以上条件,则为a/A,需要最后判断和之后,再确定a/A的值为多少。
		}
	}


	if (sum < 11 && i >= 1)
	{
		sum = sum + 10 + i;
		printf("%d", sum);		//sum小于11,且出现过a/A,则优先加11,如果加两次11,已经爆了,故只需一次,若有其他a/A则按1计算。
	}
	else if (sum < 21 )
	{
		sum = sum + i;
		if (sum > 21)
		{
			printf("你爆了!");		
		
		}
		else
		{
			printf("%d", sum);	//sum已经满足大于等于11且存在a/A这个条件,则所有a/A全部按1计算。
		}
	}
	else
	{
		if (sum > 21)
		{
			printf("你爆了!");

		}
		else
		{
			printf("%d", sum);
		}
	}		//没有出现过a/A直接判断。

}

总结

我把去年刚学C语言时的代码发出来供新人们参考,别嫌弃啊哈哈(虽然确实很烂!实验报告我也都发了,在主页,我发的全是免费下载)

非常感谢您的观看