【发布时间】:2020-04-09 07:46:34
【问题描述】:
所以我用 C++ 编写了这个函数,它基本上计算数组中的最大数,然后打印出数组中的最大数。函数代码如下:
int Number_of_maxNum(vector<int> ar) {
int max=0;
int Number_of_Maxnum=0;
int d = ar.size();
for(int i=0;i<=d;i++){
if(ar[i]>max){
max=ar[i];
}
}
for(int j=0;j<=d;j++){
if(ar[j]==max){
Number_of_Maxnum++;
}
}
return Number_of_Maxnum;
}
现在,此代码不适用于以下数组作为输入: {44、53、31、27、77、60、66、77、26、36} 它应该打印出 2,但打印出 1
如果有人可以解释一下输入 1 作为输入的实际情况,它会
【问题讨论】:
-
如果当前答案是正确的,请检查它是否为正确答案。 ;-)
-
我认为这是因为你给 for 循环的大小。您应该将其设为
j<d,因为数组包含 0-n-1 的空格。可能发生的情况是你得到一个比所有数字都大的垃圾值,因此你得到 1。
标签: c++ function for-loop if-statement