編寫一個函數int delnum(int *a , int num , int n),用于在長度是n的數組a中,刪除一個指定的元素num。# define N 10main( ){int a[N] , num;scanf(“%d”,&num);輸入N個數到數組a中;調用delnum函數在數組a中刪除指定的數num;輸出刪除了num后的數組a;}
2 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
#include<stdio.h>
#define N 10
void delnum(int *a,int num,int n)
{
int i=0;
while(a[i]!=num&&i<n-1)
i++;
while(i<n-1)
{
a[i++]=a[i+1];
}
}
int main(int argc, char *argv[])
{
int i,a[N]={0};
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n刪除前數組:\n");
for(i=0;i<N;i++)
printf("%4d ",a[i]);
printf("\n輸入要刪除的數據:");
scanf("%d",&i);
delnum(&a,i,N);
printf("\n刪除后數組:\n");
for(i=0;i<N;i++)
printf("%4d ",a[i]);
system("PAUSE");
return 0;
}

SMILET
TA貢獻1796條經驗 獲得超4個贊
首先跟你說下 刪除的實質 :就是將他的內存空間替換。也就是說,你要刪除 a【1】 就相當于 把 a【1】的存儲空間分配給 a【2】 。如此類推。(刪除1,就將后面的全部向前移動。)接下來的事情就比較簡單了。利用for來完成
添加回答
舉報
0/150
提交
取消