算法思路:从用户输入的四个数中,优选选出最大的那个数,因为它肯定是a+b+c
仔细观察:
(a+b+c) - (a+b) = c
(a+b+c) - (a+c) = b
(a+b+c) - (b+c) = a
(a+b+c) - (a+b+c) = 0
如果找到最大的那个数,然后依次和输入的那四个数相减,得出的新的四个数就是a,b,c,0,至于是谁是谁都不确定,此时需要将是个数存入到数组中去,然后由小到大排序,跳过0,从第二个数开始输出即可。
代码如下:
#include#include using namespace std; int main() { int m,n,p,q,M,x,y,z,k,a[4];//M用于存储最大的那个数,即a+b+c cin>>m>>n>>p>>q; M=max(max(m,n),max(p,q));//M此时为a+b+c x=M-m; y=M-n; z=M-p; k=M-q; a[0]=x,a[1]=y,a[2]=z,a[3]=k;//分别将a,b,c,0存入数组中去 sort(a,a+4);//从小到大排序 cout< 效果如下:



