C++查找数组中的最大数字

for*_*win 5 c++ arrays

我的作业问题:

已经宣布了一系列名为parkingTickets的整数,并将其初始化为自当年年初以来城市警察每天发出的停车票数量.(因此,数组的第一个元素包含1月1日给出的票数;最后一个元素包含今天给出的票数.)

已声明并初始化名为ndays的变量以保存数组的大小.(因此,如果今天是1月18日,则ndays将具有值18;如果今天是2月3日,则ndays将具有值34.)

此外,已经声明了名为mostTickets的变量以及变量k.

如果不使用任何其他变量,并且不更改ndays的值或parkingTickets数组的元素,请编写一些代码,这些代码会导致mostTickets包含parkingTickets中找到的最大值.

为此,我有以下代码:

for(k = 0; k < ndays; k++) {
    if (parkingTickets[k] > parkingTickets[ndays]) {
        mostTickets = parkingTickets[k];
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的运动提交者说这是错的.我的代码出了什么问题?我也试过parkingTickets[ndays - 1]了,但那也行不通.

Bil*_*nch 11

C++也提供了std :: max_element.我怀疑你的老师是否希望你使用它,但是了解标准库可能会很好.

mostTickets = *std::max_element(parking_tickets, parking_tickets + ndays)
Run Code Online (Sandbox Code Playgroud)


小智 9

你的比较是错误的.您每次都将当前元素与最后一个元素进行比较.您需要做的是将当前元素与mostTickets进行比较.即

if(parkingTickets[k] > mostTickets)
Run Code Online (Sandbox Code Playgroud)

另外,为了更好的衡量,我建议将mostTickets初始化为parkingTickets [0].