我与代码的日常:打印乘法口诀,交换变量值,判断闰年,数组操作

本文详细介绍了一个C语言编程实例,包括打印乘法口诀表、两数交换、判断闰年及数组操作等基本功能的实现。通过具体代码示例,展示了如何运用函数来解决实际问题,适合初学者学习。

学习不易,需要坚持。

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
输入5,输出55口诀表,输入,输出99的乘法口诀表。

2.使用函数实现两个数的交换。

3.实现一个函数判断year是不是润年。

4.创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。
要求:自己设计函数的参数,返回值。

1.
//实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,
//输入,输出*9口诀表,输入,输出*5的乘法口诀表。
#include <stdio.h>

void Print(int n)
{
	int i = 0 ;
	int j = 0 ;

	for(i=1; i<=n; i++)
	{
		for(j=1; j<=i; j++)
		{
			printf("%d×%d=%2d  ", i, j, i*j) ;
		}
		printf("\n") ;
	}
}
int main() 
{
	int input = 0 ;
	printf("--------将打印出乘法口诀表--------\n") ;
	printf("请输入你想打印的格式: ") ;
	scanf("%d", &input) ;
	Print(input) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

在这里插入图片描述

2.
//使用函数实现两个数的交换。
#include <stdio.h>

void Swap(int* p1, int* p2)
{
	int temp = *p1 ;
	*p1 = *p2 ;
	*p2 = temp ;
}
int main()
{
	int a = 0 ;
	int b = 0 ;
	printf("请分别为a和b赋值: ") ;
	scanf("%d%d", &a, &b) ;
	printf("交换前:a=%d, b=%d\n",a, b) ;
	Swap(&a, &b) ;//此处应该传进指针,否则将无法对函数里的变量进行操作
	printf("交换后:a=%d, b=%d\n",a, b) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

3.
//写个判断某年是不是闰年的函数
#include <stdio.h>

int Is_leap_year(int y)
{
	return (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) ; //此处可以直接将表达式值作为函数返回值,使程序更简洁
}
int main()
{
	int year = 0 ;
	printf("--------此程序用来判断某年是否为闰年--------\n") ;
	printf("请输入想要判断的年份: ") ;
	scanf("%d", &year) ;
	if ( 1 ==Is_leap_year(year) )
	{
		printf("%d是闰年\n", year) ;
	}
	else
		printf("%d不是闰年\n", year) ;
	return 0 ;
}

运行结果:
在这里插入图片描述

4.
//创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。
//要求:自己设计函数的参数,返回值。
#include <stdio.h>

void Init(int arr[], int sz)
{
	int i = 0 ;
	for(i=0; i<sz; i++)
	{
		arr[i] = i ;
	}
}

void Empty(int arr[], int sz)
{
	int i = 0 ;
	for(i=0; i<sz; i++)
	{
		arr[i] = 0 ;
	}
}

void Reverse(int arr[], int sz)
{
	int left = 0 ;
	int right = sz - 1 ;
	while(left <= right)
	{
		int temp = arr[left] ;
		arr[left] = arr[right] ;
		arr[right] = temp ;
		left++ ;
		right-- ;
	}
}

void Print(int arr[], int sz)
{
	int i = 0 ;
	for(i=0; i<sz; i++)
	{
		printf("%d ", arr[i]) ;
	}
}

int main()
{
	int input = 0 ;
	int arr[10] ={ 0 } ;
	int size = sizeof(arr) / sizeof(arr[0]) ;
	printf("----------此程序将会对数组进行操作----------\n") ;
	printf("		1.初始化数组\n") ;
	printf("		2.逆置数组\n") ;
	printf("		3.清空数组\n") ;
	printf("		4.安全退出\n") ;
	while(1)
	{
		printf("\n请输入相应的选项: ") ;
		scanf("%d", &input) ;

		switch(input)
		{
		case 1 :
			printf("初始化后数组为:\n") ;
			Init(arr, size) ;
			Print(arr, size) ;
			break ;
		case 2 :
			printf("逆置后数组为:\n") ;
			Reverse(arr, size) ;
			Print(arr, size) ;
			break ;
		case 3 :
			printf("清空后数组为:\n") ;
			Empty(arr, size) ;
			Print(arr, size) ;
			break ;
		case 4 :
			return 0 ;
		default :
			printf("输入错误,请重新输入: ") ;
		}
	}
	return 0 ;

}

运行结果:
在这里插入图片描述

学习不易,需要坚持。

内容概要:本文围绕“基于杜鹃优化算法分时电价的综合能源系统双层协同调度研究”展开,结合Matlab代码实现,提出了一种融合杜鹃优化算法(Cuckoo Search Algorithm)分时电价机制的综合能源系统双层协同优化调度模型。研究旨在通过需求响应机制优化能源资源配置,实现系统运行成本最小化低碳化运行的双重目标。模型充分考虑了氢能、氨气等新型清洁能源的集成利用,体现了较强的创新性前瞻性。研究内容涵盖综合能源系统建模、双层优化架构设计、多目标协同调度策略及智能算法求解全过程,并附有大量相关研究方向拓展,如储能选址定容、微电网调度、虚拟电厂优化、多目标智能优化算法应用等,展现出广泛的学术工程应用价值。; 适合人群:具备电力系统、优化理论、能源管理及Matlab/Simulink编程基础的研究生、科研人员工程技术人员,特别适合从事综合能源系统、需求响应、智能优化算法、低碳调度等方向研究的专业人士。; 使用场景及目标:① 为科研人员提供基于杜鹃优化算法的综合能源系统双层调度模型构建仿真方法;② 探索分时电价需求响应机制下,含氢能、氨气等新型能源的综合能源系统协同优化运行策略;③ 为解决储能配置、微电网经济调度、碳交易机制等实际工程问题提供算法支持代码参考; 其他说明:该研究成果属于“创新未发表”类别,突出算法的原创性实践指导意义,可通过提供的网盘链接获取完整资源,建议读者结合文中列举的多种优化算法应用场景进行深入学习拓展研究。
内容概要:本文档聚焦于“配电网两阶段鲁棒故障恢复研究”,通过Matlab代码实现相关算法,旨在应对配电网中突发故障后的快速、可靠恢复问题。研究采用鲁棒优化方法,有效应对可再生能源出力、负荷需求等不确定性因素,确保系统在最不利条件下仍能安全稳定运行。解决方案分为两个阶段:第一阶段为故障后的紧急响应网络重构,核心目标是隔离故障区域并最大化重要负荷的供电恢复;第二阶段为灾后资源再调度,利用储能、可控分布式电源等进行精细化调整,以实现经济性可靠性的最优平衡。文中提供的Matlab代码完整实现了建模、求解仿真全过程,是对高水平学术论文的复现,兼具理论深度实践价值。; 适合人群:具备一定电力系统基础知识Matlab编程能力的研究生、科研人员及电力行业工程师。; 使用场景及目标:① 学习掌握电力系统故障恢复、鲁棒优化、两阶段随机规划等高级理论方法;② 复现顶刊论文的仿真案例,服务于自身课题研究、论文撰写或技术汇报;③ 将核心算法思想迁移应用于微电网、主动配电网等新型电力系统的优化调度项目中。; 阅读建议:此资源以Matlab代码为核心载体,因此学习者应重点研读代码结构,结合电力系统专业知识理解其背后的数学模型物理意义。建议读者先梳理清楚“故障恢复”的整体流程,再分模块(如潮流计算、约束定义、优化求解器调用)进行代码调试分析,通过修改参数算例来加深理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值