我有一个家庭作业任务,我应该创建一个数组并仅使用指针实现冒泡排序算法。我创建了数组,但是如果我想输入 3
元素,即如果用户输入 n = 3,程序不允许我输入第三个数字。我想问一下为什么会这样?
提前致谢。
#include <iostream>
using namespace std;
int *n = new int ;
int main()
{
cout<<"Vavedete broya na chislata:"<<' ';
cin>>*n;
int *arr = new int[*n];
cout<<"Vavedete elementite:"<<endl;
int *i=new int;
for(*i=0; *i<*n; *i++)
{
cin>>*(arr+*i);
}
return 0;
}
最佳答案
“*”和“++”运算符具有相同的优先级,但关联性是从右到左。您正在取消引用循环中未使用的 i++。 尝试:
#include <iostream>
using namespace std;
int *n = new int ;
int main()
{
cout<<"Vavedete broya na chislata:"<<' ';
cin>>*n;
int *arr = new int[*n];
cout<<"Vavedete elementite:"<<endl;
int *i=new int;
for(*i=0; *i<*n; (*i)++)
{
cin>>*(arr+*i);
}
return 0;
}
关于c++ - C++ 中的动态数组(用指针表示)- 输入元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48920060/