私はCのコース(最初のプログラミングコース)の宿題をしています。割り当ての一部は、ユーザーが最大9桁の数字を入力するようにコードを記述することであり、プログラムは、この数字が「増加」/「真に増加」/「減少」/「真に減少」/であるかどうかを判断する必要があります。増加および減少」/「真に減少および真に増加」/「減少および増加しない」。(合計7つのオプション)
これは私たちの最初の課題であるため、クラスで教えられたもの以外のものを使用することは許可されていません。
do-while、for、whileループ、else-if、if、break、continue scanf、printf、modulo、および基本演算子
(stdio.h以外のライブラリは使用できません)
それでおしまい。配列やgetchar
そのようなものは使用できません。ユーザーからの入力を受け取るために使用できる唯一の関数はですscanf
。
これまでのところ、フローチャートとすべてを使用してアルゴリズムを作成しましたが、ユーザーの入力を個別の数字に分ける必要があります。
たとえば、ユーザーが「1234 ...」と入力した場合、aに1、bに2などを保存し、すべての桁を比較して、たとえば、すべてが等しいかどうか(増減)を判断します。 )またはa> b> c ...(減少)など。
%および/演算子を使用して各桁を区切る方法は知っていますが、後で比較に使用できる変数にこれらの値を「保存」する方法がわかりません。
これは私がこれまでに持っているものです:
printf("Enter a positive number : ");
do {
scanf ("%ld", &number);
if (number < 0) {
printf ("invalid input...enter a positive integer: ");
continue;
}
else break;
} while (1);
while (number < 0) {
a = number % 10;
number = number - a;
number = number / 10;
b = a;
}