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變數
不知道解釋清楚了沒有,要是不行再聯系我。