编写一个函数实现:删除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]区间内的个位数。
裁判测试程序样例:
#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
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc)
void deleted(int a[], int n, int k)
{
int i, j;
for (i = 0, j = 0; i < n; i++)
{
a[j++] = a[i];
if (i == k)
{
a[j-1] = a[i+1];
i++;
}
}
a[j] = '\0';
}