Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2013, 16:03   #1
xJRxLegenD
 
Регистрация: 13.01.2013
Сообщений: 4
По умолчанию Посимвольный разбор С#. Последнее число превращает в 0..

Код:
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("а нука введи цифры");
            string stroka = Console.ReadLine();
            int schetChisel = 1;
            int schetSimvolov = 0;
            for (int n = 0; n < stroka.Length; n++)
            {
                if (stroka[schetSimvolov] == ' ')
                    schetChisel++;
                schetSimvolov++;
            }
            Console.WriteLine("количество чисел "+schetChisel);
            Console.WriteLine("количество символов "+schetSimvolov);
            float[] arguments = new float[schetChisel];
            int simvol = 0;
            string buffer = "";
            for (int n = 0; n < schetChisel-1; n++)
            {
                while (stroka[simvol] != ' ')
                {
                    buffer = buffer + stroka[simvol];
                    simvol++;
                }
                arguments[n] = float.Parse(buffer);
                simvol++;
                buffer = "";
            }
            for (int n = 0; n < schetChisel; n++)
                Console.WriteLine(arguments[n]);
            Console.ReadLine();
        }
    }
}
Смысл в то что бы не используя метод Split() раскидать числа в ячейки массива!
Проблема в том что последнее число всегда равно 0.. Но если воткнуть пробел в конце опа чудо число появилось но лишний нолик тоже
Изображения
Тип файла: jpg Программирование.JPG (31.6 Кб, 43 просмотров)
xJRxLegenD вне форума Ответить с цитированием
Старый 14.01.2013, 16:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых,
нужно
Код:
int schetChisel = 0;
а во-вторых, Вы абсолютно зря считаете, что сколько пробелов, столько и чисел
(попробуйте ввести строку 12------14-----15 (минусы - это пробелы)
будете неприятно удивлены!)

ну и последнее, самый простой способ решить вашу проблему с последним число - это банально добавить пробел в конец строки.
вот так:
Код:
        Console.WriteLine("а нука введи цифры");
        string stroka = Console.ReadLine() + " ";
        int schetChisel = 0;
....
успехов!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.01.2013, 17:23   #3
xJRxLegenD
 
Регистрация: 13.01.2013
Сообщений: 4
По умолчанию

По пробелам считать вполне подходит для меня. Потому что в задание надо только числа раскидать в массив А при в воде указано разделять пробелом. А вывод количества чисел и символов я сделал себя для наглядности(ибо второй день только учу с#) Спасибо ваш совет помог) Лишняя ячейка в массиве тоже пропала после

Код:
< schetChisel-1;
убрал "-1".
Благодарю за помощь)
xJRxLegenD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посимвольный вывод в txt Павел_95 Общие вопросы C/C++ 4 11.11.2012 14:19
Последнее число предыдущего месяца ins813 Общие вопросы Delphi 10 14.10.2012 23:12
Посимвольный ввод Nataly026 Паскаль, Turbo Pascal, PascalABC.NET 4 18.03.2012 19:54
Определить последнее одиннадцатое число в строчке из файла zzzetka Помощь студентам 5 10.08.2010 16:17
Visual Basic последнее min число из вводимых чисел! kenny91 Помощь студентам 10 06.06.2009 17:16