代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么

code to find the largest number in the array but it only showing the first number as the largest. someone please let me know why

本文关键字:数字 数字显示 第一个 为什么 告诉我 数组 查找 代码      更新时间:2023-10-16
#include <iostream>
using namespace std;
int findLargest()
{
int arg[25],largest,size,i,j;
cout<<"enter the size of array"<<endl;
cin>>size;
cout<<"enter the numbers"<<endl;
for(i; i<size; i++)
{
cin>>arg[i];
}
for(j=1; j<size; j++)
{
largest=arg[0];
if(arg[0]<arg[j])
{
largest==arg[j];
}
}
cout<<"The largest number is : "<<largest;
}
int main()
{
findLargest();    
return 0;}

这是怎么回事? 编写此代码以查找数组中的最大数字 但它只将数组中的第一个数字显示为最大

代码中的几个错误:

  1. i永远不会初始化。
  2. largest=arg[0];被置于使largest始终等于arg[0];的循环中
  3. 在语句largest==arg[j];中,它应该是赋值而不是相等检查,即largest = arg[j];

更正的代码:

int findLargest()
{
int arg[25],largest,size,i,j;
cout<<"enter the size of array"<<endl;
cin>>size;
cout<<"enter the numbers"<<endl;
for(i=0; i<size; i++)
{
cin>>arg[i];
}
largest=arg[0];
for(j=1; j<size; j++)
{
if(largest < arg[j])
{
largest = arg[j];
}
}
cout<<"The largest number is : "<<largest;
return largest; // in case caller function needs it.
}

几件事,i未初始化。

for(i=0; i<size; i++)
{
cin>>arg[i];
}

在每次迭代中将 largest 设置为第一个元素,然后将每个元素与第一个元素进行比较,而不是将largest进行比较。然后,使用==而不是=进行分配。 你也不会从findLargest()返回任何东西,所以你最好让它void

largest = arg[0];
for(j=1; j<size; j++)
{
if(largest<arg[j])
{
largest = arg[j];
}
}

您可能希望使用std::max_element()

cout << *std::max_element(begin(arg), begin(arg)+size);