C++ 如何在没有任何错误的情况下初始化数组?
下面是我在数组中查找最大值的代码C++ 如何在没有任何错误的情况下初始化数组?,c++,C++,下面是我在数组中查找最大值的代码 #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]; } cou
#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;
}
但我在初始化数组时出错了为什么会这样?如何初始化阵列?尝试以下操作:
int array[]={1,2,3,4,5};
不能使用运行时变量定义数组的大小 要解决此问题,可以使用constexpr: 或: 在后者中,大小由编译器推断 否则,如果需要运行时大小,则必须使用标准库中的std::vector或任何其他动态容器:
int i = ...;
std::vector<int> array(i); // reserve `i` cells
首先,变量i没有初始化
int i;
所以它有一些任意值
其次,已定义数组的大小应为常数表达式。所以即使我被初始化了这个定义
int array[i]={1,2,3,4,5}
也是无效的。此外,您忘记在右大括号后放置分号
您也没有初始化变量temp
int temp;
最后是这个循环的控制语句
for(int i=0;i<6;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;
}
你认为int数组[i]={1,2,3,4,5}是什么意思?而且,你忘了一个;请阅读本书中的基础知识,并阅读有关初始化的内容。int i;然后是int数组[i]。数组的大小是多少?int array[i]可以正确初始化i,也可以使用数字!甚至是int main{std::cout@Jarod42我认为这是一个使用数组的赋值2他对标准算法一无所知
for(int i=0;i<6;i++)
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;
}