題目介紹如下。
自己寫的**可以解決根據輸入的數字個數和數字判斷最大值最小值問題,但是我在處理多組資料連續輸入的時候,實在處理不好,另外最大值最小值的判斷是使用的函式,使得整個程式記憶體和執行時間都不大理想。
1後來參考了答案,多組資料的輸入的是通過乙個while迴圈,利用scanf的返回值(scanf返回接收到的變數值的個數)進行判斷,覺得十分巧妙。
整個**如下:
#include const int n = 101;
int main()
{ int a[n];
int n,i,max,min;
while(scanf("%d",&n)==1)
{max = -1,min = 101;
for(i=1;i<=n;i++)
{scanf("%d",&a[i]);
if(a[i]>max) max = a[i];
if(a[i]它的最大值最小值的判斷也十分精簡,效率比函式實現高得多,希望自己能夠從中學得一點思想。
求連續子串行的最大值
問題描述 有一串數字 可正可負的int,放在陣列num裡 要求找到起始位置start和終止位置end,使得從start位置到end位置的所有數字之和最大,返回這個最大值max。演算法思想 使用動態規劃。設 f x 為以 a x 終止且包含 a x 的最大序列的和,有 f 1 a 1 f x 1 f ...
求最大連續子陣列和的最大值
題目描述 給定乙個陣列a 0,n 1 求a的連續子陣列,使得該子陣列的和最大。eg 1,2,3,10,4,7,2,5的最大子陣列為3,10,4,7,2 演算法分析 記s i 為以a i 結尾的陣列中和最大的子陣列,則s i 1 max s i a i 1 a i 1 s 0 a 0 遍歷i 0 i ...
求矩陣最外圍元素的最大值 最小值
給定乙個n n 2 行10列的整數矩陣a,函式maxmin 計算 矩陣最外圍元素 指第一行 最後一行的元素,以及第一列 最後一列的元素 的最大值和最小值,並將最大值存入變數mx,最小值存入變數mn。maxmin 的第乙個引數是二維整數陣列a,第二個引數是a的行數n n 10 例如,main 函式中a...