2017-01-23 5 views
-1

ユーザーが標高を入力し、コードが合計上昇、総降下、および正味の変化を出力するコードを作成する必要があります。これは私が下にあるものです。私はそれが私が望むものを出力させるためにコードする方法を理解できません。配列の違いを出力する

#include <iostream> 

using namespace std; 

int main() 
{ 
int array[2010], n, c, d, swap; //the array 

printf("Enter number of elements\n"); 
scanf("%d", &n); 

printf("Enter %d integers\n", n); 

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

for (c=0 ; c < (n - 1); c++) 
{ 
    for (d = 0 ; d < n - c - 1; d++) 
    { 
     if (array[d] > array[d+1]) /* For decreasing order use < */ 
     { 
     swap   = array[d]; 
     array[d]  = array[d+1]; 
     array[d+1] = swap; 
     } 
    } 
} 

printf("Sorted list in ascending order:\n"); //lists in order 

for (c = 0 ; c < n ; c++) 
    printf("%d\n", array[c]); 


// Returns minimum difference between any pair 
int findMinDiff(int arr[2010], int n);  //supposed to find differce 
{ 
    // Initialize difference as infinite 
    int diff = INT_MAX; 

    // Find the min diff by comparing difference 
    // of all possible pairs in given array 
    for (int d=0; d<n-1; d++) 
    for (int j=d+1; j<n; j++) 
     if (abs(array[d] - array[d--]) < diff) 
      diff = abs(array[d] - array[d--]); 
    cout<<"Total Climb "<<diff<<endl; 
} 


system("pause"); 
return 0; 

} 
+1

*私は本当に助けが必要です、これは水曜日です!*これは通常、デモテーターです。その行を削除する方が良いでしょう。また、期待される出力と、得られる出力とは何かを示します。 –

+0

数字をソートする場合は 'std :: sort'があります。一度ソートされると、 "min_diff"は隣接する要素の違いを調べることによって行うことができます。 – Jarod42

+0

あなたはC++を学んでいますか?単一の 'cout'を除いて、コードはすべて' C'プログラミングです。 – PaulMcKenzie

答えて

0

なぜ配列をソートするのかわかりません。配列をソートすると、「総上昇量」と「総降下量」を計算する際に問題が発生することがあります。

この割り当ては、2つの数値の差を計算し、その差を処理す​​ることです。

void Process_Data(int array[2010], unsigned int quantity_of_climbs) 
{ 
    int total_climb = 0; 
    int total_descent = 0; 
    int minimum_change = INT_MAX; 
    for (int i = 0; i < quantity_of_climbs - 1; ++i) 
    { 
    const int height_change = array[i] - array[i+1]; 
    if (height_change > 0) // A "climb" 
    { 
     total_climb += height_change; 
    } 
    if (height_change < 0) // A "descent" 
    { 
     total_descent = (-1) * height_change; // Change from negative to positive. 
    } 
    const int abs_height_change = abs(height_change); 
    if (abs_height_change < minimum_change) 
    { 
     minimum_change = abs_height_change; 
    } 
    } 
    // Display results 
}