c删除算法
‘壹’ c语言 (删除算法)随机输入10个整数存入数组中,再输入一个key值,若数组中有与key相同的值,删除之;若
我写了一个,严格说不算删除数组中与key相同的值,不过你可以改一下。
#include <stdio.h>
int main()
{
int i,j=0,key,a[10];
printf("请输入10个整数:\n");
for(i=0;i<10;++i)
{
scanf("%d",&a[i]);
}
printf("请输入一个你想删除的整数key值:\n");
scanf("%d",&key);
for(i=0;i<10;++i)
{
if(a[i]==key)j=i; //j代表与key值相同的数的位置
}
if(j==0)
printf("%d不存在!\n",key);
else
{
printf("新数组:\n");
for(i=0;i<10;++i)
{
if(i!=j)
printf("%d ",a[i]);
}
}
return 0;
}
‘贰’ 单链表的删除算法,为什么这道题选A而不选c呢求告知多谢!!!
C选项最后那句是free(q),但是我们要删除的是结点A,而不是A的下一个结点
A选项,把p的数据换成了下一个结点的数据,达到删除的目的,而同时下一个结点q就没有用了,那最后要free(q)
‘叁’ 求助C语言 单链表的插入、删除算法 的一些问题
第一个问题和第三个问题都是引用的意思,就是在函数中改变该变量的值会影响调用的地方的值,同时这样如果是大的对象,不是复制一个值而是原来的变量,只是一个别名。
第二个问题&&是与的意思,也就是说当p指针不为空并且j < i-1时候执行循环
最后一个三句话意思是删除一个元素,在此处删除的是指针q指向的元素,用q指向要删除的元素,然后第二句话是让当前指针的下一个元素指向q的下一个元素,也就是删除了q,然后把要删除的元素的值也就是data赋给e变量
不知道解释清楚了没有,要是不行再联系我。