將陣列中的0移到尾邊

View as PDF

提交答案

分數: 100
時間限制: 1.0s
記憶體限制: 128M

作者:
題目類型
允許的語言
ADA, C, C++, clang, clang++, Java 11, text, ZIG

問題簡述:

給定一個隨機內容的陣列(請先輸入陣列大小,再輸入陣列內容。),並將陣列中所有的0移至尾端。例如一個陣列arr:

arr[] = {1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0}

將陣列arr中所有的0移至尾端後得到的陣列:

arr[] = {1, 9, 8, 4, 2, 7, 6, 0, 0, 0, 0}。

其中所有其他元素的順序不變。

需要完成及繳交的函式:

void pushZerosToEnd(int arr[], int n)函式

  • arr:為含有資料的陣列(也就是你要處理的陣列)。
  • n:則是陣列的大小。
void pushZerosToEnd(int arr[], int n) {
  // 請完成並繳交本函式
}

程式樣板:

// C program to rotate an array by 
// d elements 

#include "array.h" 


// Driver program to test above function 
int main() 
{ 
    int a, n;
    int arr[1000];

    scanf( "%d", &n );
    for( a = 0; a < n; a++ )
        scanf( "%d", &arr[a] );

    pushZerosToEnd(arr, n); 

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

void pushZerosToEnd(int arr[], int n) {
  // 你的程式碼
}

範例測資:

測資 1

輸入

11
1 9 8 4 0 0 2 7 0 6 0

輸出

1 9 8 4 2 7 6 0 0 0 0

測資 2

輸入

7
1 2 0 9 3 0 4

輸出

1 2 9 3 4 0 0

測資 3

輸入

20
0 0 0 21 23 0 76 22 0 22 0 21 74 96 0 34 54 47 23 0

輸出

21 23 76 22 22 21 74 96 34 54 47 23 0 0 0 0 0 0 0 0

測資 4

輸入

8
7 5 6 0 0 2 0 1

輸出

7 5 6 2 1 0 0 0

測資 5

輸入

10
1 3 0 0 2 0 5 0 8 9

輸出

1 3 2 5 8 9 0 0 0 0

留言

目前沒有評論。