0

1) 次のような単純な式の (代用) ソルバーを作成したい:

Revenue = Cost * (1 + GrossMargin)

ユーザーへの 3 つの質問につながります。

  • 収益 ?
  • 料金 ?
  • 総利益 ?

ユーザーはこれらの 3 つの質問のうち 2 つに答えるように求められ、プログラムは 3 つ目の質問を計算します。

これは私の(まったくの初心者)の試みです:

//
//  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) 私の (ジュラシック) Palm Pilot には、MathPad (Rick Huebner著、 http://www.palmspot.com/software/detail/ps52a_98295.htmlを参照) と呼ばれる注目に値するソルバー プログラムがあり、C で書かれている可能性があります。

同等のものが開発され維持されているかどうか知っていますか?

前もって感謝します

4

1 に答える 1

1

プログラムは次の計算を使用します。

Revenue = Cost * (1 + GrossMargin);

ゼロと入力された場合Revenue、それは正しいでしょう。しかし、とCostに有効な値を入力したときに、計算するつもりでゼロを入力した場合はどうなるでしょうか。おっしゃるとおり、見事に失敗します。RevenueCost

最も簡単な解決策は、入力された数量のどれがゼロであるかを確認し、それに応じて計算することです。このようなもの:

if(Revenue == 0)
    Revenue = Cost * (1 + GrossMargin);
else if(Cost == 0)
    Cost = Revenue / (1+GrossMargin);
else
    GrossMargin = (Revenue-Cost)/Cost;

次に、値を表示します。

于 2013-10-20T13:12:45.947 に答える