王鹿其 发表于 2023-11-2 19:01:23

为什么不能输出一个数组包含元素100到109呢

#include<iostream>
using namespace std;

void test02()
{
        int*arr=new int;
       
        for(int i=0;i<10;i++)
        {
                arr=i+100;
        }
        for(int i=0;i,10;i++)
        {
                cout<<arr<<endl;
        }
        delete[] arr;
}

int main()
{
        test02();

        return 0;
   }   

isdkz 发表于 2023-11-2 19:01:34

在你的代码中,第一个for循环正确地将数组 arr 的元素设置为100到109。然而,在第二个for循环中,你在条件部分使用了逗号运算符而不是比较运算符,导致循环无法正常工作。

要修复这个问题,你需要将第二个for循环中的逗号运算符替换为比较运算符。修改后的代码如下:

void test02()
{
    int* arr = new int;

    for (int i = 0; i < 10; i++)
    {
      arr[ i] = i + 100;
    }
    for (int i = 0; i < 10; i++)
    {
      cout << arr[ i] << endl;
    }
    delete[] arr;
}


这样修改后,你应该能够正确地输出数组 arr 中的元素100到109。

Mike_python小 发表于 2023-11-2 19:02:55

在你的代码中,for(int i=0;i,10;i++) 中的条件语句 i,10 中应该是 i<10,这个错误会导致循环无法正确执行,因此导致输出不正确。

修改后的代码如下:

++
#include<iostream>
using namespace std;

void test02()
{
      int*arr=new int;
      
      for(int i=0;i<10;i++)
      {
                arr=i+100;
      }
      for(int i=0;i<10;i++)
      {
                cout<<arr<<endl;
      }
      delete[] arr;
}

int main()
{
      test02();

      return 0;
}


注意到修改后的循环条件语句是 i<10,这会使循环执行10次,正确输出数组中的元素。

希望我的回答对你有所帮助。如果你还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 为什么不能输出一个数组包含元素100到109呢