我的代码是在数组中找到最大值
#include <iostream>
using namespace std;
int main(){
int i;
int array[i]={1,2,3,4,5}
int temp;
for(int i=0;i<6;i++)
{
if(array[i]>temp)
temp=A[i];
}
cout<<"the maximum number is "<<temp<<endl;
return 0;
}
但我在初始化数组时遇到错误为什么会这样?我们如何初始化数组?
答案 0 :(得分:2)
您无法使用运行时变量定义数组的大小。
要解决此问题,您可以使用constexpr
:
constexpr int i = 5;
int array[i]={1,2,3,4,5};
或:
int array[]={1,2,3,4,5};
在后者中,编译器会推断出大小。
否则,如果您需要运行时大小,则必须使用标准库中的std::vector
或任何其他“动态”容器:
int i = ...;
std::vector<int> array(i); // reserve `i` cells
答案 1 :(得分:1)
试试这个:
int array[]={1,2,3,4,5};
答案 2 :(得分:1)
首先,变量i未初始化
int i;
所以它有一些任意值。
其次,定义数组的大小应为常数exprssion。所以即使我将初始化这个定义
int array[i]={1,2,3,4,5}
也无效。此外,你忘了在结束括号后放置一个分号。
你也没有初始化变量temp
int temp;
最后这个循环的控制语句
for(int i=0;i<6;i++)
也是不正确的,因为该数组只有5个元素。
还没有宣布另外一个标识符
temp=A[i];
正确的代码可能看起来像
#include <iostream>
using namespace std;
int main()
{
const int N = 5;
int array[N] = { 1, 2, 3, 4, 5 };
int max = array[0];
for ( int i = 1; i < N; i++ )
{
if ( max < array[i] ) max = array[i];
}
cout << "the maximum number is " << max << endl;
return 0;
}