Программа должна решать выражение k = a * x + b * x + c * x + (a * x + b * x + c), где x =2.5.
При этом если ввести букву, а не число, программа должна сказать, что это не число и просить ввести число бесконечное количество раз, пока не получит его.
Вот что я написал, но программа не работает, потому что пишет что не удаётся преобразовать из out double в out int.
double a, b, c;
double x = 2.5;
double k;
int i;
Console.WriteLine("Введите число a");
if (int.TryParse(Console.ReadLine(), out a))
{
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите число b");
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите число c");
c = Convert.ToInt32(Console.ReadLine());
k = a * x + b * x + c * x + (a * x + b * x + c);
}
else
{
Console.WriteLine("Это не число");
}
Console.ReadKey();
Другие языки программирования и технологии
C#. Как сделать, чтобы программа проверяла тип введённой переменной?
Основные ошибки предыдущие отвечающие уже изложили.
Дополню тем что
"При этом если ввести букву, а не число, программа должна сказать, что это не число и просить ввести число бесконечное количество раз, пока не получит его." - эта логика вообще не заиплементирована никак.
Если я правильно понимаю - то бесконечно спрашивать пользователя надо насчет каждой переменной (a, b и c). Удобнее будет эту логику в отдельный метод вынести. Код:
class Program
{
static void Main(string[] args)
{
double a, b, c;
double x = 2.5;
double k;
int i;
a = PromptUntilCorrect(nameof(a));
b = PromptUntilCorrect(nameof(b));
c = PromptUntilCorrect(nameof(c));
k = a * x + b * x + c * x + (a * x + b * x + c);
Console.WriteLine(k);
Console.ReadKey();
}
private static double PromptUntilCorrect(string varName)
{
double userValue;
bool isDouble;
do
{
Console.WriteLine($"Введите число {varName}");
isDouble = double.TryParse(Console.ReadLine(), out userValue);
if (!isDouble)
{
Console.WriteLine("Это не число");
}
}
while (!isDouble);
return userValue;
}
}
Дополню тем что
"При этом если ввести букву, а не число, программа должна сказать, что это не число и просить ввести число бесконечное количество раз, пока не получит его." - эта логика вообще не заиплементирована никак.
Если я правильно понимаю - то бесконечно спрашивать пользователя надо насчет каждой переменной (a, b и c). Удобнее будет эту логику в отдельный метод вынести. Код:
class Program
{
static void Main(string[] args)
{
double a, b, c;
double x = 2.5;
double k;
int i;
a = PromptUntilCorrect(nameof(a));
b = PromptUntilCorrect(nameof(b));
c = PromptUntilCorrect(nameof(c));
k = a * x + b * x + c * x + (a * x + b * x + c);
Console.WriteLine(k);
Console.ReadKey();
}
private static double PromptUntilCorrect(string varName)
{
double userValue;
bool isDouble;
do
{
Console.WriteLine($"Введите число {varName}");
isDouble = double.TryParse(Console.ReadLine(), out userValue);
if (!isDouble)
{
Console.WriteLine("Это не число");
}
}
while (!isDouble);
return userValue;
}
}
Рустам Хадиметов
Что значит PromptUntilCorrect и varName и userValue?
Этот код уже помещает число в переменную "а".
double.TryParse(Console.ReadLine(), out a);
double.TryParse(Console.ReadLine(), out a);
Тип переменной фиксирован, его не нужно проверять. Данные от пользователя всегда приходят в виде строки.
Для преобразования строки в число double надо использовать double.TryParse().
Ввод числа с проверкой и повторным запросом лучше сделать отдельным методом.
Переменную "a" ты зачем-то вводишь дважды.
Для преобразования строки в число double надо использовать double.TryParse().
Ввод числа с проверкой и повторным запросом лучше сделать отдельным методом.
Переменную "a" ты зачем-то вводишь дважды.
Похожие вопросы
- C++. Можно сделать так, что бы тип переменной определялся сам? (Калькулятор) ...
- Как сделать программу по типу мини-базы даных на тему "Успеваемость студентов во время сессии" ? Желательно на C++.
- Как правильно создать и использовать radiobutton-ы на win api c++ ?Можно ли из программы узнать версию Windows ?
- Программа должна определить тип введённых данных (int или float) Программа должна быть написана на С
- C++, почему не выводится на экран текст: Введенное Вами число - простое.
- помогите сделать в программе c++
- C#, запуск второй копии программы
- Недавно начал изучать программирование с паскаля.Помогите сделать программу которой я ввел бы 3 числа или больше а она
- Помогите, задали сделать любую программу на C++ Оно должно быть не простенькое, а то ниже 2 не поставит
- Я начинающий программист, у меня нет никаких программ специальных типа Borland для использования их при написании прогр