C语言编程100题-3.2

3.2
闰年计算。程序输入一个正整数Y,以及另一个正整数N。计算从Y年开始后的第N个闰年是哪一年(如果Y本身是闰年,则Y之后的第一个闰年是Y)。
输入:2005 3
输出:2016

法一

#include<stdio.h>
int main()
{
       int y, n;
       scanf_s("%d%d", &y, &n);     //%d%d默认了两个整数之间有空格
       for (y; n > 0; y++)     //此法相较法二避免了分类讨论
       {
              if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
                      n--;
       }
       printf("%d", y-1);     //之所以是输出y-1,是因为当n减到1并且此时y对应的是闰年,n会--,但此时y++仍会执行;要是不减1而输出y,得到的结果每次都是正确结果+1的年份
       system("pause");
       return 0;
}

法二

#include<stdio.h>
int main()
{
	int Y, N, R;
	scanf("%d %d", &Y, &N);
	if (Y % 400 == 0 || (Y % 100 != 0 && Y % 4 == 0))     //当Y是闰年(2000,2004)
	{
		R = Y + (N - 1) * 4;
	}
	else
	{
		if (Y % 100 == 0 && Y % 400 != 0)     //当Y不是闰年的世纪年(1900)
		{
			R = Y + N * 4;
		}
		else     //当Y不是闰年也不是世纪年
			R = Y - Y % 4 + N * 4;     //先返回到上一个闰年再计算
	}
	if (R % 100 == 0 && R % 400 != 0)     //检验:确保所得的年份是真正的闰年;语句功能:当R为不是闰年的世纪年(1900),排除并修正;(没有以下语句,会导致输入1896 2,输出1900,然而1900不是闰年)
	{
		R = R + 4;
	}
	printf("%d", R);
	return 0;
}
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为C语言通用编程规范v3.2(以下简称规范)是华为公司制定的用于C语言编程的指导方针。该规范旨在提高代码的可读性、可维护性和可重用性,减少编程错误和潜在的安全隐患。 规范主要包括以下几个方面的内容: 1. 命名规范:要求使用有意义且符合语义的命名,避免使用拼音或简写,命名要使用大驼峰命名法或小驼峰命名法。 2. 布局规范:要求代码布局清晰、缩进一致,使用空格缩进而非制表符缩进,为了提高可读性,要求在适当的位置进行代码换行。 3. 注释规范:要求代码中必须包含必要的注释,注释要清晰明了,解释代码的功能、用途、参数和返回值等信息。 4. 变量和常量规范:要求每个变量都要进行声明且遵循作用域的原则,禁止使用全局变量,对于常量要使用宏定义或者枚举类型。 5. 函数和参数规范:要求每个函数都要有明确的功能,函数的参数要进行类型和取值范围的检查,同时要求禁止使用可变参数的函数。 6. 循环和条件语句规范:要求在循环和条件语句中,每个语句块都要使用花括号进行包围,即使只有一行代码,以提高代码的可读性。 7. 内存管理规范:要求对动态分配的内存要进行有效的管理,包括及时释放和检查内存分配是否成功。 8. 异常处理规范:要求合理捕获和处理异常,不允许在函数中进行不必要的错误处理,要优先使用错误码而非异常抛出。 总之,华为C语言通用编程规范v3.2是华为公司为了提高代码质量和效率而制定的一套指导方针。遵循规范可以帮助开发人员编写出可读性强、稳定性高的代码,提高项目开发的质量和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值