2017-02-04 12 views
0

ループにおける部門との問題、C++:私はC++、最初の学期の学生を学んでい

私はループ内で2つの配列を分割し、他の操作が分裂以外に動作しworking.Allていない第三の配列でその結果を格納しようとしています以下の分割出力のための私のコード

#include<iostream> 
using namespace std; 
int main(){ 
int arr[6]={10,20,30,40,50,06}; 
int arr2[6]={10,20,20,30,40,50}; 
int input; 
cout<<"please enter 1 for addition.... "<<endl; 
cout<<"please enter 2 for subtraction.... "<<endl; 

cout<<"please enter 3 for multiplication.... "<<endl; 
cout<<"please enter 4 for division.... "<<endl; 
cout<<"please enter 5 for %age...."<<endl; 
cin>>input; 
float arr3[6]; 

int i,j,k,l,m; 

switch(input){ 
case 1: 
for(i=0;i<6;i++){ 

arr3[i]=arr[i]+arr2[i] ; 
    cout<<arr3[i]<<endl; 

} 
break; 
case 2: 
for(j=0;j<6;j++){ 
    arr3[j]=arr[j]-arr2[j]; 
    cout<<arr3[j]<<endl; 

    } 
    break; 
case 3: 
for(k=0;k<6;k++){ 
    arr3[k]=arr[k]*arr2[k]; 
    cout<<arr3[k]<<endl; 

} 
break; 
case 4: 
for(l=0;l<6;l++){ 
    arr3[l]=arr[l]/arr2[l]; 
    cout<<arr3[l]<<endl; 

} 
break; 
case 5: 
for(m=0;m<6;m++){ 
    arr3[m]=arr[m]/(arr[m]+arr2[m]); 
    cout<<arr3[m]<<endl; 

} 
break; 
} 

} 

されている。

1 
1 
1 
1 
1 
0 

私はあなたの助けをしてください必要dobuleとしてそのデータ型を設定し、両方のフロートが、そのが動作していないために疲れました。

答えて

0

をキャストする必要があります。に分割する前にキャストする必要があります。小数点以下を切り捨てた整数除算を使用します。

arr3[l]= (double)arr[l]/(double)arr2[l]; 

注意、C++は、独自の鋳造構文を持っていますが、それはしばらくの間、私はそれらを使用していたことからきていますし、正確にそれを思い出すことができない:Cスタイルのキャストを使用して、それは次のようになります。私はそれが次のようになると思う:

arr3[l] = static_cast<double>(arr[l]) 
     /static_cast<double>(arr2[l]); 
+0

私は私の答えを得ました。 –

関連する問題