Здравствуйте, как все уместить в одном цикле c#? while

namespace ConsoleApp5

{

  internal class Program

  {

        static void Main(string[] args)

        {

              int[] x = new int[10];

              int i = 0;



              while (i < x.Length)

              {

                    x[i] = Random.Shared.Next(100);

                    Console.WriteLine($"x[{i}] = {x[i]}");

                    i++;

              }



              // общая сумма

              int sum = 0;

              i = 0;

              while (i < x.Length)

              {

                    sum = sum + x[i];

                    i++;

              }

              Console.WriteLine($"\nSum = {sum}");



              // среднее арифметическое

              double avg = (double)sum / x.Length;

              Console.WriteLine($"Avarage = {avg}");



              // максимум

              int max = x[0];

              i = 1;

              while (i < x.Length)

              {

                    if (x[i] > max)

                    {

                          max = x[i];

                    }



                    i++;

              }

              Console.WriteLine($"Max = {max}");



              // минимум

              int min = x[0];

              i = 1;

              while (i < x.Length)

              {

                    if (x[i] < min)

                    {

                          min = x[i];

                    }



                    i++;

              }

              Console.WriteLine($"Min = {min}");

        }

  }

}


Ответы (2 шт):

Автор решения: Nowhere Man

Например, можно сделать так (без привлечения массива):

using System;

class Program
{
    static void Main() {
        var rand = new Random();
        const int N = 10;
        int sum = 0;
        int min = 100;
        int max = -1;
        for (int i = 0; i < N; i++) {
            int x = rand.Next(100);
            Console.WriteLine($"x[{i}] = {x}");
            
            sum += x;
            if (x < min) min = x;
            else if (x > max) max = x;
        }
        double avg = (double) sum / N;
        Console.WriteLine($"\nSum = {sum}");
        Console.WriteLine($"Average = {avg}");
        Console.WriteLine($"Max = {max}");
        Console.WriteLine($"Min = {min}");
    }
}
→ Ссылка
Автор решения: Виктор

Возможный код

    int i = 0;
    int item;               // тут будет число из random
    int summ = 0;           // тут сумма
    int length = 10;        // это количество, которое будет сгенерировано
    int max = 0;            // тут максимальное число
    int min = int.MaxValue; // тут минимальное число, подумайте, почему тут int.MaxValue

    Random rnd = new Random(); // Создали класс

    while (i < length)
    {
        item = rnd.Next(100); // Новое число

        // максимум
        max = max < item ? item : max;
        // минимум
        min = min > item ? item : min;

        Console.WriteLine($"x[{i}] = {item}");
        // общая сумма
        summ += item;
        i++;
    }

    Console.WriteLine($"\nSum = {summ}");
    // среднее арифметическое
    double avg = (double)summ / length;
    Console.WriteLine($"Avarage = {avg}");
    Console.WriteLine($"Max = {max}");
    Console.WriteLine($"Min = {min}");
→ Ссылка