これは、C++ ではなく、C でコーディングするためのものです。私は初級レベルのコースにいて、中間試験を終えたばかりなので、C に関する私の知識は非常に限られています。クラスで説明していないキーワードや演算子を含めることはできないため、これをできるだけ単純に保つようにしてください。私のコードではなく、助けが必要なのは私のロジックだけだと思うので、これは必要ではないと思います。
上記の 2 つの例を参照してクラスのコードを記述した後、パズルの最後の小さなピースを完成させる方法に困惑しています。ここSOでいくつかの質問と回答が見つかりましたが、それらは関連しているように見えましたが、コードを使用して私が知らない問題を解決しました。うまくいけば、誰かがここで私の論理を手伝ってくれます。
私の課題の目標は次のとおりです。
ユーザー定義の整数を取得し、数字を英語で表示します。例えば:
整数を入力してください: 123 入力しました
: One Two Three
次に、数字の合計を合計する必要があります (数字が 10 未満の場合は、英語で表示されます)。この場合:
個々の桁の合計は次のとおりです。6
最後に、小数点以下 2 桁を使用して数字を平均化する必要があります。この場合:
平均: 2.00
私はこれをすべて完了しました。例外: 私の最初のステップでは、数字を逆順にリストします! 10 の位、100 の位、1000 の位などを読み取ります。例:
整数を入力してください: 123 入力しました
: スリー ツー ワン
割り当てのこの部分の私の条件は、switch ステートメントを 1 つだけ使用することができ、switch ステートメントを使用する必要があることです (つまり、ループが必要です (私は do を使用しました))。配列も使用しない場合があります。しかし、最後に、そして最も重要なこととして、入力番号を逆にすることはできません (これは、この割り当ての最初のバージョンに対する解決策でした)。もしそれができたら、私はここにいないでしょう。
関連するコードの抜粋を次に示します。
#include <stdio.h>
int main(void)
{
int userinput, digit
printf("Please input a number:");
scanf("%d", &userinput);
printf("You have entered: ");
if (userinput < 0)
{
printf("Negative ");
userinput = -userinput;
}
do
{
digit = userinput%10;
switch (digit)
{
case 0:
{
printf("Zero ");
break;
}
case 1:
{
printf("One ");
break;
}
case 2:
{
printf("Two ");
break;
}
case 3:
{
printf("Three ");
break;
}
case 4:
{
printf("Four ");
break;
}
case 5:
{
printf("Five ");
break;
}
case 6:
{
printf("Six ");
break;
}
case 7:
{
printf("Seven ");
break;
}
case 8:
{
printf("Eight ");
break;
}
case 9:
{
printf("Nine ");
break;
}
default:
{
break;
}
}
userinput = userinput/10;
} while (userinput > 0);
printf("\n");