Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
okman
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
#1

Не работает arr[i]=int.Parse(str[i]); - C#

13.06.2013, 21:06. Просмотров 711. Ответов 9
Метки нет (Все метки)

На С# совсем чуть-чуть поэтому ошибаюсь. Подскажите как мне привести массив типа string в тип int.
Я для этого использовал [I]arr[i]=int.Parse(str); но выбивает ошибку. За ранее спасибо.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace programfree
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr;
            string[] str;
            int ND, number, count=0;
            string s;
            Console.WriteLine("Введите количество элементов:");
            s=Console.ReadLine();
            ND =int.Parse(s);
           
            str = new string[ND];
            arr = new int[ND];
            Console.WriteLine("Вводите элементы:");
            for (int i = 0; i < ND; i++)
            {
               str[i] =  Console.ReadLine();
               arr[i]=int.Parse(str[i]);
            }
            Console.WriteLine("Введите искомое число:");
            s = Console.ReadLine();
            number = int.Parse(s);
            for (int i = 0; i < ND; i++)
            {
                if (arr[i] == number)
                {
                    count++;
                    arr[i]=0;
                }
            }
            if (count > 0)
            {
                Console.WriteLine("Операция выполнена!");
                Console.WriteLine("Количество найденных элементов:{0}", count);
                Console.Write("Исходный массив:");
                for (int i = 0; i < ND; i++)
                {
                    Console.Write(arr[i]);
                    Console.Write(" ");
                }
            }
            else
            {
                Console.WriteLine("Ничего не найдено :(!");
            }
 
 
 
 
        }
    }
}

http://www.cyberforum.ru/csharp-beginners/thread795785.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2013, 21:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не работает arr[i]=int.Parse(str[i]); (C#):

Описать функцию FillArray(out int[] arr), которая создает и заполняет новый массив
1.Описать функцию FillArray(out int arr), которая создает и заполняет новый ...

Метод int MmPp(string str) для перевода строковой даты в число
Написать метод int MmPp(string str) {} Параметром является дата в виде...

Int.Parse: Получить число формата 01 и 02
Здравствуйте! Есть такая строка spriteGrid.transform.name = &quot;Square&quot; +...

Dictionaty<int,List<int>> и IReadOnlyDictionary<int,IReadOnlyList<int>>
Народ, столкнулся с такой ситуацией. Есть Переменная...

Double.Parse не работает: Входная строка имела неверный формат
Double.Parse(&quot;1.1&quot;); Convert.ToDouble(&quot;1.1&quot;); В обоих случаях ошибка...

9
GloryMU
52 / 52 / 16
Регистрация: 25.02.2013
Сообщений: 171
13.06.2013, 21:16 #2
C#
1
arr[i]=int.Parse(Console.ReadLine());
если str массив нигде не используется, проще так.
ошибку?
вводишь построчно элементы?или через пробел подряд?
1
okman
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
13.06.2013, 21:20  [ТС] #3
Цитата Сообщение от GloryMU Посмотреть сообщение
C#
1
arr[i]=int.Parse(Console.ReadLine());
если str массив нигде не используется, проще так.
ошибку?
вводишь построчно элементы?или через пробел подряд?
через пробел, вот так 3 4 5 6 6 7 87
0
GloryMU
52 / 52 / 16
Регистрация: 25.02.2013
Сообщений: 171
13.06.2013, 21:26 #4
через Enter по строчно вводи элементы
str[i]= будет иметь строку "3 4 5 6 6 7 87" и ее не отпарсирить в Int
или вводить через пробел и потом Split'ом разбивать на элементы и их отдельно в инт
1
okman
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
13.06.2013, 21:28  [ТС] #5
Цитата Сообщение от GloryMU Посмотреть сообщение
через Enter по строчно вводи элементы
str[i]= будет иметь строку "3 4 5 6 6 7 87" и ее не отпарсирить в Int
Ну я уже понял, спасибо за помощь, ох уж этот шарп, почему бы просто из С++ не оставить cin/cout...эх...
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
13.06.2013, 21:56 #6
okman, потому что необходимо единообразие. Функция ReadLine возвращает строку, а что возвращает cin?
0
okman
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
13.06.2013, 22:15  [ТС] #7
Цитата Сообщение от Psilon Посмотреть сообщение
okman, потому что необходимо единообразие. Функция ReadLine возвращает строку, а что возвращает cin?
я не говорил что нужно убрать ReadLine, можно было просто оставить cin.Чем бы он мешал в С#, я может чего-то не догоняю?
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
13.06.2013, 22:19 #8
okman, в С++ есть миллиард способов сделать одно и то же. Тут предлагается один "кошерный" метод, все остальные же принимаются ненужными и неверными.

Ввод с клавиатуры через пробел в шарпе достигается написанием одного метода split. Причем в отличие от того же С++ не нужно указывать число аргументов
C#
1
2
Console.WriteLine("Вводите числа через пробел");
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
на С++ это заняло бы намного больше места, поверьте. Не говоря о том, что я не помню, когда последний раз у меня в программе что-то нужно было вводить с клавиатуры в одну строку...
1
okman
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
13.06.2013, 22:26  [ТС] #9
Цитата Сообщение от Psilon Посмотреть сообщение
okman, в С++ есть миллиард способов сделать одно и то же. Тут предлагается один "кошерный" метод, все остальные же принимаются ненужными и неверными.

Ввод с клавиатуры через пробел в шарпе достигается написанием одного метода split. Причем в отличие от того же С++ не нужно указывать число аргументов
C#
1
2
Console.WriteLine("Вводите числа через пробел");
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
на С++ это заняло бы намного больше места, поверьте. Не говоря о том, что я не помню, когда последний раз у меня в программе что-то нужно было вводить с клавиатуры в одну строку...
Аа ну спасибо, буду учится, постараюсь понять
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
13.06.2013, 22:30 #10
okman, да не за что В шарпе есть няшки от функциональных языков (вроде данного Method Chain). На каком-нибудь функц.языке это выглядело бы так
Haskell
1
let a = Console.ReadLine |> Split ' ' |> int.Parse |> ToArray
в общем то же самое с точностью до обозначения. Надо привыкать мыслить "pipe-forward"
0
13.06.2013, 22:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2013, 22:30
Привет! Вот еще темы с решениями:

Конструкция Bitmap(int Width, int Height, int stride, PixelFor...
Есть одномерный массив данных data типа byte, int, float (довольно большой;...

Dictionary<int, int> получить наибольшее значение value (втрого int)
Dictionary&lt;int, int&gt; bet = new Dictionary&lt;int, int&gt;; bet.Add(1,20);...

Перевод из int в double не работает
фраза double x_n = (int)x; у меня не работает как написать правильно?

Как работает оператор char ^ int?
Здравствуйте. Объясните, пожалуйста, как &quot;мыслит&quot; компилятор в этой ситуации. Я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru