c語言陣列刪除正數,不另設定陣列

2022-10-07 18:41:23 字數 715 閱讀 7156

1樓:匿名使用者

很簡單啊。

只給個思路,程式自己寫,

for 迴圈遍歷整個陣列 (for i=0;i檢查每個陣列元素,如果是正數,就把後面的每個元素都往前移一位,把這個正數覆蓋掉 if(a[i]>0), for(k=i;k對於最後一個元素要單獨處理,如果最後一個數是正數(a[length-1]>0),那這個數往後所有的數都刪除(用什麼特殊字元取代,或者用長度標識也行),如果不是正數,則不用處理

對於第2步可以做優化,就是在發現某數是正數後,就依次檢查後面聯結幾個數是不是正數,如果聯續n個數都是正數,就把n個元素後面所有元素往前移n個位置。要考慮好邊界條件,免得邊界出錯。比如最後一個元素,比如n個元素實際已經到達最後一個元素,不必再移動等。

2樓:風若遠去何人留

供參考#include

int rem(int * a, int l)return j;

}int main()

;int n = 10;

int i;

for(i = 0; i < n; i ++)printf("%d ", a[i]);

printf("\nafter remove \n");

n = rem(a, n);

for(i = 0; i < n; i ++)printf("%d ", a[i]);

printf("\n");

return 0;}

c語言陣列問題,C語言陣列問題

int main i for i 0 i 這個要問數學老師才知道。c語言陣列問題 你的 問題有以下幾個 1 min和max沒有初始化 2 對於a min 和a max 沒有做迴圈參考 如下 include main printf 最大數是 d,下標是 d,最小數是 d,下標是 d n a max m...

c語言陣列的下標,C語言陣列的下標

樓主你好。注意a是常量,不要被別人誤導了。實際上a是陣列名代表陣列的首地址 注意雖然陣列名和指標都代表地址,但是陣列名不是指標,指標是變數,這個a是常量,可以叫指標常量 而i實際上可以看做陣列中的元素距離陣列首地址的偏移量 距離 a i 就是取距離陣列首元素距離為i的陣列中元素的值,也就是a i 了...

c語言,陣列名與陣列元素的關係,C語言,陣列名與陣列第一個元素的關係

主要有bai如下區別 1 數du組zhi名代表 陣列的首地址,若daoc abcdef 則陣列名c代表陣列元素內 a 的地址。2 s用於輸出一容個字串,對應的引數是陣列名 即陣列的首地址 輸出從陣列起始位置到陣列中第一個 0 之間的全部字元。2 c用於輸出一個字元,即字元的值。而陣列名是陣列的首地址...