C++:循环中的除法问题
C++ : Issue with division in loop
我正在学习C ++,第一学期的学生,
我正在尝试循环划分 2 个数组并将其结果存储在不起作用的第 3 个数组中。除除法外的所有其他操作都有效,以下是我的代码
#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 和 float,但它不起作用需要您的帮助。
您需要在除法之前强制转换操作数,否则它将使用整数除法,其小数被削掉。 使用 c 样式转换,它看起来像:
arr3[l]= (double)arr[l] / (double)arr2[l];
请注意,C++有自己的转换语法,但是我已经有一段时间没有使用它们了,并且不记得确切的了。我认为它看起来像:
arr3[l] = static_cast<double>(arr[l])
/ static_cast<double>(arr2[l]);
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 余数除法和不允许除以零 (c++) 时遇到问题
- 关于使用类型转换优化除法代码的问题
- "Primitive Calculator" - 创建除法循环时出现问题
- C++:循环中的除法问题
- 浮点数- c++中的除法和计数问题
- c++中的除法问题