0

私はObjective Cにかなり慣れていないため、ユーザーから一連の整数を受け取り、そこから5つの情報を提供する必要がある割り当てを受けました。

  1. 入力数
  2. 入力の合計
  3. 入力の平均
  4. 最小の入力
  5. 最大の入力

最初の 3 つの部分はわかりましたが、最小/最大の数値を取得する方法が思いつきません。最小/最大を取得する方法を知っている唯一の方法は、「if」ステートメントを使用することですが、それらをコードに組み込む方法がわかりません。どんな助けでも大歓迎です!

#include <stdio.h>

int main(int argc, const char * argv[])
{

    //variables
    int input;
    int count = -1;
    int sum = 0;
    float average = 0;

    do 
    {
        printf("Enter a number.\n");
        scanf("%i", &input);
        count++;
        sum += input;
        average = sum / count;

    }   while (input != 0);

    printf("You entered %i numbers.\n", count);
    printf("The sum of your numbers are %i.\n", sum);
    printf("The average of your numbers is %f.\n", average);

    return 0;
}

編集:「do...while」ループの前に新しい変数「prevnum」を作成して、前の入力と等しくしました。「prevnum」変数を使用して、「if...else」ステートメントを使用して、新しい入力と保存された最小値/最大値と比較しました。それが最も効率的な方法なのか「正しい」方法なのかはわかりませんが、機能的で正しい出力が得られます。コードは次のとおりです。

含む

int main(int argc, const char * argv[]) {

//variables
int input = 0;
int count = -1;
int sum = 0;
int average = 0;
int max = 0;
int min = 0;
int prevnum;

do 
{
    prevnum = input;
    printf("Enter a number.\n");
    scanf("%i", &input);
    count++;
    sum += input;
    average = sum / count;
    if(input >= prevnum && input >= max)
        max = input;
    else if(input < max)
        max = max;
    if(input <= min && input <= max)
        min = input;
    else if(input > min)
        min = min;
}   while (input != 0);

printf("You entered %i numbers.\n", count);
printf("The sum of your numbers are %i.\n", sum);
printf("The average of your numbers is %i.\n", average);
printf("The largest number entered was %i.\n", max);
printf("The smallest number entered was %i.\n", min);
return 0;

}

4

1 に答える 1