一、寄存器变量:
1、寄存器类变量的数据长度与通用寄存器的长度相当。一般只能用char型和int型变量。
2、要选择一些使用频度高的变量定义为寄存器变量,这样可以提高运行效率。
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int sum=0;
for(register int i=0;i<=10;i++){
sum +=i;
}
cout<<"sum="<<sum<<endl;
return 0;
}
3、计算某个日期是一年中的第几天和计算某一年的第几天是几月几日
//给定某个日期计算出该日期是一年的第几天
//给定某一年的第几天计算出是几月几日
#include "stdafx.h"
#include <iostream>
using namespace std;
int leap(int year);
int sum_day(int month,int day);
int days_of_year(int year,int month,int day);
struct YMD{
int year;
int month;
int day;
};
int get_month(int isleap,int days);
int get_day(int isleap,int month,int days);
YMD year_of_days(int year,int days);
int _tmain(int argc, _TCHAR* argv[])
{
cout<<days_of_year(2018,7,7)<<endl;
struct YMD mymd;
mymd=year_of_days(2018,188);
cout<<mymd.year<<"年"<<mymd.month<<"月"<<mymd.day<<"日"<<endl;
getchar();
return 0;
}
int leap(int year){
if(year %4==0 && year %100!=0||year % 400==0){
return 1;
}else{
return 0;
}
}
int sum_day(int month,int day){
static int days_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(register int i=1;i<month;i++){
day+=days_month[i];
}
return day;
}
int days_of_year(int year,int month,int day){
int days=sum_day(month,day);
if(leap(year)&&month>2){
days++;
}
return days;
}
int get_month(int isleap,int days){
static int days_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if (isleap==1){
days_month[2]=29;
}
for(register int i=1;i<12;i++){
days-=days_month[i];
if (days<=0){
return i;
}
}
return 0;
}
int get_day(int isleap,int month,int days){
static int days_month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if (isleap==1){
days_month[2]=29;
}
int tempday=0;
for(register int i=1;i<month;i++){
tempday+=days_month[i];
}
return days-tempday;
}
YMD year_of_days(int year,int days){
int month=get_month(leap(year),days);
int day=get_day(leap(year),month,days);
struct YMD mymd;
mymd.year = year;
mymd.month=month;
mymd.day=day;
return mymd;
}