代码:
/*
C语言第四例
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
*/
#include
void main(void)
{
int year,month,day,sum,temp;
printf("请输入日期年月日:n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month) //假设现在是三月,则前两个月天数加起来,再加本月天数即可
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0)) //判断是否是闰月,闰月在此基础上加一天
{
temp=1;
}
else
{
temp=0;
}
if(temp==1&&month>2)
{
sum++;
}
printf("%d,%d,%d,是第%d天n",year,month,day,sum);
}
运行结果:
关键字:C语言 闰年
引用地址:
C语言一百例第四例
推荐阅读最新更新时间:2024-11-10 19:21
单片机C语言中code是什么意思
在51系列中data,idata,xdata,pdata的区别 code:程序存储区。 data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用mov
[单片机]
C语言与汇编语言的区别
从事嵌入式系统开发多年,对于软件方面,从初期的单片机汇编语言编程,到后来的C++界面程序编写,已有相当多的经验累积。正是有了多年的实战经验,对于汇编与高级语言在原理及应用等方面形成了自已的一些理解,也是我经常思考的问题,但一直没有以书面的方式记录下来,今天之所以写下这些文字,正是想做一个归纳,日后也好参考。 其实,C语言与汇编语言的区别一直是程序员们津津乐道的话题。如果你问一个程序员这样的问题,他也许会这么回答你: C语言可读性好,代码便于维护,便于开发;汇编语言编写的程序不容易看懂,可维护性不好,但是执行效率高。 这样回答是没有错的,但只是一个概括,不够深入。比方说,汇编语言为什么执行效率比C语言高呢?C语言的可读性又好在哪里呢?
[单片机]
单片机C语言程序设计:用 ADC0808 控制 PWM 输出
/* 名称:用 ADC0808 控制 PWM 输出 说明:使用数模转换芯片 ADC0808,通过调节可变电阻 RV1 来调节脉冲宽度, 运行程序时,通过虚拟示波器观察占空比的变化。 */ #include reg51.h #define uchar unsigned char #define uint unsigned int sbit CLK=P2^4; //时钟信号 sbit ST=P2^5; //启动信号 sbit EOC=P2^6; //转换结束信号 sbit OE=P2^7; //输出使能 sbit PWM=P3^0; //PWM 输出 //延时 void DelayMS(uint ms)
[单片机]
浅谈C语言内存分区和STM32存储器分配
一、C语言内存分区 C语言内存分区示意图如下: 1. 栈区 栈区介绍 栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。 栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。 栈区按内存地址由高到低方向生长,其最大大小由编译时确定,速度快,但自由性差,最大空间不大。 栈区是先进后出原则,即先进去的被堵在屋里的最里面,后进去的在门口,释放的时候门口的先出去。 存放内容 临时创建的局部变量和const定义的局部变量存放在栈区。 函数调用和返回时,其入口参数和返回值存放在栈区。 2. 堆区 堆区介绍 堆区由程序员分配内存和释放。 堆区按内存地址由低到高方向生长,其大小由系统内存/虚拟内存上限决定,速度较
[单片机]
单片机avr 中断寄存器 中断c语言函数 外部中断介绍
简介:中断的概念,ATmega16中断向量表,avr中断寄存器SREG,MCU控制和状态寄存器MCUCSR,通用中断控制寄存器GICR, MCU控制寄存器MCUCR,ICCAVR中断函数格式介绍 中断就是暂停正在执行的程序语句,转去执行另一功能(函数)的程序语句,执行完后,立即返回原先暂停执行的语句处,继续执行。单片机的中断系统解决了单片机运算速度快,外设(如键盘)速度慢之间的数据传输问题,提高了单片机的实时性和数据处理能力。 中断源:产生中断的地方,ATmega16具有20个中断源和一个复位中断,不同的单片机中断源的个数是不一样的。单片机的中断源分为外部中断源和内部中断源,有三个外部中断源有INT0,INT1,INT2,当连接在
[单片机]
矩阵键盘按键键值显示程序C语言程序设计
//矩阵式键盘按键值的数码管显示实验 #include reg52.h //包含51单片机寄存器定义的头文件 sbit P14=P1^4; //将P14位定义为P1.4引脚 sbit P15=P1^5; //将P15位定义为P1.5引脚 sbit P16=P1^6; //将P16位定义为P1.6引脚 sbit P17=P1^7; //将P17位定义为P1.7引脚 unsigned char code Tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数字0~9的段码 unsigned char keyval; //定义变量储存按键值 /***
[单片机]
BASIC语言在PLC控制系统中的应用
1 引言 basic语言是微机系统中广泛应用的一种高级编程语言,它的指令接近思维逻辑的表达,与自然语言有相通之处,易学易懂,同时它包涵丰富的算法函数,能十分方便地进行各种数据处理,因而深受广大编程爱好者喜爱。plc是计算机科学在工业控制领域内的一个重要分支,它一般采用梯形图、语句表作为其编程语言,由于梯形图形似电气原理图,直观易懂,易为电气工程师所接受,为plc的推广应用起到了极大的推动作用。plc从诞生至今,几十年来,应用领域不断扩大,现在,通讯问题已成为plc应用中的一个重要课题之一。 本文以ge fanucplc系列pcm智能通讯模块在某泵站控制系统中的应用为例进行探讨,介绍了basic语言在解决plc与现场仪表或其它
[嵌入式]
51单片机自动打铃C语言程序
51单片机自动打铃C语言程序: #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar code DSY_CODE = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阴极总段// uchar DSY_BUFFER ={0,0,0xBF,0,0,0xff,0,0};//时间显示时-分 模式 uchar DSY_BUFFER1 ={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
[单片机]