Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 8
1

Ввести через клавиатуру предложение (несколько слов, которые отделены пробелом). Поменять первое и последнее слово

28.10.2012, 19:35. Просмотров 2168. Ответов 8
Метки нет (Все метки)


Доброго времени суток.
Господа, требуется ваша помощь (буде премного благодарен).
Необходимо составить програму в C#. "Ввести через клавиатуру предложение (несколько слов, которые отделены пробелом). Поменять первое и последнее слово."

P.S. по возможности программа должна отдалённо походить на работу студента.

Заранее благодарен.))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2012, 19:35
Ответы с готовыми решениями:

Поменять местами в строке первое и последнее слово
Дана строка. Словом текста считается любая последовательность цифр; между соседними словами - не...

В повествовательных предложениях поменять первое и последнее слово
Даны n предложений, в повествовательных предложениях поменять первое и последнее слово, так чтобы в...

Найти предложения содержащие слова А и поменять в них первое и последнее слово
Найти предложения содержащие слова А и поменять в них первое и последнее слово. А – вводиться...

Как поменять местами в предложение первое и последнее слово?
Доброго времени суток) подскажите ,пожалуйста,как в поменять местами в предложение первое и...

8
What? Where? Why?
105 / 105 / 32
Регистрация: 16.10.2012
Сообщений: 459
28.10.2012, 22:26 2
1) Считываем строчку.
2) Разбиваем ее в массив слов с помощью Split
3) Меняем первый и последний элемент
4) Выводим массив на экран

Добавлено через 9 минут
C#
1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
        {
            string s = Console.ReadLine();
            string[] str = s.Split(new[] { ' ' });
            string temp;
            temp = str[1];
            str[1] = str[str.Count() - 1];
            str[str.Count() - 1] = temp;
            foreach (string slv in str)
                Console.WriteLine(s + " ");
        }
0
1008 / 847 / 221
Регистрация: 15.06.2012
Сообщений: 3,317
Записей в блоге: 1
28.10.2012, 22:31 3
Второй вариант, без использования Split (что чревато двумя пробелами или запятыми).
1) считываем строчку
2) посимвольно проходим по строке, запоминая индекс и длину первого и последнего слова (по сыти проводим анализ)
3) делаем два раза Remove(Int32, Int32) и дважды Insert(int, string)
4) вывод на экран
0
Master of Orion
Эксперт .NET
6079 / 4935 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
28.10.2012, 23:06 4
Третий вариант без использования библиотечных функций в принципе
1) Отделяем первое слово. Запоминаем начальный индекс.
2) Аналогично идем с конца, получаем последнее слово. Запоминаем конечный индекс.
3) Выводим на экран: последнее слово, с начального по конечный индекс, первое слово.

Фактически слегка видоизмененный вариант поста выше)
0
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 8
29.10.2012, 11:49  [ТС] 5
Exception, Спасибо за помощь, но у меня что-то не выходит.
После компиляции консоль выдаёт тот же текст, что и изначально вводился, никаких изменений нет.
0
9 / 9 / 5
Регистрация: 08.10.2012
Сообщений: 48
29.10.2012, 12:13 6
Наверно очепятка
Попробуй так
C#
1
2
foreach (string slv in str)
     Console.WriteLine(slv + " ");
С тем кодом что есть ты просто выводишь начальную строку s
Думай немного а не просто копипаст, ибо не научишься ничему
0
Master of Orion
Эксперт .NET
6079 / 4935 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.10.2012, 12:40 7
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
using System;
 
namespace ConsoleApplication39
{
    internal class Program
    {
        private static string input;
        private static void Main()
        {
            Console.WriteLine("Вводите слова через пробел");
            input = Console.ReadLine();
            int a, b;
            for (a = 0; input[a] != ' '; a++) ;
            for (b = input.Length - 1; input[b - 1] != ' '; b--) ;
            Print(b, input.Length);
            Print(a, b);
            Print(0, a);
            Console.ReadKey();
        }
 
 
        private static void Print(int a, int b)
        {
            for (int i = a; i < b; i++)
                Console.Write(input[i]);
        }
    }
}
Добавлено через 4 минуты
Syava777, прав же
0
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 8
29.10.2012, 19:34  [ТС] 8
Благодарю всех за помощь. Помогли сильно.))
0
536 / 537 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
30.10.2012, 17:20 9
Exception, я бы еще предложил сделать проверочку длины массива, вдруг будет введено только одно слово, что с чем тогда местами менять?

C#
1
2
3
4
5
6
7
8
if(str.Length>1){
temp = str[1];
str[1] = str[str.Count() - 1];
str[str.Count() - 1] = temp;
foreach (string slv in str)
   Console.WriteLine(s + " ");
}
else Console.WriteLine("*** Вы ввели только одно слово, замена слов невозможна!");
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2012, 17:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Дано предложение. Поменять местами его первое и последнее слово.
Дано предложение. Поменять местами его первое и последнее слово.

Дано предложение. Поменять местами его первое и последнее слово
Часть 1. Дан числовой массив. Реализовать алгоритм сортировки подсчётом. Часть 2. Дано...

Дано предложение. Поменять местами его первое и последнее слово
Не знаю как записать во вторую переменную последнее слово. Помогите пожалуйста :wall: #include...

В строке, содержащей не менее двух слов, разделенных пробелом, поменять местами первое и последнее слова
Доброго времени суток! Кто может реализовать данное задание в Си? Строка – это правильное...


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

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

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