藍橋杯 練習系統 演算法訓練 動態陣列使用

2021-10-08 22:14:10 字數 1188 閱讀 3455

題目要求:

從鍵盤讀入n個整數,使用動態陣列儲存所讀入的整數,並計算它們的和與平均值分別輸出。要求盡可能使用函式實現程式**。平均值為小數的只保留其整數部分。

知識點:

動態陣列是在程式執行時建立的,可以根據使用者需要,有效利用儲存空間;靜態陣列在宣告時就已經確定大小的陣列,即陣列元素的個數固定不變。

靜態陣列: 

int a[10];

int a=;

陣列的長度必須為常量。

動態陣列:

int len;

int *a=new int [len];

delete a;

陣列的大小可以為變數。

注意不能這樣做:

int p[len];

c++編譯器會報錯說len的大小不能確定,因為用這種形式宣告陣列,陣列的大小需要在編譯時確定。

也不能這樣:

int p=new int[len];

編譯器會說不能把int*型轉化為int型,因為用new開闢了一段記憶體空間後會返回這段記憶體的首位址,所以 要把這個位址賦給乙個指標,所以要用int *p=new int[len];

**:

沒有用動態陣列在藍橋杯測試系統中也可以通過:

#include

using

namespace std;

intans

(int a,

int n)

return sum;

}int

main()

int sum=

ans(a,n)

; cout<" "

}

用動態陣列的:

#include

#include

intmain()

printf

("%d %d\n"

,sum,sum/n)

;return0;

}

malloc函式,中文叫動態記憶體分配,用於申請一塊連續的指定大小的記憶體塊區域以void*型別返回分配的記憶體區域位址。

使用malloc函式,如果分配成功則返回指向被分配記憶體的指標(此儲存區中的初始值不確定),否則返回空指標null。

藍橋杯練習 演算法訓練

演算法訓練 審美課 時間限制 1.0s 記憶體限制 256.0mb 問題描述 審美的歷程 課上有n位學生,帥老師展示了m幅畫,其中有些是梵谷的作品,另外的都出自五歲小朋友之手。老師請同學們分辨哪些畫的作者是梵谷,但是老師自己並沒有答案,因為這些畫看上去都像是小朋友畫的 老師只想知道,有多少對同學給出...

「藍橋杯」練習系統 入門訓練

include using namespace std int main 思路 若使用簡單迴圈相加會超時,用等差數列求和公式即可。注意n的規模在int的表示範圍 最大2147483647 之內,而結果的規模可能會超過int的表示範圍,所以使用long long型別。在n為偶數時,n 1 2會產生0....

藍橋杯備賽 演算法訓練 動態陣列使用

從鍵盤讀入n個整數,使用動態陣列儲存所讀入的整數,並計算它們的和與平均值分別輸出。要求盡可能使用函式實現程式 平均值為小數的只保留其整數部分。樣例輸入 53 4 0 0 2 樣例輸出 9 1樣例輸入 73 2 7 5 2 9 1 樣例輸出 29 4 個人分析 題目要求是動態陣列 我一般是用的vect...