用数字造数字

来源:互联网 发布:软件开发企业会计核算 编辑:程序博客网 时间:2024/04/27 19:24
 输入一个3位以上的整数,求其中最大的两个数字之和与最小的数字之和之间的差。例如:输入8729,输出8,即(9+8)-(2+7)=8,再如,输入24825,输出9,即(8+5)-(2+2)=9。
/*  *Copyright (c) 2014, 烟台大学计算机学院  * All right reserved.  * 文件名称:test.cpp    * 作者:赵嵩  * 完成时间:2014年12月28号  * 版本号:v1.0  */ #include <iostream>using namespace std;int main( ){    int n,arr[15],num=0;    int i, max1, max2, min1, min2, t;    cin>>n;    while(n>0)    {        arr[num++]=n%10;        n/=10;    }    for(i=0; i<num-1; i++)    {        if(arr[i]>arr[i+1])        {            t=arr[i];            arr[i]=arr[i+1];            arr[i+1]=t;        }    }    for(i=0; i<num-2; i++)    {        if(arr[i]>arr[i+1])        {            t=arr[i];            arr[i]=arr[i+1];            arr[i+1]=t;        }    }    max1=arr[num-1];    max2=arr[num-2];    for(i=0; i<num-1; i++)    {        if(arr[i]<arr[i+1])        {            t=arr[i];            arr[i]=arr[i+1];            arr[i+1]=t;        }    }    for(i=0; i<num-2; i++)    {        if(arr[i]<arr[i+1])        {            t=arr[i];            arr[i]=arr[i+1];            arr[i+1]=t;        }    }    min1=arr[num-1];    min2=arr[num-2];    cout<<max1+max2-min1-min2<<endl;    return 0;}

运行结果:


0 0