余数除法和不允许除以零 (c++) 时遇到问题
Having trouble with remainder division and not allowing dividing by zero (c++)
嗨,我对 c++ 和堆栈溢出相对较新。如果在提问时有任何特定的协议,请非常诚实,这样我在问其他问题时就不会犯同样的错误。
我正在尝试创建一个程序,该程序采用下图所示的输入。我想让用户不能除以零。我还想在计算后有十进制输出,但程序四舍五入到下。例如,如果我说股票股价是 50 1/2 并且有 10 个,那么它显示 500 而不是 505。
提前感谢!
#include <stdio.h>
#define addr(var) & var // programmer defined macro definition
#define MAXINT 2^32-1
int main(void)
{
char Ticker[6+1]; //Declare Ticker as String
int numOfShares;
float whole,num,dem;
float pricePerShare;
float stockValue;
int i=0;
bool inputOK = false;
int value;
for (i=1; i <= 10; i++)
{
printf("Enter the stock Ticker ==> ");
scanf("%s",&Ticker[0]); //Accept Ticker
printf("How many shares of %s were purchased: ",Ticker);
scanf("%d",&numOfShares);
printf("What is the price per share: ");
scanf("%d %d/%d",addr(whole), addr(num), addr(dem));
pricePerShare = whole + num / dem;
stockValue = numOfShares * pricePerShare;
printf(" Ticker Number of Price Stockn");
printf(" Symbol Share Per Share Valuen");
printf(" ===== ========== ========= ======n");
printf("%6s %4d %7.2f %8.2fn",
Ticker, numOfShares,pricePerShare,stockValue);
// %7.2f --> 9999.99
}
printf(" Press any key to continue ...");
fflush(stdin);
getchar();
return 0;
}
在尝试您的代码时,我遇到了与您的不同的问题。似乎它总是会截断整数部分而不是小数部分。
无论哪种方式,我都能够通过更改来修复它
scanf("%d %d/%d", ....
自
scanf("%f %f/%f", ....
但是,不确定这是否适合您。
编辑:
刚刚确认这似乎是问题所在(或至少在我的设备上(。
当whole
num
和dem
被声明为float
时,并且您正在将它们扫描为int
或%d
,它实际上将整数转换为其他数字(不确定那些是什么(,这一定导致了问题。
如果您想保留scanf("%d %d/%d ....
,还有另一种解决方法
您可以在开头将这些值声明为int
,并在执行计算时将num
或dem
转换为float
:
pricePerShare = whole + float(num) / dem;
相关文章:
- 编译包含字符串的代码时遇到问题
- 遇到新行时,有没有办法停止istream_iterator
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 在 for 循环中查找问题时遇到困难
- 创建结构的数组时遇到分段错误
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 为什么我遇到分段错误?
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- 为什么我在尝试模板时遇到视觉工作室C++错误
- 如何从文本文件中读取数值,直到遇到字符类型?
- 从其他类访问类时遇到问题
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 打印问题.我在数组中打印值时遇到一些问题
- 使用静态成员声明类时遇到问题
- 创建 Spdlog 异步文件记录器时遇到困难
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 查找奇数平方和时遇到麻烦