最大两数和解题报告

题目意思:输入一个多位数,求出最大及其次大数位相加的结果。

解题思路:1 求出每个数位的数,并记录下来。
2 比较每一位数的大小,求出最大的数。
3 在最大数的基础上,求出次大的数。
4 将最大的数与次大的数相加得出结果。

代码:

#include<iostream>
using namespace std;//使用namespace
int a,b,max_b,sec;//设整数型变量a,b,max_b,sec
int main()//主函数的起始
{
    cin>>a;//输入变量a,a是题目中的多位数
    while(a>0)//循环,条件为题目中的多位数大于0
    {
        b=a%10;//求出多位数a的最后一个数位的数,得出变量b(以便计算最大值与次大值)
        a=a/10;//去掉多位数a的最后一位,成为新变量a(以便计算下一次的变量b)
        if(max_b<b)//如果变量max_b(指最大的数)小于变量b(指变量a的最后一位)代表最大值小于变量b,即使用新量b,就执行下面语句
        {
            sec=max_b;  //当变量b大于变量max_b时,把变量max_b的值赋给变量sec,相当于sec得到一个新的值(即次大值)但有时变量max_b大于变量b,所以此语句不是每次都运行
            max_b=b; //这时,把变量b的值赋给max_b,相当于max_b得到一个新的值(即最大值)
        }
        else//如果上方条件不符合(变量max_b不小于变量b)代表现最大值大于新值b
        {
        if (sec<b)//在此条件下,如果变量sec(指次大的数)的值小于b,指次大值小于b,使用新量b,执行下面语句
        {
            sec=b;//当达到上方条件时(变量sec小于变量b),将变量b的值赋给变量sec,相当于次大值得到新量
        }
        }
    }
    cout<<max_b+sec<<endl;//输出变量max_b与变量sec的和
    return 0;//结束主函数的运行
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值