2016-09-30 6 views
0
#include <iostream> 

using namespace std; 

int main() 
{ 
    int somma[9],k=0,f=11; 
    somma[k]=somma[k]+f; 
    cout << "somma:" << somma[k]; 
    system("PAUSE"); 
} 

これは私のコードです。私は出力値 "11"を期待していますが、 "10"を得ています。 このエラーはなぜ発生しますか?C++の特異エラー

+0

コードを修正してください –

+0

どこに問題がありますか – user3520954

+0

あなたは今答えを持っています:)それを見てください –

答えて

2

somma[k]+fを使用すると、配列somma[0]未初期化要素の値を読み取ることになります。これを行う際の動作は、が定義されていませんです。だから、出力は何でもかまいません。

解決策は、代わりにint somma[9] = {};と書いて、すべての要素を0に設定することです.Cで移植性が必要な場合は、代わりに= {0};と書いてください。

また、C++でmain()の値を明示的に返すことをお勧めします。

using namespace std;より前に改行する必要がありますが、これはおそらくコードを投稿した方法によるものです。

+0

ok最初にエラーが表示されます。しかし、私はsomma [k] = 0; – user3520954

+0

spossible solution - arrayを他の変数として追加することができます。 – Slava

+0

@ user3520954 'int somma [9] = {};' 0で配列を初期化する – Slava

関連する問題