方法為:輸入一個(gè)數(shù)據(jù)x,將數(shù)組中的數(shù)據(jù)與x逐一比較,如果大于x,記錄下數(shù)據(jù)的下標(biāo),然后此數(shù)據(jù)下標(biāo)和其后的數(shù)據(jù)的下標(biāo)都加一,相當(dāng)于都向后挪一位,然后將x賦值給數(shù)組的那個(gè)下標(biāo)。
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁(yè)制作,對(duì)成都柴油發(fā)電機(jī)等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)成都網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
#includestdio.h
int main()
int i, j, k, x, a[11] =(3, 6, 7, 9, 12, 14, 15, 27, 29, 31) ;
printf("插入前數(shù)組的數(shù)據(jù)是:") ;
for(i=0;i10;i++)
printf("%4d",a[i] ) ;
printf("\n") ;
printf("請(qǐng)輸入要插入的數(shù)據(jù):") ;
scanf("%d",x) ;
for(i=0;i10;i++)
if(a[i]x)
break;
for(j=9; j=i; j--)
aLj+1] =aLj] ;
a[i]=x;
printf("插入后數(shù)組的數(shù)據(jù)是:") ;
for(i=0; i11; i++)
printf("%4d",[i] ) ;
return 0;
擴(kuò)展資料:
數(shù)組的使用規(guī)則:
1.可以只給部分元素賦初值。當(dāng){ }中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值。例如:static int a[10]={0,1,2,3,4};表示只給a[0]~a[4]5個(gè)元素賦值,而后5個(gè)元素自動(dòng)賦0值。
2.只能給元素逐個(gè)賦值,不能給數(shù)組整體賦值。例如給十個(gè)元素全部賦1值,只能寫為:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能寫為:static int a[10]=1;(請(qǐng)注意:在C、C#語(yǔ)言中是這樣,但并非在所有涉及數(shù)組的地方都這樣,數(shù)據(jù)庫(kù)是從1開始。)
3.如不給可初始化的數(shù)組賦初值,則全部元素均為0值。
4.如給全部元素賦值,則在數(shù)組說(shuō)明中, 可以不給出數(shù)組元素的個(gè)數(shù)。例如:static int a[5]={1,2,3,4,5};可寫為:static int a[]={1,2,3,4,5};動(dòng)態(tài)賦值可以在程序執(zhí)行過程中,對(duì)數(shù)組作動(dòng)態(tài)賦值。這時(shí)可用循環(huán)語(yǔ)句配合scanf函數(shù)逐個(gè)對(duì)數(shù)組元素賦值。
參考資料:
百度百科-數(shù)組
插入元素必須需要數(shù)組元素要比元素個(gè)數(shù)多,給出如下例:
#include?iostream
using?namespace?std;
int?main()
{
int?arr[100];//聲明數(shù)組;
int?n;
cout"請(qǐng)輸入元素的個(gè)數(shù):";
cinn;//有多少個(gè)數(shù)組元素
cout"請(qǐng)輸入元素:";
for(int?i=0;in;i++)
{
cinarr[i];
}
sort(arr,arr+n);//對(duì)數(shù)組進(jìn)行從小到大排序
cout"請(qǐng)輸入要插入的元素"endl;
cinarr[n];
sort(arr,arr+n+1);//對(duì)插入的元素進(jìn)行從小到大排序
cout"排序后的元素:";
for(int?i=0;in;i++)
{
coutarr[i]"?";
}
coutarr[n]endl;
return?0;
}
void??insert(?int?a[?],?int??n,?int??number?)
{
for?(int?i=0;in;i++)
{
if?(a[i]number)
continue;
else?
{
for?(int?j=n;ji;j--)
{
a[j]=a[j-1];
}
a[i]=number;
break;
}
}
if?(i==n)
a[i]=number;
}
#includestdio.h
#includestdlib.h
#define MAX 40
void insert(int*p,int n,int m)
{ int i,k;
for(i=0;in;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;in;i++)
for(j=0;i+jn;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("輸入數(shù)據(jù)個(gè)數(shù)(n40):");
d=scanf("%d",n);
while(d!=1n=40)
{ ? system("cls");
? ?fflush(stdin);
printf("請(qǐng)重新輸入:");
scanf("%d",n);
}
printf("請(qǐng)輸入數(shù)組元素:");
for(i=0;in;i++)
scanf("%d",a+i);
printf("請(qǐng)輸入要插入的數(shù)字:");
scanf("%d",m);
? sort(a,n);
? insert(a,n,m);
? for(i=0;in;i++)
? printf("%d ",a[i]);
? printf("\n");
}