#include
using namespace std;
int main()
{
int i, n, * p;
cout << "请输入数组元素的个数:";
cin >> n;
if ((p = new int[n])==0)
{
cout<< "内存分配失败,推出!" << endl;
exit(1);
}
for (int i = 0;i < n;i++)
cout<< p[i]=i * 2;
cout << "数组中各元素分别为:" << endl;
for (i=0;i < n;i++)
cout<< p[i]<< " ";
cout << endl;
delete[]p;
return 0;
}
该回答引用ChatGPT
在这段代码中,将赋值操作符 = 放在了输出语句中,导致编译器无法识别该语句的类型,从而产生了错误。应该将赋值操作和输出语句分开来写。
可以将语句 cout << p[i]=i * 2; 修改为 p[i] = i * 2; cout << p[i]; ,即先进行赋值操作,再输出该元素的值。修改后的代码如下:
#include<iostream>
using namespace std;
int main()
{
int i, n, * p;
cout << "请输入数组元素的个数:";
cin >> n;
if ((p = new int[n])==0)
{
cout<< "内存分配失败,推出!" << endl;
exit(1);
}
for (int i = 0;i < n;i++) {
p[i] = i * 2;
cout<< p[i];
}
cout << "数组中各元素分别为:" << endl;
for (i=0;i < n;i++)
cout<< p[i]<< " ";
cout << endl;
delete[]p;
return 0;
}