输入一个正整数n(1 输入一个正整数n(1

问题描述:

输入一个正整数n(1
输入一个正整数n(1
1个回答 分类:综合 2014-11-11

问题解答:

我来补答
最大值与最后一个交换,需要使用到max 和a[i],以及一个临时变量,你代码中使用的是max a[0] a[i],这里貌似有点问题.最小值与第一个交换,貌似你也是用的这3个变量.
如果觉得使用的变量过多,可以不使用临时变量,用嵌入式程序员的思路,节约空间复杂度,只使用max 和 a[i]两个变量就地进行值的交换
在你的两个 if 语句内改成
max = max + a[i];
a[i] = max - a[i];
max = max - a[i];
如果担心两数和超出范围可以用^异或操作
改成
max = max ^ a[i];
a[i] = a[i] ^ max;
max = max ^ a[i];
这样就不用担心两整数的和超出表示范围了.
下面的min的操作也与以上内容类似.
改成
min = min ^ a[0];
a[0] = a[0] ^ min
min = min ^ [a0]
 
 
展开全文阅读
剩余:2000
下一页:绘图