Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在没有任何错误的情况下初始化数组?_C++ - Fatal编程技术网

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;
}