C的第9章学习了有关于预处里的问题
用宏实现:交换两个数,判断润年,3个数中求最大,加密等.
==============================================================
加密
#include
#define IS_A_TO_Z(str) (((''''a''''<=str)&&(''''z''''>str))||((''''A''''<=str)&&(''''Z''''>str)))
#define IS_Z(str) ((''''z''''==str)||(''''Z''''==str))
int main(void)
{
char str[128];
int i;
printf("Plese input txet:");
gets(str);
for(i = 0; str[i] != ''''\0'' i++)
{
if(IS_A_TO_Z(str[i]))
str[i] += 4;
else if(IS_Z(str[i]))
str[i] -= 25;
}
printf("%s\n", str);
return 0;
}
=============================================================
判断润年
#include
#define LEAP_YEAR(year) (((year%4)==0)&&((year%100)!=0)||((year%400)==0))
int main(void)
{
int year;
printf("Please input years:");
scanf("%d",&year);
if(LEAP_YEAR(year))
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);
return 0;
}
==============================================================
3个数中求最大
#include
#define MAX(a,b) ((a)>(b)?(a):(b))
int main(void)
{
int a,b,c;
printf("Please input three integers:");
scanf("%d,%d,%d", &a, &b, &c);
printf("max = %d\n", MAX(MAX(a,b), c));
return 0;
}
==============================================================
交换两个数
#include#define SWAP(a,b) t=b;b=a;a=t;
int main(void)
{
int a,b,t;
a = 6;
b = 7;
printf("a = %d, b = %d\n",a,b);
SWAP(a,b);
printf("a = %d, b = %d\n",a,b);
return 0;
}
来自:http://blog.mcuol.com/User/micromcu/Article/6738_1.htm

