正常一年有365天,2月28天。
闰年有366天,2月29天。
int iDaysPerYear=365;
if(((iYear%4==0) && (iYear%100!=0)) || (iYear%400==0))
{
iDaysPerYear+=1;
}
return iDaysPerYear;
如果数 a 能被数 b 整除,a 就叫做 b 的倍数。b 就叫做 a 的约数。
几个整数中公有的约数,叫做这几个数的公约数。其中最大的一个,叫做这几个数的最大公约数。
12、16 的公约数有 1、2、4,其中最大的一个是 4,所以 4 是 12 和 16 的最大公约数。
12、15、18 的最大公约数是 3。
几个整数中公有的的倍数,叫做这几个数的公倍数。其中最小的一个,叫做这几个数的最小公倍数。
4 的倍数有 4、8、12、16 …..
6 的倍数有 6、12、18、24 ….
4 和 6 的公倍数有 12、24 ….
其中最小的是 12,所以 12 是 4 和 6 的最小公倍数。
#include <stdio.h>
// 最大公约数
int iGcd(int iU, int iV)
{
int iRemainder = iU%iV;
while(iRemainder != 0)
{
iU = iV;
iV = iRemainder;
iRemainder = iU%iV;
}
return iV;
}
// 最小公倍数
int iLcm(int iU, int iV)
{
return (iU*iV)/iGcd(iU, iV);
}
int main()
{
printf("%d %d\n", iGcd(6, 4), iLcm(6, 4));
return 0;
}
void vReverse(char * pc)
{
char acTemp;
int iLen = strlen(pc);
for (int i=0; i<=(iLen-2)/2; i++)
{
acTemp = pc[i];
pc[i] = pc[iLen-1-i];
pc[iLen-1-i]=acTemp;
}
}
void vN2N(const char * pcSource, char * pcDest, int iBase1, int iBase2)
{
const char * pcHead = &pcSource[0];
int iSum = 0;
int iIndex;
for (iIndex=0; pcHead[iIndex] != '\0'; iIndex++)
{
iSum *= iBase1;
if(pcHead[iIndex]<='9' && pcHead[iIndex]>='0')
{
iSum = iSum + (pcHead[iIndex] - '0');
}
else
{
iSum = iSum + (pcHead[iIndex] - 'A' + 10);
}
}
cout<<"iSum : "<<iSum<<endl;
int iTemp = 0;
for (iIndex = 0; iSum != 0; iIndex++)
{
iTemp = iSum % iBase2;
if(iTemp<=9 && iTemp>=0)
{
pcDest[iIndex] = iTemp + '0';
}
else
{
pcDest[iIndex] = iTemp - 10 + 'A';
}
iSum /= iBase2;
}
pcDest[iIndex] = '\0';
vReverse(pcDest);
}
问题:
“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”
winxp
计算机–>右键–>管理–>事件查看器
win7
计算机–>右键–>管理–>事件查看器–>Windows 日志
把这个文件放在工程目录下
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="Microsoft.Winweb.EthernetDirect"
type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='requireAdministrator' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
win7 –> 控制面板 –> 显示 –> 设置自定义文本大小(DPI)
100% — 9磅 微软雅黑, 每英寸 96 像素
125% — 9磅 微软雅黑, 每英寸 120 像素
150% — 9磅 微软雅黑, 每英寸 144像素
200% — 9磅 微软雅黑, 每英寸 192 像素
百分比设置得越高,字体就越大
#define DEFAULT_DPI 96
HDC hdc = GetWindowDC(NULL);
if(NULL == hdc) {
LOG_PRINTF(EError, EthDirect, "main() %d\n", GetLastError());
}
int iHorizes = GetDeviceCaps(hdc, HORZRES); //当前设备横坐标的像素
int iVertres = GetDeviceCaps(hdc, VERTRES); //当前设备纵坐标的像素
LOG_PRINTF(EInfo, EthDirect, "\niHorizes = %d\niVertres = %d\n", iHorizes, iVertres);
int iLogPixelsX = GetDeviceCaps(hdc, LOGPIXELSX); //当前设备横坐标每英寸的像素值
int iLogPixelsY = GetDeviceCaps(hdc, LOGPIXELSY); //当前设备纵坐标每英寸的像素值
LOG_PRINTF(EInfo, EthDirect, "\niLogPixelsX = %d\niLogPixelsY = %d\n", iLogPixelsX, iLogPixelsY);
double dScaleX = (double)iLogPixelsX / DEFAULT_DPI;
double dScaleY = (double)iLogPixelsY / DEFAULT_DPI;
LOG_PRINTF(EInfo, EthDirect, "\ndScaleX = %.3lf\ndScaleY = %.3lf\n", dScaleX, dScaleY);
在上面的代码中 dScaleX
和 dScaleY
就是当前系统的dpi相对于100%dpi设置的比例。
只要把UI中的控件都相对应的放大或缩小这个倍数,UI就能够适应高清屏。