//感覺這個程式碼的邏輯不是刪除元素呢//整形陣列不需要加上"\0"結尾//另外刪除中間的一個元素,其後面的元素應該都往前移動才是#include<stdio.h># define N 10int main( ){ int delnum(int a[ ] , int num , int n); int a[N],num,i; int n = N; scanf("%d",&num); for(i=0;i<N;i++) scanf("%d",&a[i]); printf("\n"); n = delnum(a[N],num,N); //要利用這個返回值。} int delnum(int a[ ] , int num , int n){ int i,j,k; for(i=j=0; i<n; i++)//整形陣列,不需要以"\0"結尾,通常用n來確定邊界 if(a[i]!=num) a[j++]=a[i]; //a[j]="\0"; for(j; j<n;j++) //刪除元素後面的元素依次往前移動 a[j-1] = a[j]; return (n-1);}
//感覺這個程式碼的邏輯不是刪除元素呢//整形陣列不需要加上"\0"結尾//另外刪除中間的一個元素,其後面的元素應該都往前移動才是#include<stdio.h># define N 10int main( ){ int delnum(int a[ ] , int num , int n); int a[N],num,i; int n = N; scanf("%d",&num); for(i=0;i<N;i++) scanf("%d",&a[i]); printf("\n"); n = delnum(a[N],num,N); //要利用這個返回值。} int delnum(int a[ ] , int num , int n){ int i,j,k; for(i=j=0; i<n; i++)//整形陣列,不需要以"\0"結尾,通常用n來確定邊界 if(a[i]!=num) a[j++]=a[i]; //a[j]="\0"; for(j; j<n;j++) //刪除元素後面的元素依次往前移動 a[j-1] = a[j]; return (n-1);}