代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么
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
#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;}
这是怎么回事? 编写此代码以查找数组中的最大数字 但它只将数组中的第一个数字显示为最大
代码中的几个错误:
i
永远不会初始化。largest=arg[0];
被置于使largest
始终等于arg[0];
的循环中- 在语句
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);
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 在 txt 文件中显示前两个数字的程序
- 为什么strlen(s)与s的大小不同,为什么cout-char显示的是字符而不是数字
- 为什么 sf::Text 显示点而不是数字?
- 为什么断点显示数组的第二个值是一个大数字?额外学分工作
- 未来值公式显示疯狂巨大数字的输出
- 为什么当我在 c++ 中运行函数时,我的代码显示数字 53
- 代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么
- 无法在C++中显示反转的数字
- 如何执行此程序,将键入的数字显示为数字值的多次
- 如何使用C++中不是文字的变量在数字中显示单引号和两个引号?假设 6'2" 英尺
- 将零附加到数字时,无符号数字会显示不同的结果
- 2命令行参数中的数字数字仅被视为一个数字
- 如何验证输入仅是数字数字
- 如何使用数组在用户猜测新数字之前显示以前的猜测列表
- C++不会根据需要将数字/数字插入向量
- 数字/数字识别手写
- 从字符串中提取数字/数字范围的复杂算法
- 数字数字的排列