《C语言第三版课后习题》10
课后习题9.4
给年份year,定义一个宏,以判别该年份是否闰年。
#include<stdio.h>
#define LEAP_YEAR(y) (y%4==0 && y%100!=0) || (y%400==0)?'L':'N'
int main()
{
int y;
scanf("%d",&y);
int l=LEAP_YEAR(y);
printf("%c",l);
return 0;
}
课后习题9.6
请设计输出实数的格式,包括:⑴一行输出一个实数;
⑵一行内输出两个实数;⑶一行内输出三个实数。实数用"6.2f"格式输出。使用宏定义
#include<stdio.h>
#define pr1(x) printf("%.2f\n",x)
#define pr2(x) printf("%6.2f\t%6.2f\n",x,x)
#define pr3(x) printf("%6.2f\t%6.2f\t%6.2f\n",x,x,x)
int main()
{
float x;
scanf("%f",&x);
pr1(x);
pr2(x);
pr3(x);
return 0;
}
课后习题9.8
分别用函数和带参的宏,从三个数中找出最大的数。
#include<stdio.h>
#define max(a,b,c) a>=(b>=c?b:c)?a:(b>=c?b:c)
int main() {
float m(float a,float b,float c);
float t1,t2,a,b,c;
scanf("%f %f %f",&a,&b,&c);
t1=max(a,b,c);
printf("%.3f\n",t1);
t2=m(a,b,c);
printf("%.3f",t2);
return 0;
}
float m(float a,float b,float c) {
float x;
x=(a>=(b>=c?b:c)?a:(b>=c?b:c));
return (x);
}