一、不利用指针
代码:
int i;
void insert(int ,int , int );
int main() {
int a[100];
int n, m;
cout<<"输入数组元素个数\n";
cin >> n;
cout << "输入数组元素\n";
for (i = 0; i < n; i++) {
cin >> a[i];
}
cout << "输入你要插入的元素\n";
cin >> m;
insert(a, n, m);
n++; //元素增加了一个!!!
for (i = 0; i < n; i++) {
cout << a[i] << " ";
}
}
void insert(int a[], int n, int m){
for (i = n-1; i >= 0; i--) {
if (m < a[i])
a[i + 1] = a[i];
else
break;
}
a[i + 1] = m;
}
运行结果:
二、利用指针
怎样利用指针向数组中输入元素呢?方法是让指针首先指向数组第一个元素,再将指针依次向后移动一个位置,指向下一个元素,直到指向最后元素,如下所示。
int a[100];
int* p = a;
int n;
cin >> n;
for( ; p < a + n; p++)
cin >> *p;
利用指针的完整代码:
int i;
void insert(int ,int , int );
int main() {
int a[100];
int n, m;
cout<<"输入数组元素个数\n";
cin >> n;
cout << "输入数组元素\n";
int* p = a;
for (; p< a+n; p++) {
cin >> *p;
}
cout << "输入你要插入的元素\n";
cin >> m;
insert(a, n, m);
n++;
for(;p<a+n;p++)
cout<<*p<<" "; cout<<"\n";
}
void insert(int* a, int n, int m)
{
int *p;
for(p=a+n-1;p>=a;--p)
if(m<*p) *(p+1)=*p;
else break;
*(p+1)=m;