2017-03-26 8 views
0

私はこのコードを持っています。配列に何個の要素を入力したいのかをユーザに尋ねるのです。 要素は整数です - プログラムは入力された数値の合計を求めます。C++ - 配列に値を入れて(その和を求める)

#include <iostream> 
using namespace std; 

int main() 
{ 
int arr[20], i, n, sum=0; 

cout<<"How many elements you want to enter?: "; 
cin>>n; 
cout<<"Enter any "<<n<<" elements in Array: "; 

for(i=0;i<n;i++) 
cout<<"How many elements you want to enter?: "; 
cin>>n; 
cout<<"Enter any "<<n<<" elements in Array: "; 
for(i=0;i<n;i++) 
{ 
cin>>arr[i]; 
} 

cout<<"Sum of all Elements are: "; 

for(i=0;i<n;i++) 
{ 
sum=sum+arr[i]; 
} 
for(i=0;i<n;i++) 
{ 
    cout<<sum; 
    getch(); 
} 

私が動作するようには思えないし、プログラムが実行されませんので、私は実際の出力を置くことはできません。ここで

コードです。

予想される出力は、ユーザーが入力したすべての要素(整数)の合計になります。

+0

問題の詳細を教えてください。期待される出力と実際の出力を入力します。 (また、あなたのコードを適切に書式設定すると良いでしょう)。 – BoBTFish

+1

なぜnを求める前にループしていますか?あなたはnを一度尋ねるだけでよく、その周りにループを持たないようにしてください。 –

+0

入力後に要素を印刷してみてください。十分な印刷文は使用していません。 –

答えて

-2

出力またはエラーメッセージを表示すると便利です。以下のための整数または浮動小数点数にはcin変換する

試してみてください。ここでは

cin>>arr[i]; 
-1

はあなたの問題description.Itのためのプログラムは、ユーザからのあなたは配列に入力したいどのくらいの要素への入力を受け取りれ要素を取り込んで配列に保存し、配列要素の合計を計算します。

#include<iostream> 
#include<conio.h> 
using namespace std; 
int main() 
    { 
    int arr[20],i,n,sum=0; 
    cout<<"How many elements you want to enter: "; 
    cin>>n; 
    cout<<"Enter any "<<n<<" elements in Array: "; 
    for(i=0;i<n;i++) 
    { 
    cin>>arr[i]; 
    } 
    cout<<"Sum of all Elements are: " << endl; 

    for(i=0;i<n;i++) 
    { 
    sum=sum+arr[i]; 
    cout << "sum of a[" << i << "] = " << sum << endl; 
    } 
    cout<< "the sum of all the elements (integers) that the user entered = " << sum; 
    getch(); 
    return 0; 
    } 

は今、このプログラムは、ループの終わりにそうであり、[I]の要素の情報の和を与えます。

+0

私の答えは問題なく、ユーザーからの入力を受けて合計を計算します配列要素? –

+0

は、単にcout <、

+0

Askerはこの回答から何を学びましたか?切り取って貼り付けるには?混乱したコードは、彼らがすでにそれを知っていることを示唆している。彼らが学ぶ必要があるのは、プログラムを組み立ててデバッグする方法です。 – user4581301

0

基本的なアドバイス:あなたが行くようにデザインし、各段階でプリントアウトを使用して、入力された値を教えてください。

cin >> n; 

cout << "Please enter " << n << " values to sum: " << endl; 

for(i=0;i<n;i++) 
{ 
    cin >> arr[i]; 
    cout << "value #" << i << ": " << arr[i] << " entered." << endl; 
} 

あなたは基本的に、あなたのプログラムが初期データを入力するために動作することを確認している場合にのみ、処理の次のステージに移動します。一度に1つずつ処理の各段階を行い、現在の段階が何であるかを出力します。これにより、処理のどの段階でエラーが発生しているかを簡単に確認できます。後で印刷コマンドを意図した通りにして後でカットすることはできますが、そこに残してコメントアウトすることをお勧めします。誤った入力によってエラーが再び発生することがあります。デバッグプリントを有効にして、何が起きているかを伝えることができます。

0

配列でなければなりませんか?あなたは、このような簡単な方法でそれを行うことができます。

cout << "Enter number of elements\n"; 
cin >> n 

cout << "Please enter the elements \n" 
int temp = 0; 
int sum = 0; 
for(int i = 0; i<n ; i++){ 

    cin >> temp; 
    sum+=temp; 
} 

cout << "Sum is: " << sum << endl; 

を薄い一つ、あなたは..あなたは、最大配列サイズへのユーザーを制限するものではありませんでした、注意する必要があり、彼/彼女は21、あなたが持っているだろうと言いますオーバーフローし、エラーが発生します。

あなたはC++を使用しているので、私はあなたがベクトルに行くか、上記の簡単な方法を使用することをお勧めします。

関連する問題