Работаю над заданием, где мне нужно выполнить следующее: В вопросе опроса опрашиваемому предлагается оценить что-то от 1 до 5 (целое число). Конечный пользователь вашей программы вводит ответы на этот вопрос в неизвестном количестве опросов. Напишите программу, которая позволяет это и выводит процент отклика для каждого значения (1, 2, 3, 4 и 5).
Я сделал предыдущее консольное приложение с циклом для сбора среднего значения, и я не знаю, как собрать процентный ответ для 5 различных возможных входных данных.
Ниже мой предыдущий код.
namespace WhileLoopsMean
public class MeanProgram
static void Main(string[] args)
{
long test, sum, loop, count;
double avg;
Console.Write("How many tests? ");
count = long.Parse(Console.ReadLine());
sum = 0;
loop = 1;
while (loop <= count)
{
Console.Write("enter score " + loop + " : ");
test = long.Parse(Console.ReadLine());
sum = sum + test;
loop = loop + 1;
}
avg = sum;
avg = avg / count;
Console.WriteLine("\naverage : " + avg);
Console.WriteLine("\n\nenter a score of -100 to end\n");
count = 1;
sum = 0;
Console.Write("enter score " + count + " : ");
test = long.Parse(Console.ReadLine());
sum = sum + test;
while (test != -100)
{
count = count + 1;
Console.Write("enter score " + count + " : ");
test = long.Parse(Console.ReadLine());
if (test != -100)
{
sum = sum + test;
}
else { }
}
count = count - 1;
avg = sum;
avg = avg / count;
Console.WriteLine("\naverage : " + avg);
Console.ReadKey();
Моя проблема в том, что я тоже не понимаю, как это сделать на бумаге. Я не понимаю, как создать цикл, требующий ввода в пределах определенного диапазона чисел, а затем вычислять, а затем вычислять проценты от них. Кажется, я бы создал 5 уникальных переменных и вычислил процент на основе переменной/количества?





class Program {
static void Main(string[] args) {
string input = "";
List<List<int>> answers = new List<List<int>>();
int questionsCount = ReadInt32("The number of questions: ");
for (int i = 0; i < questionsCount; i++) {
answers.Add(new List<int>());
}
while (input == "" || input == "y") {
for (int i = 0; i < answers.Count; i++) {
List<int> a = answers[i];
a.Add(ReadInt32($"Question [{i}]: "));
}
input = Read("Continue (y/n)? ").ToLower();
}
WriteLine("End of input!");
for (int i = 0; i < answers.Count; i++) {
List<int> a = answers[i];
Write($"Average for question[{i}]: {a.Average()}\n");
}
ReadKey();
}
static string Read (string a) {
Write(a);
return ReadLine();
}
static int ReadInt32 (string a = "") {
Write(a);
return ToInt32(ReadLine());
}
}
Попробуйте это. Вы можете настроить вопросы. И обратите внимание, чтобы использовать Write() и WriteLine(), вы должны добавить
using static System.Console;
вверху, в ссылках проекта.
Вы должны сначала выяснить, как вы это сделаете на бумаге, а затем перевести это в код. Затем, если у вас есть конкретная проблема, задайте новый вопрос. См. Как спросить, тур и минимальный воспроизводимый пример.