husna bieber Ответов: 2

Привет, как спросить, хочет ли пользователь ввести другое количество элементов, которые будут храниться в массиве (Y/N)? и повторить этот процесс? Я застрял здесь. Я использую C#


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lab_Week6
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[100];
            int i, n, sum = 0;
            int average = 0;
           
            int yes = 0;
          
           

            Console.Write("\n\nRead and Print elements of an array:\n");
            Console.Write("-----------------------------------------\n");

            Console.Write("Input the number of elements to be stored in the array :");
            n = Convert.ToInt32(Console.ReadLine());

            Console.Write("Input {0} elements in the array :\n", n);
            for (i = 0; i < n; i++)
            {
                Console.Write("element - {0} : ", i);
                arr[i] = Convert.ToInt32(Console.ReadLine());
            }

            for (i = 0; i < n; i++)
            {
                sum += arr[i];
            }

            for (i = 0; i < 2; i++)
            {
                yes = i;
            }
            average = sum / n;
            Console.WriteLine("");
            Console.Write("Sum of all elements stored in the array is : {0}\n\n", sum);
            Console.Write("The average of all elements is : " + average);
            Console.WriteLine("");
            Console.ReadLine();
            Console.WriteLine("Do you want to enter another number of elements to be stored in the array (Yes/No)? : " );
            Console.ReadLine();

            
                
            }
        }

    }


Что я уже пробовал:

я пробовал использовать оператор if else и оператор do while, но в результате получилась ошибка

BillWoodruff

где происходит ошибка ?

это ничегонеделание:

для (i = 0; i < 2; i++)
{
да = я;
}

husna bieber

извините, не то слово. я имею в виду, что это не дало результата. перед этим у меня есть попытка if else заявление. это мое кодирование.


использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;

пространство имен Lab_Week6
{
классная программа
{
static void Main(string[] args)
{
int[] arr = новый int[100];
int i, n, sum = 0;
int average = 0;
int no = 1;
int yes = 0;



Приставка.Write("\n\nRead и Print элементы массива:\n");
Приставка.Пиши("-----------------------------------------\Н");

Приставка.Write("введите количество элементов, которые будут храниться в массиве :");
n = преобразовать.ToInt32(Консоль.Линия чтения());

Приставка.Write("Input {0} elements in the array :\n", n);
для (i = 0; i < n; i++)
{
Приставка.Напишите("элемент - {0} : ", i);
arr[i] = преобразовать.ToInt32(Консоль.Линия чтения());
}

для (i = 0; i < n; i++)
{
сумма += arr[i];
}
среднее значение = сумма / n;
Приставка.метод WriteLine("");
Приставка.Write("сумма всех элементов, хранящихся в массиве, равна : {0}\n\n", sum);
Приставка.Напишите("среднее значение всех элементов равно :" + среднее значение);
Приставка.метод WriteLine("");
Приставка.Линия чтения();
Приставка.WriteLine("вы хотите ввести еще одно количество элементов, которые будут храниться в массиве (Да/нет)? : ");
Приставка.Линия чтения();

если (да == 0)
{
Приставка.Write("\n\nRead и Print элементы массива:\n");
Приставка.Пиши("-----------------------------------------\Н");

Приставка.Write("введите количество элементов, которые будут храниться в массиве :");
n = преобразовать.ToInt32(Консоль.Линия чтения());

Приставка.Write("Input {0} elements in the array :\n", n);
для (i = 0; i < n; i++)
{
Приставка.Напишите("элемент - {0} : ", i);
arr[i] = преобразовать.ToInt32(Консоль.Линия чтения());
}

для (i = 0; i < n; i++)
{
сумма += arr[i];
}
среднее значение = сумма / n;
Приставка.метод WriteLine("");
Приставка.Write("сумма всех элементов, хранящихся в массиве, равна : {0}\n\n", sum);
Приставка.Напишите("среднее значение всех элементов равно :" + среднее значение);
Приставка.Линия чтения();
}
еще
{

Окружающая среда.выход(нет);
}

}
}

}

2 Ответов

Рейтинг:
9

Patrice T

Цитата:
я имею в виду, что это не дало результата.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Отладка кода C# в Visual Studio - YouTube[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


Рейтинг:
19

OriginalGriff

Вам нужно создать цикл вокруг вашего существующего кода:

string reply = "";
do
   {
   ...your code here ...
   Console.Write("Do you want to exit now? (Y/N)");
   reply = Console.ReadLine().Trim().ToUpper();
   } while (string.IsNullOrWhitespace(reply) || reply[0] != 'N');


George Swan

LINQ, которая имеет простой способ, чтобы вычислить сумму и среднее значение массива
инт сумма = Арр.Сумма();
двойное среднее значение = arr.Средний();

OriginalGriff

Если он еще не может написать цикл, Linq, вероятно, немного продвинут для него ... :Д

George Swan

Да, но "использование" включало систему.Линк, так что я решил бросить его туда.

husna bieber

Большое вам спасибо OriginalGriff! Это работает, я так благодарна!

OriginalGriff

Всегда пожалуйста!