题目:
编写一个函数实现:删除n个元素的数列中下标为k的元素。
测试程序将输入一个下标值,调用本函数,删除数列{1,4,13,9,6,11,18,14,25}中该下标位置的元素,并输出删除后的数列。
函数接口定义:
void deleted ( int a[], int n, int k);
其中 a 、n和 k 都是用户传入的参数。 a是数列所在数组的首地址; n 是数列元素个数, k 是[0, 8]区间内的个位数。
裁判测试程序样例:
c
#include <stdio.h>
void deleted ( int a[], int n, int k);
int main()
{
int a[9]={1,4,13,9,6,11,18,14,25},k;
int i;
scanf("%d",&k);
deleted(a,9,k);
for(i=0;i<8;i++)
printf("%4d", a[i]);
return 0;
}
/*请将答案写在这里*/
输入样例:
输入一个[0,8]间的个位数
0
输出样例:
输出数组中各元素占4列
4 13 9 6 11 18 14 25
解题过程
c
#include <stdio.h>
void deleted(int a[], int n, int k){
if (k < 0 || k >= n){
return;
}
for (int i = k; i < n - 1; i++) {
a[i] = a[i + 1];
}
}