1)我想创建一个(替代的)求解器,其中有一个简单的表达式,例如:
Revenue = Cost * (1 + GrossMargin)
会向用户提出 3 个问题:
- 收入?
- 费用?
- 毛利率?
用户被要求回答这 3 个问题中的 2 个问题,程序计算第三个问题。
这是我(完全新手)的尝试:
//
// main.c
// LearningC
// Created by ThG on 19/10/13
//
#include <stdio.h>
int main(int argc, char *argv[])
{
// Variables
float Cost = 0;
float GrossMargin = 0;
float Revenue = 0;
// Ask the User
printf("What is your Revenue ? : ");
scanf("%f", &Revenue);
printf("What is your cost ? : ");
scanf("%f", &Cost);
printf("What is your Gross Margin goal ? : ");
scanf("%f", &GrossMargin);
// Equation
Revenue = Cost * (1 + GrossMargin);
// Nested ifs or expressions "Solver"
if (Revenue == 0)
{
printf("Your Revenue should be : %.2f $ * (1 + %.2f) = %.2f $\n", Cost, GrossMargin, Revenue);
}
else
{
if (Cost == 0)
printf("Your Cost should not be higher than : %.2f $ / (1 + %.2f) = %.2f $\n", Revenue, GrossMargin, Cost);
else
printf("Your GrossMargin is : %.2f $ / %.2f -1 = %.2f $\n", Revenue, Cost, GrossMargin);
}
return 0;
}
当然,这失败了(顺便说一句,(lldb 是什么意思?)。我应该如何继续?
我希望这个问题与 StackOverflow 的上下文无关。我应该明确指出这不是家庭作业吗(我退休了……)?
2) 我曾经在我的(Jurassic)Palm Pilot 上有一个名为 MathPad 的出色求解器程序(由 Rick Huebner 编写,请参阅 http://www.palmspot.com/software/detail/ps52a_98295.html ),可能是用 C 编写的。
你知道是否已经开发和维护了类似的东西吗?
提前致谢
最佳答案
您的程序使用此计算:
Revenue = Cost * (1 + GrossMargin);
如果收入
输入为零,则它是正确的。但猜猜如果您打算计算成本
并将其输入为零,同时为收入
和成本
输入有效值,会发生什么。正如你所说,它会惨败。
最简单的解决方案是检查哪个输入的数量为零并进行相应的计算。像这样的事情:
if(Revenue == 0)
Revenue = Cost * (1 + GrossMargin);
else if(Cost == 0)
Cost = Revenue / (1+GrossMargin);
else
GrossMargin = (Revenue-Cost)/Cost;
然后显示您的值(value)观。
关于c - 如何用 C 语言编写求解器程序的替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19477673/