C语言数组中删除给定下标的元素,哪里不对?该怎么改?谢了!!

#include<stdio.h>intmain(){inta[10]={0,1,2,3,4,5,6,7,8,9};inti,j;intmdele(int*p,intn,... #include<stdio.h>
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i,j;
int mdele(int *p,int n,int j);
printf("Enter j:");
scanf("%d",&j);
mdele(a,int n,j);
for(i=0;i<=8;i++)
printf("%d",a[i]);
}
mdele(int *p,int n,int j)
{
for(n=j;n<=9;n++)
p[n]=p[n+1];
}
展开
 我来答
___008
2012-06-03
知道答主
回答量:20
采纳率:100%
帮助的人:19.5万
展开全部
C语言数组 不能直接删除元素,只能清零
int mdele(int *p,int n,int j);

int main()
{
更多追问追答
追问
什么意思?我看不懂呢?应该怎么改啊?谢谢了!!
追答
我想问下 这个做什么用?没有理解清除数组元素的目的?
或者这么说 想把一个10个元素的数组变成 9个8个。。。,还是想把这个数组里边的数清零?

#include

int mdele(int *p,int j);
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i,j;

printf("Enter j:");
scanf("%d",&j);

mdele(a,j);

for(i=0;i<=8;i++)
printf("%d",a[i]);
return 0;
}
mdele(int *p,int j)
{
int n;
for(n=j;n<=9;n++)
p[n]=p[n+1];
} //研究了半天 改成现在的样子。。。

经过调试这个结果最接近你的要求。。。 总感觉这样操作数组没什么意义。。。
让我来防科比
2012-06-03 · 超过11用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:27万
展开全部
#include<stdio.h>
void mdele(int *p,int j);
int main()
{

int a[10]={0,1,2,3,4,5,6,7,8,9};
int i,j;

printf("Enter j:");
scanf("%d",&j);
//if()
mdele(a, j);
for(i=0;i<=8;i++)
printf("%d",a[i]);
return 0; //因为是int main() 需要返回一个整形
}
void mdele(int *p,int j) //没有参数返回 前边加void
{
int n=0;
for(n=j;n<=9;n++)
p[n]=p[n+1];
}
简单改了一些细节 我压根都看不懂你的程序有什么意思,函数中的n没有意义我去掉了, 想删除元素的话 如上边所说 C语言数组 元素清零当作删除把 你的子函数对输出毫无关系
追问
运行结果正确,是我想要的结果!但是课本题目中要调用的函数是这样的 mdele(int *p,int n,int j)
怎么改成里面三个参数啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
onlyoplover
2012-06-03
知道答主
回答量:51
采纳率:0%
帮助的人:26万
展开全部
#include<stdio.h>
int main()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
int i,j;
int mdele(int *p,int n,int j);
printf("Enter j:");
scanf("%d",&j);
mdele(a,int n,int j);
for(i=0;i<=8;i++)
printf("%d",a[i]);
}
mdele(int *p,int n,int j)
{
for(n=j;n<=9;n++)
p[n]=p[n+1];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式