Member 12604810 Ответов: 3

С#. Как взять пользовательский ввод 2-12 и вывести таблицу умножения на основе этих значений?


Привет. Я очень новичок в C# и пытаюсь взять пользовательский ввод и вывести его в изменяемую таблицу умножения. Пользователь вводит значения из 2-12, и в результате получается таблица в этом измерении (т. е. 2 x 2 или 12 x 12). Я могу вывести таблицу умножения 12 х 12, но не могу подключить пользовательский ввод к таблице, чтобы изменить ее размер. Любая помощь будет оценена по достоинству.

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

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

пространство имен W5M2A2_CResizableMTableApp
{
класс W5M2A2_CResizableMTableAppProgram
{
static void Main (string[] args)
{


// Отображение информации о программе
Приставка.WriteLine ("изменяемое приложение таблицы умножения (V. 1)\n\n");

// Попросите ввести данные
Приставка.Напишите ("пожалуйста, введите размер таблицы умножения (например, 2-12): ");

/- чтение пользовательского ввода
string strValue = консоль.С readline();

// Присвоить переменной значение Double
двойной dblValue1;

// Преобразовать строку в Double
dblValue1 = преобразовать.ToDouble(strValue);

double a = (dblValue1);
double b = (dblValue1);
для (a = 1; a <= 12; a++)
{
для (b = 1; b <= 12; b++)
Приставка.Напишите ((a * b).ToString (). PadLeft(5));
Приставка.метод WriteLine();
}

Приставка.С readline();
}

}
}

Member 12604810

Я создал нужный мне результат! Я все еще хотел бы знать, что неразумно в моем коде и сработало ли бы использование "double". Кроме того, я застрял на том, как запретить выполнение входов, отличных от 2-12. Спасибо за любой вклад.

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

пространство имен W5M2A2_CResizableMTableApp
{
класс W5M2A2_CResizableMTableAppProgram
{
static void Main (string[] args)
{


// Отображение информации о программе
Приставка.WriteLine ("изменяемая по размеру таблица умножения приложения (V. 1) имя: дата");
Приставка.WriteLine("------------------------------------------------------------------------------\н\н");

// Попросите ввести данные
Приставка.Напишите ("пожалуйста, введите размер таблицы умножения (например, 2-12): ");

/- чтение пользовательского ввода
string strValue = консоль.С readline();

// Преобразовать strValue в целое число и присвоить переменной answer
int answer1 = преобразовать.ToInt32(strValue);
int answer2 = преобразовать.ToInt32(strValue);
int max = answer1;
int max2 = answer2;

Приставка.WriteLine ("\n\nGenerated таблица умножения для размера {0}:", strValue);
Приставка.WriteLine("---------------------------------------------\н\н");
for (answer1 = 1; answer1 <= max; answer1++)
{
for (answer2 = 1; answer2 <= max2; answer2++)

Приставка.Напишите((answer1 * answer2).ToString (). PadLeft(5));
Приставка.метод WriteLine();
}

Приставка.С readline();
}

}
}

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

3 Ответов

Рейтинг:
2

BillWoodruff

Я предлагаю вам определить универсальную целочисленную процедуру ввода для консоли, которая использует константы для проверки входных значений:

private static int GetIntInRange()
{
    string input = "";
    int value = 0;

    while (true)
    {
        Console.WriteLine("enter a number between {0}~{1} or 'Exit' to exit application", MINVALUE, MAXVALUE);
        input = Console.ReadLine();

        if (input == EXITCODE) return -1;

        if (int.TryParse(input, out value))
        {
            if (value >= MINVALUE && value <= MAXVALUE) return value;
        }
    }
}
Вот как вы будете использовать это в консольном приложении:
using System;

namespace YourConsoleApplication
{
    class Program
    {
        const string EXITCODE = "Exit";

        const int MINVALUE = 2;
        const int MAXVALUE = 12;

        static void Main(string[] args)
        {
            int value1 = 0;
            int value2 = 0;

            value1 = GetIntInRange();
            if(value1 == -1) System.Environment.Exit(-1);

            value2 = GetIntInRange();
            if(value2 == -1 ) System.Environment.Exit(-1);

            for (int i = 1; i <= value1; i++)
            {
                for (int j = 1; j <= value2; j++)
                {
                    Console.WriteLine("{0} * {1} = {2}", i,j, i*j);
                } 
            }

            Console.WriteLine("<Return/Enter> to terminate application");
            Console.ReadKey();
        }

        private static int GetIntInRange()
        {
            string input = "";
            int value = 0;

            while (true)
            {
                Console.WriteLine("enter a number between {0}~{1} or 'Exit' to exit application", MINVALUE, MAXVALUE);
                input = Console.ReadLine();

                if (input == EXITCODE) return -1;

                if (int.TryParse(input, out value))
                {
                    if (value >= MINVALUE && value <= MAXVALUE) return value;
                }
            }
        }
    }
}
Записи:

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

2. на практике вы можете обращаться с этим по-другому; например: вы можете дать пользователю фиксированное количество "попыток" ввести действительный номер и дать ему обратную связь об их недействительных попытках.


Рейтинг:
0

Tabish Mateen

Просто добавьте условие, чтобы проверить свой входной номер. В вашем случае просто используйте приведенный ниже код.


если (max > 12)
вернуть;

или
если (max <=12)
{

Console.WriteLine("\n\nGenerated Multiplication Table for size of {0}:", strValue);
Console.WriteLine("---------------------------------------------\n\n");
for (answer1 = 1; answer1 <= max; answer1++)
{
for (answer2 = 1; answer2 <= max2; answer2++)

Console.Write((answer1 * answer2).ToString().PadLeft(5));
Console.WriteLine();
}


}


Рейтинг:
0

Karthik_Mahalingam

проверьте это с помощью проверки и удаления нежелательных кодов

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

namespace W5M2A2_CResizableMTableApp
{
    class W5M2A2_CResizableMTableAppProgram
    {
        static void Main(string[] args)
        { 

            // Ask for input
          here:  Console.WriteLine("Please enter the size of the multiplication table (e.g. 2 - 12): ");

           
            string strValue = Console.ReadLine();
            int value;
            if (!int.TryParse(strValue, out value))
            {
                Console.WriteLine("Invalid integer number");
                goto here;
            }
            else
            {
                if (value > 1 && value < 13)
                {

                    Console.WriteLine("\n\nGenerated Multiplication Table for size of {0}:", strValue);
                    Console.WriteLine("---------------------------------------------\n\n");
                    for (int i = 1; i <= value; i++)
                    {
                        for (int j = 1; j <= value; j++)

                            Console.Write((i * j).ToString().PadLeft(5));
                        Console.WriteLine();
                    }
                }
                else
                {
                    Console.Write("Please enter the number between 2 and 12 ");
                    goto here;

                }

                Console.ReadLine();
            }
        }

    }
}