Нужна помощь в создании консольного приложения, которое выводит процент ответа для рейтинга в опросе 1-5 (целое число) - PullRequest
0 голосов
/ 05 марта 2019

Работая над заданием, в котором мне нужно выполнить следующее: В ходе опроса вопрос просит опрашиваемого оценить что-то от 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();

1 Ответ

0 голосов
/ 05 марта 2019
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;

вверху, в ссылках проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...