明解c语言练习答案,《明解C语言》练习题4-2的实现

这个个练习题要求读取两个整数值,然后计算他们之间所有的整数之和, 对于我这种编程小萌新,其实 是真不会编写的 ,脑子里想了很多 ,比如怎么使用if来完成,实际上 还是做不出来,只好去CSDN借鉴下别人的。图灵写下文章 剖析 时不时拿出来看看,希望以后看到这种脑子里有思路。

// 源代码如下:

include

int main(void)

{

int a, b, sum=0, min, max;

puts("请输入两个整数。");

printf("整数a:"); scanf("%d",&a);

printf("整数b:"); scanf("%d",&b);

(a>b)?(max = a)&&(min = b):(min = a)&&(max = b);

do {

sum+=min;

} while(min++ != max);

(a>b)?(max = a)&&(min = b):(min = a)&&(max = b);

printf("大于等于%d小于等于%d的所有整数的和是%d",min,max,sum);

return 0;

}

作者:VividColors

来源:CSDN

原文:https://blog.csdn.net/VividColors/article/details/80554311

版权声明:本文为博主原创文章,转载请附上博文链接!

Blockquote

(a>b)?(max = a)&&(min = b):(min = a)&&(max = b);

这里使用了条件运算符【三目运算符】a>b如果成立则是 (max = a)&&(min = b) 这个值,不成立则是(min = a)&&(max = b); 一句话 解读这个就是判定 a和b谁大谁小,且将大小对应的值赋给 max/min。

Blockquote

do的循环体

do {

sum+=min;

}

,这句只定义了一个加法循环,大家看明解这本书可能没提到+=这个概念,很好理解 比如 a+=b相当于a=a+b。sum+=min 通俗易懂 就是 sum=sum+min 和 =和+最小值,有朋友会说这也不对啊,别急继续往下看。

while 条件1→while(min++ != max);,while 的第一句又看不懂了,对于完全萌新来说CSDN的答案,确实是有些是超纲的也仅限明解这本书,谭浩强的我记得在开头就将了这个 。不要紧认真看分分钟明白。 ++! 是先自增再参与运算,!++是先运算再自增是不是 超级绕口 ,这里开个车,俩人那啥不可描述那啥时候,成年小朋友都懂😁【 ++!】是自己先爽了,再去找女孩子;【!++】是先服务女孩子,后边自己自然也更爽,这里落到运算上就是 min最小数+1 然后再加, 那么加到什么时候停止呢 ,来人都有感觉 次数够了,max就是最大值,加到max停止。 这样逻辑上就通了 1+2+3。。。

while 条件2 →(a>b)?(max = a)&&(min = b):(min = a)&&(max = b);

这句好理解 了 好像是没必要了 ,讲真,我在dev上删除了这个 照样结果正确 ,

CSDN这个作者的解决方法应该是基于有语言基础的,不晓得 看过明解C 的大佬有木有更合适的源码 案例,最后仍然感谢csdn作者的思路。

别死扣这个问题啦 ,直接往下看书,下边基本就提到了这个 复合赋值运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值