C语言题目一题,求高手解答,感谢!

已有定义“inta[10]={1,2,3,4,5,6,7,8,9,10;}”,输入一个下标值K,从数组中删除与该下标对应的元素,要求删除操作在函数中完成。步骤:(1)定义... 已有定义“int a[10]={1,2,3,4,5,6,7,8,9,10;}”,输入一个下标值K,从数组中删除与该下标对应的元素,要求删除操作在函数中完成。
步骤:
(1)定义mydel函数,从数组a中删除K下标元素。
①通过int mydel(int*p,int n, int k)确定函数首部。
②定义mydel函数中用到的整形变量i。
③通过指针p删除数组a中下标为k的元素。
④将存放数组元素个数的变量n减1。
⑤返回n值。
(2)定义Myout函数,输出数组a中各元素。
①通过void myout(int *a,int n)确定函数首部。
②通过指针a输出数组中各元素的值。
(3)定义主函数
①定义并初始化一维数组“a[10]={1,2,3,4,5,6,7,8,9,10};”,定义整型变量n和k。
②给变量k输入值,确定要删除的元素下标。
③通过语句“myout(a,10);”调用myout函数,输出删除操作前的a数组。
④通过语句“n=mydel(a,10,k);”调用mydel函数,删除数组a中下标为k的元素,通过变量n接受删除后数组元素的个数值。
⑤通过语句“myout(a,n);”调用myout函数,输出删除操作后的a数组。
展开
 我来答
_flyinet_
2010-12-28
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
#include <stdio.h>
int mydel(int*p,int n, int k);
void myout(int *a,int n);
int main() {
int a[10]={1,2,3,4,5,6,7,8,9,10};
int n = 10,k=0;
printf("input the k number to delete\n");
scanf("%d",&k);
if (k<1 || k>10) {
printf("input number error\n");
}
myout(a,10);
n = mydel(a,n,k);
myout(a,n);

return 0;
}

int mydel(int*p,int n, int k) {
if (k>n || k<1) return n;
p=p+k;
int c = n-k;
while(c--> 0) *(p-1) = *p++;
return --n;
}

void myout(int *a,int n) {
int i=0;
for (;i<n;i++) printf("%d\t",a[i]);
printf("\n");
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式