• 2021-04-14
    在一个数组中删除指定位置元素的值。编写一个voidInput(int*a)函数用...用于实现输出n个元素的数组中的全部元素。
  • #include "stdio.h" #define N 5 void Input(int *a) { int i; for(i=0;i< N;i++) scanf("%d",a+i); } void Delete(int *a,int i) { int j; for(j=i+1;j< N;j++) *(a+j-1)=*(a+j); } void Print(int *a,int n) { int i; for(i=0;i< n;i++) printf("%d\t",a[i]); printf("\n"); } int main() { int b[N],i; printf("请输入%d个整数:\n",N); Input(b); printf("请输入待删除元素的下标(0~%d):\n",N-1); while(1) { scanf("%d",&i); if(i>=0&&i< N) break; printf("输入错,请重新输入:\n"); } Delete(b,i); printf("删除下标为%d的元素后的数组为:\n",i); Print(b,N-1); return 0; }

    举一反三

    内容

    • 0

      定义一个包括n个元素的一维数组a,并从键盘输入这n个元素,程序填空。 int n,i; cin>>n; int 【】;//定义数组 for(i=0;i&#91;n;i++) cin&#93;>【】;//输入数组元素

    • 1

      设线性表有n个元素,以下操作中,__________在单链表上实现要比在顺序表上实现效率更高。 A: 删除指定位置元素的后一个元素 B: 在第一个元素的后面插入一个新的元素 C: 顺序输出前k个元素 D: 交换第i个元素和第n-i+1个元素的值(没,2,…,n)

    • 2

      如果定义 int a[5];说明数组中共有___个元素,数组元素a[3]表明该元素是数组中的第____个元素

    • 3

      如果定义"int al5&#93;;",说明数组中共有()个元素,数组元素a&#91;3&#93;表明该元素是数组中的第()个元素。

    • 4

      如果线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是____;第i个元素(1<=i<=n)之前插入一个元素时,需向后移动____个元素。如果要在第1个元素前插入一个元素,要后移动____个元素;删除第i个元素(1≤i≤n)时,需向前移动____个元素。向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动____个元素。