`
daisy_xu
  • 浏览: 5178 次
社区版块
存档分类
最新评论

C学习的日志(随手记、随手写)

阅读更多
重温C基础,貌似还滞留在学生时代。不管了随手写一个,先交一份小作业吧
(还有别的方法,后续有空了再写吧)
//判定2000 - 2500年中的哪一年是闰年,将结果输出。
 #include<stdio.h> 
 #define _TRUE 1
 #define _FALSE 0

 bool IsLeapYear(int nYear);
 
 int main() 
 { 
	for(int nYear = 2000; nYear <= 2500; nYear++)
	 {
		if(IsLeapYear( nYear ))
		{
			 printf("%d is leap year  \n", nYear);
		}
		else
		{
			 printf("%d is not leap year \n",nYear);
		}
	 }


 return 0; 
} 

 bool IsLeapYear(int nYear) 
 { 
	 bool bIsleapYear = _FALSE;
	 if ( (nYear%4==0 && nYear%100 !=0) || (nYear%400==0) )
	 { 
		 bIsleapYear = _TRUE;
	 } else 
	 { 
		 bIsleapYear=_FALSE; 
	 } 
		
	return bIsleapYear;
 }
 
分享到:
评论
3 楼 jacky_dai 2015-01-27  
#include<stdio.h> 
#include<math.h> 

#define _TRUE 1
#define _FALSE 0

bool IsLeapYear(int nYear);

int main() 
{ 
	int nYear = 0;

	printf(" please enter year: ");
	scanf("%d", &nYear); 

	if ( nYear>=2000 && nYear<=2500 ) 
	{ 
		if (IsLeapYear( nYear ))
		{
			printf("%d is leap year! \n", nYear);
		}
		
	} 
	else 
	{ 
		printf("error, please enter again \n");
	} 

	return 0; 
} 

bool IsLeapYear(int nYear) 
{ 
	bool bIsleapYear = _FALSE;
	if ( (nYear%4==0 && nYear%100 !=0) || (nYear%400==0) )
	{ 
		bIsleapYear = _TRUE;
	} else 
	{ 
		bIsleapYear=_FALSE; 
	} 
	
	return bIsleapYear;
}

2 楼 jacky_dai 2015-01-27  
林锐写的《高质量C编程指南》

其中讲到

4.3.1 布尔变量与零值比较
 【规则4-3-1】不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。
根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准。例如Visual C++ 将TRUE定义为1,而Visual Basic则将TRUE定义为-1。
假设布尔变量名字为flag,它与零值比较的标准if语句如下:
if (flag) // 表示flag为真
if (!flag) // 表示flag为假
其它的用法都属于不良风格,例如:
if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE) 
if (flag == 0)

4.3.2 整型变量与零值比较
 【规则4-3-2】应当将整型变量用“==”或“!=”直接与0比较。
假设整型变量的名字为value,它与零值比较的标准if语句如下:
if (value == 0) 
if (value != 0)
不可模仿布尔变量的风格而写成
if (value) // 会让人误解 value是布尔变量
if (!value)

4.3.3 浮点变量与零值比较
 【规则4-3-3】不可将浮点变量用“==”或“!=”与任何数字比较。
千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
假设浮点变量的名字为x,应当将
if (x == 0.0) // 隐含错误的比较
转化为
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON是允许的误差(即精度)。

4.3.4 指针变量与零值比较
 【规则4-3-4】应当将指针变量用“==”或“!=”与NULL比较。
指针变量的零值是“空”(记为NULL)。尽管NULL的值与0相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的标准if语句如下:
if (p == NULL) // p与NULL显式比较,强调p是指针变量
if (p != NULL)
不要写成
if (p == 0) // 容易让人误解p是整型变量
if (p != 0)   
或者
if (p) // 容易让人误解p是布尔变量
if (!p)
1 楼 jacky_dai 2015-01-27  
//试试这个代码
#include<stdio.h>
#include<math.h>


#define _TRUE 1
#define _FALSE 0

bool IsLeapYear(int nYear);

int main()
{
	int nYear = 0;
	bool bFlag = _FALSE;
	
	printf(" please enter year: ");
	scanf("%d", &nYear);
	
	if ( nYear>=2000 && nYear<=2500 )
	{
		bFlag = IsLeapYear( nYear );
	}
	else
	{
		printf("error, please enter again \n");	
	}
	
	return 0;
	
}

bool IsLeapYear(int nYear)
{
	bool bIsleapYear = _FALSE;
	
	if ( (nYear%4==0 && nYear%100 !=0)
      || (nYear%400==0) )
	{
		bIsleapYear = _TRUE;
		
	}
	else 
	{	
		bIsleapYear=_FALSE;
	} 

	if (bIsleapYear)
	{
		printf("%d is leap year! \n", nYear);
	}
	else
	{
		printf("%d is not leap year \n",nYear);
	}
	
	return bIsleapYear;
}

相关推荐

    C语言写日志代码

    本文将围绕“C语言写日志代码”这一主题,详细介绍如何使用C语言来实现基本的日志功能,以及可能涉及的相关知识点。 首先,我们需要了解日志的基本概念。日志是程序运行过程中记录的信息,包括错误信息、警告信息、...

    logc.rar_C C 日志_C语言日志记录_Linux日志_logc语言_日志系统

    本文将围绕“logc.rar”这个C语言实现的日志记录库进行深入探讨。 标题中的“logc.rar”指的是一个压缩包文件,其中包含了C语言编写的日志记录代码。C语言是一种基础且高效的编程语言,适用于编写底层系统软件,...

    日志文件源代码(C语言)

    在IT行业中,日志文件是系统监控和故障排查的关键元素,尤其在服务器和网络设备上。...通过理解和分析`yllog.c`和`yllog.h`,开发者可以学习到如何构建自己的日志系统,这对于系统维护、故障排查以及性能优化至关重要。

    用C语言实现高效日志功能(含源码)

    在IT行业中,日志系统是软件开发中的重要组成部分,它能记录程序运行过程中...这些文件一起构成了C语言实现的日志功能的完整项目,通过编译和调试这些文件,我们可以深入理解并学习如何构建一个高效、实用的日志系统。

    C语言程序日志打印和日志文件

    首先,"C语言程序日志打印"是指在C程序中实现记录和显示运行信息的功能。这通常涉及到以下几个关键部分: 1. **日志级别**:为了方便管理和筛选,日志通常被分为多个级别,如DEBUG、INFO、WARNING、ERROR和FATAL。...

    最终版_张越_随手记统一监控平台架构实践.pdf

    ### 最终版_张越_随手记统一监控平台架构实践 #### 诞生背景 随着随手记业务规模的不断扩大,其微服务数量快速增长至300+,这导致了监控复杂度急剧上升。早期的手动登录生产机器进行故障排查的方式已无法满足需求。...

    随手记录身边的技术问题

    《随手记录身边的技术问题——SiteStar系统架构探析》 在我们的日常工作中,技术问题无处不在,而记录和理解这些问题对于个人成长和技术积累至关重要。本文将以“SiteStar系统架构”为主题,通过分析其思维导图,...

    C++ 多线程日志记录

    在C++编程中,多线程日志记录是一种常见的需求,特别是在高并发和实时性要求高的系统中。...通过分析提供的源代码文件,我们可以学习到如何将这些理论知识应用到实际的开发中,从而提高程序的并发性能和日志处理能力。

    C语言分级日志输出实现Demo

    本文将深入探讨如何使用C语言实现一个分级的日志输出系统,这有助于根据问题的严重程度过滤和查看日志,从而提高工作效率。 首先,我们需要理解日志分级的概念。常见的日志级别包括DEBUG、INFO、WARNING、ERROR和...

    方便易用纯c语言日志函数包

    C语言是编程的基础,它的语法简洁,运行效率高,因此用C编写的日志库特别适合嵌入式系统和资源有限的环境。这样的函数包通常包含一系列的API,用于输出不同级别的日志信息,如DEBUG、INFO、WARNING、ERROR和FATAL等...

    C语言打印日志(windows)

    通过分析这个文件,我们可以学习到如何在实际项目中实现C语言的日志记录系统,这对于理解和调试Windows环境下的C程序非常有帮助。在实践中,还可以结合其他工具,如Windows的Event Viewer,或者第三方日志库,来...

    linux系统中c++写日志文件功能分享

    在Linux系统中,C++编写日志文件是常见的任务,特别是在开发系统软件或者服务时,为了追踪程序运行状态和错误信息,日志记录是必不可少的。本文将介绍一种简化自glog的日志功能,它专注于写入日志文件,不再包含glog...

    用C语言实现高效日志

    1.写入日志信息的参数化,类似fprint,printf功能 2.定时保存日志信息到硬盘,默认参数为3000毫秒 3.日志信息达到一定容量后自动保存到硬盘(目前设置为1M) 4.该动态库实现了高效性 5.可动态调整日志等级 6.可动态...

    labview操作logger,日志记录

    在文件"Loggor记录信息"中,可能包含了实现上述功能的示例代码或详细教程,你可以通过学习和理解这个文件来提升你在LabVIEW日志记录方面的技能。记住,实践中不断探索和改进是掌握任何技术的关键。

    log组件_labview日志组件_LOGO日志记录_

    LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款强大的图形化编程环境,被广泛应用于测试、测量和控制...通过学习和掌握日志记录技术,开发者能够提升问题解决效率,确保软件系统的稳定运行。

    vc++ c++ mfc 日志 log 记录

    日志记录(log recording)是软件开发中的一个重要环节,它有助于调试、监控和故障排查。本篇文章将深入探讨如何在VC++、C++和MFC环境下实现日志功能。 1. **日志的基本概念** - 日志是记录程序运行过程中的事件、...

    C#写系统日志和写日志文件

    在C#编程中,日志记录是至关重要的实践,它帮助开发者追踪程序运行时的问题、错误和异常。本文将详细讲解如何使用C#编写系统日志以及如何将日志信息写入文本文件。 首先,我们来看如何使用C#来创建系统日志。C#提供...

    linux c实现写日志和打开文件读取功能

    本资源包含两个文件,一个可以打开指定位置的文件,根据用户的输入写入日期+内容,也就是写日志的功能。还有个文档根据我个人的需求,按行读文件并且识别空格的位置进行拆分。 不想要太多的积分,个人觉得1分就够了...

    c++写日志文件类

    在IT行业中,日志文件是调试程序、追踪错误和监控系统状态的重要工具。本文将深入探讨如何使用C++编写一个简单但实用的日志文件类,以便在开发过程中记录和分析程序运行情况。 首先,让我们从`logfile.h`头文件开始...

    C++编写的写日志操作程序源代码

    压缩包内的"写日志操作"文件可能是这个C++日志操作程序的源代码,可以查看并学习其中的设计思路和实现细节。通过阅读源代码,可以更深入地理解上述知识点,并能根据实际项目需求进行定制和优化。

Global site tag (gtag.js) - Google Analytics