#defineMIN(x,y) (x)>(y)?(x):(y)
main ( )
{ int i=10,j=15,k;
k=10*MIN(i,j);
print("%d\n",k);
}
要详细解答过程
一道C语言题 我不会了
答案:3 悬赏:70
解决时间 2021-02-19 12:04
- 提问者网友:美人如花
- 2021-02-18 16:29
最佳答案
- 二级知识专家网友:没感情的陌生人
- 2021-02-18 17:39
首先说结果,k=10。
说明一下宏定义,宏定义只是定义了一个式子,在编译时直接把代码中的部分给替换掉再编译运行,所以“k=10*MIN(i,j);”这一句在实际编译后就变成了“k=10*(x)>(y)?(x):(y)",这样,10*(x)要大于(y),所以最后k的值是(x)了,于是k=10。
说明一下宏定义,宏定义只是定义了一个式子,在编译时直接把代码中的部分给替换掉再编译运行,所以“k=10*MIN(i,j);”这一句在实际编译后就变成了“k=10*(x)>(y)?(x):(y)",这样,10*(x)要大于(y),所以最后k的值是(x)了,于是k=10。
全部回答
- 1楼网友:初心未变
- 2021-02-18 19:38
这样的程序,我真的不愿写,即没有技术含量变量常量还多,可是我就是爱回答0回答的问题。switch语句就搞定了: #include #define mod ((year%400==0)||(year%100!=0)&&(year%4==0)) //这里是文本替换,判断是否为闰年 int main(void) { const int jan=31,feb=28,feb_leep=29,mar=31,apr=30,may=31,jun=30,jul=31,aug=31,sep=30,oct=31,nov=30,dec=12; int year,month,day,day_s; printf("输入日期(年月日之间空格隔开):") scanf("%d%d%d",year,month,day); switch(month) { case 1:day_s=day; case 2:mod?day_s=jan+feb_leep:day_s=jan+feb; case 3:mod?day_s=jan+feb_leep+mar:day_s=jan+feb+mar; case 4:mod?day_s=jan+feb_leep+mar+apr:day_s=jan+feb+mar+apr; case 5:mod?day_s=jan+feb_leep+mar+apr+may:day_s=jan+feb+mar+apr+may; case 6:mod?day_s=jan+feb_leep+mar+apr+may+jun:day_s=jan+feb+mar+apr+may+jun; case 7:mod?day_s=jan+feb_leep+mar+apr+may+jun+jul:day_s=jan+feb+mar+apr+may+jun+jul; case 8:mod?day_s=jan+feb_leep+mar+apr+may+jun+jul+aug:day_s=jan+feb+mar+apr+may+jun+jul+aug; case 9:mod?day_s=jan+feb_leep+mar+apr+may+jun+jul+aug+sep:day_s=jan+feb+mar+apr+may+jun+jul+aug+sep; case 10:mod?day_s=jan+feb_leep+mar+apr+may+jun+jul+aug+sep+oct:day_s=jan+feb+mar+apr+may+jun+jul+aug+sep+oct; case 11:mod?day_s=jan+feb_leep+mar+apr+may+jun+jul+aug+sep+nov:day_s=jan+feb+mar+apr+may+jun+jul+aug+sep+nov; case 12:mod?day_s=jan+feb_leep+mar+apr+may+jun+jul+aug+sep+dec:day_s=jan+feb+mar+apr+may+jun+jul+aug+sep+dec; } printf("%d年%d月%d日是这一年的%d天\n",year,month,day,day_s); return 0; }
- 2楼网友:陪伴是最长情的告白
- 2021-02-18 18:25
定义了一个MIN (x)>(y)?(x):(y) 如果
(x)>(y)是成立的,那么MIN函数的值为X,否则为Y
int i=10,j=15,k;
k=10*MIN(i,j);
这里I(y)”不成立,MIN取值为J
k=10*MIN(i,j); =============》 K=10*J=10*15=150
print("%d\n",k); 输出K的值 即150!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯