C語言是一門程序語言,是很多程序員的入門語言康聂,而在C語言中指針與數(shù)組是特別中的一個知識點贤徒,那么下面Jeremy和大家聊聊如何使用指針來操作數(shù)組中的元素
插入元素
輸入n個整數(shù)(1<=n<100),并在指定位置p處插入新元素,輸出最后的結(jié)果.
輸入格式:
每個測試包含2行輸入.第1行n,p,q,其中p,q分別表示需要插入的位置和需要插入的元素值(1<=p<=n+1, 且q符合int型數(shù)據(jù)范圍). 第2行表示n個整數(shù). n,p,q均為0時,表示測試結(jié)束.
輸出格式:
輸出最后的結(jié)果
輸入樣例:
在這里給出一組輸入尘应。例如:
5 1 4
1 2 3 4 5
6 3 9
2 4 6 8 0 2
0 0 0
輸出樣例:
在這里給出相應(yīng)的輸出。例如:
4 1 2 3 4 5
2 4 9 6 8 0 2
#include<stdio.h>
int main(){
int a[100],n=1,p=1,q=1,*t=a,*s=a,*r=a;
while(1){
scanf("%d%d%d",&n,&p,&q);
if((n<0||n>100)||(n==0&&p==0&&q==0)){
return 0;
}
t=a;//令t指向數(shù)組a首地址
s=t+n-1;//使s指向輸入的最后一個元素
for(;t<=s;t++)scanf("%d",t);//循環(huán)往數(shù)組中添加元素
t=a;
r=t+p-1;//令r指向第p個元素
//將第p個元素以及之后面的每個元素進行往后賦值
for(;s>=r;s--){
*(s+1)=*s;
}
//對r指向的位置的數(shù)組元素賦值
*r=q;
//完成對指定位置的元素添加
s=t+n;//使s指向添加完元素的數(shù)組a的最后一個元素
for(;t<=s;t++)printf("%d ",*t);
printf("\n");
}
return 0;
}
如有更好的想法以及實現(xiàn)方式连躏,歡迎討論交流。