![]() |
Ярпортал: форум Ярославля ![]() |
![]() ![]() ![]() ![]() |
Здравствуйте, Гость ( Вход·Регистрация ) | Сделать Yarportal.Ru стартовой страницей |
![]() |
![]() ![]() ![]() |
Alexey Smirnov |
Дата 17.09.2013 - 20:36
|
В малиновых штанах ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 2896 Пользователь №: 83235 Регистрация: 17.09.2011 - 18:22 ![]() |
Создал код, он рабочий, но дома не запускается Microsoft Visual Studio, а выдает вот такую ошибку:
что делать? как исправить? сам код: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Programma_2 { class Program { static void Main(string[] args) { int current; // текущий элемент int num = 0; //счетчик, показывает номер элемента int elCount = 0; //выходное значение int count; Console.Write("числа="); count = int.Parse(Console.ReadLine()); for (int i = 0; i < count; i++) { current = int.Parse(Console.ReadLine()); num++; if ((current % 2 != 0) && (num % 2 == 0)) { elCount++; } } Console.WriteLine("{0}", elCount); Console.ReadKey(); } } } |
Вадим1027 |
Дата 17.09.2013 - 21:11
|
В желтых штанах ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 122 Пользователь №: 139388 Регистрация: 11.07.2013 - 12:57 ![]() |
Ну так вроде оно прямо говорит, что неверный формат, когда пытается строку от
Console.ReadLine() спарсить в int. Смотри что програмка приняла по твоему вводу с консоли. буквы случаем не вводил? или там дробное число (точку или запятую) ? |
Alexey Smirnov |
Дата 17.09.2013 - 22:14
|
В малиновых штанах ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 2896 Пользователь №: 83235 Регистрация: 17.09.2011 - 18:22 ![]() |
все правильно с клавиатуры ввожу, но этот неверный формат входных данных все равно выскакивает
|
Вадим1027 |
Дата 18.09.2013 - 05:27
|
В желтых штанах ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 122 Пользователь №: 139388 Регистрация: 11.07.2013 - 12:57 ![]() |
Так-то я в основном с Java работаю, да и сейчас компа с C# под рукой нету.
Короче правильное написание это использование try - catch блока. Поскольку любой человек может мимо нужной клавиши тыкнуть. Поэтому при таком exception его надо либо игнорировать, либо ругать человека, типа "куда тычешь остолоп" ![]() И еще опять же когда вводишь цифирь я не знаю как С# принимает EOL когда Enter нажимаешь или скажем если без ввода числа пустую строку. Или по окончании ввода всех чисел... что там используется? Ctrl-D ? Сделай типа так: (за синтаксис не отвечаю - это псевдо-код скорее на Java) вместо current = int.Parse(Console.ReadLine()); такой код: String inStr = Console.ReadLine(); Console.WriteLine("Line read: {0}", inStr); current = int.Parse(inStr); тогда до ошибки увидишь на консоле чего оно там зачитало. и в дебагере легче посмотреть, что же реально есть в inStr и почему оно не желает парсится. потом этот WriteLine уберешь и всего делов. Но try-catch вообще-то обязателен в таких прогах. Это сообщение отредактировал Вадим1027 - 18.09.2013 - 05:30 |
Alexey Smirnov |
Дата 18.09.2013 - 13:27
|
В малиновых штанах ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 2896 Пользователь №: 83235 Регистрация: 17.09.2011 - 18:22 ![]() |
Спасибо за ответ
![]() Переделывать ничего не пришлось, так как разобрался в чем ошибка была. Первый раз, когда вводишь число - это всего чисел в посл-ти, а все остальные разы, когда вводишь числа - это числа этой посл-ти. |
Опиум |
Дата 19.09.2013 - 17:37
|
![]() Куплю AED по 25₽ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 101528 Пользователь №: 7415 Регистрация: 8.04.2006 - 14:37 ![]() |
.Parse вываливает ошибку при некорректном вводе?
в старом-добром дельфи я StrtoIntDef юзаю в этом случае. |
![]() |
![]() ![]() ![]() |
Правила Ярпортала (включая политику обработки персональных данных)