gpt4 book ai didi

c++ - 最多 2 位数字

转载 作者:行者123 更新时间:2023-11-27 23:06:25 26 4
gpt4 key购买 nike

这是我“尝试”从用户输入的数字中找到最大 2 个值的代码:

#include <iostream>
using namespace std;

void maximum2(int a, int& max1,int& max2 ){

int temp = 0;
max2= a%10;
max1 = ((a/10)%10);

if (max2>max1) {
temp = max1;
max1 = max2;
max2 = temp;}
for(; a>0; a/=10){
if (a%10>max1)max1= a%10;
else if (a%10<max1 && a%10>max2) max2 = a%10;
}

}
void main(){

int max1, max2, num;
cin>>num;
maximum2(num,max1,max2);
cout<<"max 1 = "<<max1<<" max 2 = "<<max2<<endl<<endl;
}

它适用于大多数数字,例如例如34256 某些情况除外。例如,当我输入 54321 时,它给出的 max1 为 5,这是正确的,但它给出的 max2 为 1,这不是所需的值。你能帮我追查我的错误吗?

最佳答案

for 循环中,您正在更改 max1 的值 的值>最大 2。但是为了让您的代码在所有情况下都能正常工作,for 循环中必须有一个点,您可以在其中更改both max1 max2 的值。

话虽如此,这里有一个修复建议:

void maximum2(int a,int& max1,int& max2)
{
max1 = 0;
max2 = 0;
for(; a>0; a/=10)
{
int temp = a%10;
if (temp > max1)
{
max2 = max1;
max1 = temp;
}
else if (temp > max2)
{
max2 = temp;
}
}
}

关于c++ - 最多 2 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23262561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com