-1

私はCを学んでおり、現在、コマンドラインプログラムを進めています。通常の電卓と同じように、n個の項を相互に追加するプログラムを作成することに興味があります。数nは、ユーザーが入力する用語の数によって定義されます(操作の前にユーザーが明示的に入力したユーザー指定のnとは対照的です)。これはどのように行うことができますか?whileこれにはループを使用する必要がありますか?

これまで、ユーザーが入力できる用語の数を単純に定義してみました(最大10の用語、それより少ない場合は、残りの用語をゼロに置き換えるだけです)。

scanf("%f%c%f%cf%cf%cf%cf%cf%cf%cf%cf", &num1, &op, &num2, &op, &num3, &op, &num4, &op, &num5, &op, &num6, &op, &num7, &op, &num8, &op, &num9, &op, &num10);

    // addition
    if (strcmp(&menuchoice, "a") == 0)
        {
            num3 = num1+num2+num3+num4+num5+num6+num7+num8+num9+num10;
            return num3;
        }
4

1 に答える 1

3

n個の数字を入力した後でのみ合計を表示したい場合は、すべての数字が入力されたことを確認する方法が必要になります。これを行う1つの方法は、ユーザーが入力できる番兵の値を設定することです。これは、空白行または。のような文字列である可能性があります=。正の数のみを加算する場合は、負の数を使用し0て、すべての数が入力されたことを示すことができます。

while (1)
{
    /* get input */
    if (/* should exit */)
        break;
    sum += input;
}
/* show sum */

電卓をエミュレートしようとしている場合は、すべての数値を入力した後、現在の合計を表示するだけです。そうすれば、 nの大きさがわかりません。

while (1)
{
    /* get input */
    sum += input;
    /* show sum */
}
于 2013-02-05T02:30:53.503 に答える