C语言数组怎么插入一个元素

如题所述

#include<stdio.h>

#include<stdlib.h>

#define MAX 40

void insert(int*p,int n,int m)

{ int i,k;

  for(i=0;i<n;i++)

 if(p[i]>=m)

 {  k=i;

 break;}

 for(i=n-1;i>=k;i--)

 p[i+1]=p[i];

 printf("%d\n",k);

     p[k]=m;


}

void sort(int*p,int n)

{

int i,j;

for(i=1;i<n;i++)

for(j=0;i+j<n;j++)

if(p[j]>p[j+1])

{  int t;

   t=p[j+1];

p[j+1]=p[j];

p[j]=t;

}

}

void main()

{

int a[MAX];

int n,i,m,d;

printf("输入数据个数(n<40):");

d=scanf("%d",&n);

while(d!=1&&n>=40)

{   system("cls");

   fflush(stdin);

printf("请重新输入:");

scanf("%d",&n);


}

   printf("请输入数组元素:");

for(i=0;i<n;i++)

scanf("%d",a+i);

printf("请输入要插入的数字:");

scanf("%d",&m);

  sort(a,n);

  insert(a,n,m);

  for(i=0;i<n;i++)

  printf("%d ",a[i]);

  printf("\n");

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-22
C语言数组怎么插入一个元素
这问题太深奥了。

第2个回答  2014-12-22
C语言数组在内存上是连续空间 定义后无法改动了
第3个回答  2014-12-22
插入一个元素,以前的不变,需要从新分配空间
第4个回答  推荐于2017-09-14
插入元素必须需要数组元素要比元素个数多,给出如下例:
#include <iostream>
using namespace std;
int main()
{
int arr[100];//声明数组;
int n;
cout<<"请输入元素的个数:";
cin>>n;//有多少个数组元素
cout<<"请输入元素:";
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
sort(arr,arr+n);//对数组进行从小到大排序
cout<<"请输入要插入的元素"<<endl;
cin>>arr[n];
sort(arr,arr+n+1);//对插入的元素进行从小到大排序
cout<<"排序后的元素:";
for(int i=0;i<n;i++)
{
cout<<arr[i]<<" ";
}
cout<<arr[n]<<endl;
return 0;
}
相似回答