永发信息网

C++代码问题

答案:2  悬赏:60  手机版
解决时间 2021-04-15 05:43

#include <iostream>
using std::cout;
using std::cin;
using std::endl;


int main()
{
int counter = 3;
int number1;
int number2 = 0;
int number3 = 0;
cout << "请输入第1个数" << endl;
cin >> number2;
cout << "请输入第2个数" << endl;
cin >> number3;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
while ( counter <= 10 )
{
cout << "请输入第" << counter << "个数" << endl;
cin >> number1;
if ( number1 > number2 )
if ( number2 > number3 )
{
number2 = number1;
number3 = number2;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else if ( number1 > number3 )
{
number2 = number1;
number3 = number3;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else
{
number2 = number3;
number3 = number1;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else if ( number2 < number3 )
{
number2 = number3;
number3 = number2;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else if ( number1 > number3 )
{
number2 = number2;
number3 = number1;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else
{
number2 = number2;
number3 = number3;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
counter++;
}
return 0;
}

上面这段代码运行后,比如第一次输入12,第二次13,这两个是没什么问题的,第三次输入14,还是没有问题,第四次输入15,就会显示两个15,以后的奇数次输入都能正常显示最大的两个数,偶数次就不行,请问是什么原因,高手指点下!!

最佳答案
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int counter = 3;
int number1;
int number2 = 0;
int number3 = 0;
cout << "请输入第1个数" << endl;
cin >> number2;
cout << "请输入第2个数" << endl;
cin >> number3;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
while ( counter <= 10 )
{
cout << "请输入第" << counter << "个数" << endl;
cin >> number1;
if ( number1 > number2 )
if ( number2 > number3 )
{
number2 = number1; // 此时的number2已经是number1了
number3 = number2; // 再将number2赋给number3,不就是把number1赋给number3???
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else if ( number1 > number3 )
{
number2 = number1;
number3 = number3;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else
{
number2 = number3;
number3 = number1;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else if ( number2 < number3 )
{
number2 = number3; // 此时的number2已经是number3了
number3 = number2; // 再将number2赋给number3,不就是把number3赋给number3???
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else if ( number1 > number3 )
{
number2 = number2;
number3 = number1;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
else
{
number2 = number2;
number3 = number3;
cout << "目前最大的两个数为:" << number2 << " " << number3 << endl;
}
counter++;
}
return 0;
}
全部回答

错误在这一句

else if ( number2 < number3 ) { number2 = number3; number3 = number2; }

你的代码我都看了 思路不错,这一句里应该是N1<N2<N3,所以n2和n3都应该保留,就别动他了。

你这样的赋值语句就是n3的值给n2,再把n2的值给n3.但是n2已经是n3了,所以两个数值相等了

可以直接将这两个赋值删除。或者改成跟最后一种一样的

number2 = number2; number3 = number3;

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英语题 请教 急啊
小乔茶苑这个地址在什么地方,我要处理点事
梦见自己的左脚裂开生蛆,啥预兆?
谁空间有DNF阿拉德战记视频?给我转
英语题帮忙看一下
今期双色球什么号机会大?请显然出一组
鸡西净土寺什么时候庙会
广东春季适合煲什么汤,广州春天喝什么汤好?
Transbus ’Cafe 穿梭巴士咖啡馆这个地址在什
喝酒、几天不睡觉、引起头痛怎么办
家庭内战。。咋办
人为什么不好意思会脸红呢
工行贵金属延递一个点多少钱
益东综合商店地址在哪,我要去那里办事
涵洞工程中,涵洞以上覆土50cm是指什么?
推荐资讯
歌曲吻我一下
两个人相遇不容易句子,每个人都有自己的脾气
MT115在哪可以下载QQ2009,怎么下到手机上
单选题下列各句中没有语病的一句是A.我们作为
怎么做桃皂角米银耳汤,最正宗桃皂角米银耳汤
国外留学(好点的学校)一般高考分都要在什么
单选题一个具有细胞核的活的植物细胞离体后培
电脑显示器打不开,也不亮黄灯,别的一切都正
光盘上的电影拷到电脑上后无法观看
为纪念香港回归祖国十六周年,某中学举行了香
如何看我的MSN版本啊!!!
一些跨国公司在全球范围内设厂,而不是将工厂
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?