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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2012, 12:37   #1
mo_Ouse
 
Регистрация: 08.12.2011
Сообщений: 7
По умолчанию Удаление повторных вхождений. Переместить последнюю букву в начало слова.

Добрый день. Помогите пожалуйста, уже весь мозг сломал... За коды сильно не пинайте))
P.S. надеюсь на вашу помощь))

Программа. Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 малых латинских букв, между словами - запятая, за последним словом - точка. Напечатать эту же последовательность слов, но удалив из неё повторные вхождения слов.

Загвоздка: У меня удаляет первое вхождение, а надо повторные(т.е. после первого).


PHP код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
_10_16_в
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
string[] sm;
            
bool b;
            do
            {
                
false;
                
Console.WriteLine("Введите предложение");
                
sm = (Console.ReadLine()).Split(',');
                if (!(
sm.Length >= && sm.Length <= 30))
                {
                    
true;
                    
Console.WriteLine("Количество допстимых слов через запятую от 1 до 30");
                    for (
int i 0sm.Lengthi++)
                        if (!(
sm[i].Length >= && sm[i].Length <= 5))
                        {
                            
true;
                            
Console.WriteLine("Длинна слова через запятую " sm[i] + " превысила допустимое значение от 1 до 5");
                        }
                }
            }
            while (
b);
            
string s "";
            for (
int i 0sm.Lengthi++)
            {
                
true;
                for (
int j 1sm.Lengthj++)
                    if (
sm[i] == sm[j])
                        
false;
                if (
b+= sm[i] + ",";
            }
            
s.Remove(s.Length 11);
            
Console.WriteLine(s);
            
Console.ReadKey();
        }
    }


Программа. Дана последовательность слов; между соседними словами запятая, в конце точка. Напечатать все слова отличные от последнего слова, предварительно преобразовав каждое из них по правилу: перенести последнюю букву в начало слова.

Загвоздка с "точкой" и "напечатать слова отличные от последнего".

PHP код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 
ConsoleApplication1
{
    class 
Program
    
{
        static 
void Main(string[] args)
        {
            
string strokaint b;
            
char razdelitel ' ';
            
Console.WriteLine("Введите строку:");
            
stroka Console.ReadLine();
            
string[] words stroka.Split(razdelitel);
            for (
int i 0words.Lengthi++)
            {
                
words[i].Length;
                
words[i] = words[i][1] + words[i];
                
words[i] = words[i].Remove(words[i].Length 11);
            }
            
Console.WriteLine("Измененная строка:");
            for (
int i 0words.Lengthi++)
            {
                
Console.Write(words[i]);
                
Console.Write(" ");
            }
            
Console.ReadKey();


        }
    }

mo_Ouse вне форума Ответить с цитированием
Старый 21.04.2012, 20:17   #2
mo_Ouse
 
Регистрация: 08.12.2011
Сообщений: 7
По умолчанию

Помогите пожалуйста(((
mo_Ouse вне форума Ответить с цитированием
Старый 21.04.2012, 20:36   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Напечатать эту же последовательность слов, но удалив из неё повторные вхождения слов.

Код:
var s = Console.ReadLine();
for (var word in s.Split(',').Distinct())
   Console.WriteLine(word);
код не проверялся, но примерно так...
Rififi вне форума Ответить с цитированием
Старый 21.04.2012, 20:45   #4
mo_Ouse
 
Регистрация: 08.12.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Код:
var s = Console.ReadLine();
for (var word in s.Split(',').Distinct())
   Console.WriteLine(word);
Спасибо, но еще бы понять куда и как это....
mo_Ouse вне форума Ответить с цитированием
Старый 21.04.2012, 20:53   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

mo_Ouse

Спасибо, но еще бы понять куда и как это....

Для этого есть различные методики - чтение технической литературы, посещение курсов, найм репетитора, самостоятельной изучение... Выбирайте ту, которая наиболее вам подходит.
Rififi вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать строку таким образом, чтобы цифры каждого слова были перенесены в начало слова, изменив порядок следования цифр в с Нортон Общие вопросы C/C++ 0 11.02.2012 18:38
Поменять 1 и последнюю букву последнего слова а строке с++ Bolisoff Помощь студентам 1 10.01.2012 18:22
Переместить слова в начало строки Peperovich Общие вопросы C/C++ 0 25.12.2011 20:13
Файлы. получить файл без повторных вхождений pavlintseva C++ Builder 2 14.03.2011 13:04
Подсчитать количество вхождений в слова первого слова. 07412 Общие вопросы C/C++ 4 27.05.2010 12:05