配列の順次要素を合計して最大合計を出力するプログラムを作成する必要があります。すべての要素が負の場合、私のアルゴリズムは動作しません。数値フィールドの最大和を求める
#include <iostream>
int main()
{
int nums[1000] = {-1,-3,-4,-2,-5,-1,-9,-4,-2,-2};
int sums[100][100];
int n = 9;
for(int i = 0; i <= n; i++) {
for(int j = n; j >= i; j--) {
for(int k = j; k >= i; k--) {
sums[i][j] += nums[k];
}
}
}
int max_sum = 0;
int max_begin;
int max_end;
for(int i = 0; i <= n; i++) {
for(int j = i+1; j <= n; j++){
std::cout << "i = " << i << " j = " << j << ": " << sums[i][j] << "\n";
if(max_sum < sums[i][j]) {
max_sum = sums[i][j];
max_begin = i;
max_end = j;
}
}
}
std::cout << "Maximum: " << max_sum << " bei i = " << max_begin << " bis j = " << max_end;
return 0;
}
私はすでに、これは完全に正常に動作している間、私は別の方法を探していますので、我々はまだ私達の講義でclimitsを持っていなかった
#include <climits>
...
int max_sum = INT_MIN;
...
このソリューションを試してみました。
なぜ「climits」を使用できませんか?どうすれば['std :: numeric_limits'](http://en.cppreference.com/w/cpp/types/numeric_limits)ですか?あなたは意図的に標準的な解決を避けていますが、何のためですか? –
私は 'climits'を使うことができます。しかし、私たちの講義ではまだクライミングがなかったので、代替ソリューションが必要だと思っていました。私はそれを知ることに興味があります。 –
'std :: numeric_limits'をどうすればいいですか?私はそれを私のコードに統合する方法を見ることができません –