Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 28.09.2015
Сообщений: 7

Есть названия трёх городов. Вывести самое длинное и короткое названия, количество символов в них

16.10.2015, 10:24. Показов 3080. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обязательный старт - запись названий в строку, или в отдельные строки. При таком выполнении появляется ошибка: "ссылка на объект не указывает на экземпляр объекта, строка 39". Вопрос, как лучше исправить программу? Если нет, может кто подскажет другой алгоритм. Что делать, если названия одинаковые по длине?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Cons
{
    class Program
    {
        static void Main(string[] args)
        {
            string str;     
            string[] arrStr = new string[50];
            
            Console.WriteLine("Введите через запятую названия трёх городов без побелов");
            str = Console.ReadLine();
            
            string[] split = str.Split(new Char[] { ','});
 
           
            int i = 0;
            string name1 = arrStr[0];
            string name2 = arrStr[0];
            foreach (string s in split)
            {
                if (s.Trim() != "")
                {
                    Console.WriteLine(s);
                    arrStr[i] = s;
                    i++;
                }
            }
 
            int max = arrStr[0].Length;
            int min = arrStr[0].Length;
 
            for (int j = 0; i < arrStr.Length; j++) {
                if (max < arrStr[j].Length)
                {
                    max = arrStr[j].Length;
                    name1 = arrStr[j];
                }
 
                if (min > arrStr[j].Length)
                {
                    min = arrStr[j].Length;
                    name2 = arrStr[j];
                }
 
            }
            Console.WriteLine("Самое длинное название: {0}, Количество символов: {1}", name1, max);
            Console.WriteLine("Самое короткое название: {0}, Количество символов: {1}", name2, min);
            Console.ReadKey();
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.10.2015, 10:24
Ответы с готовыми решениями:

Найти самое длинное и самое короткое слово и количество символов в них
Помогите решить задачи на строки.на стандартные операции и функции для строк 1.В предложении разделенным пробелами: а)Найти количество...

Вывести на экран самое длинное и самое короткое название городов
1.&quot;составить программу на языке Turbo Pascal и блок схему к ней:вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по...

Вывод на экран названия стран, для которых в базе записано самое большое и самое маленькое количество городов
Есть программа с данными структур (простейшая база данных) : Город : страна, название, население, площадь. city.country, city.name,...

6
4 / 4 / 0
Регистрация: 21.06.2011
Сообщений: 25
16.10.2015, 10:55
Цитата Сообщение от Maggie_001 Посмотреть сообщение
for (int j = 0; i < arrStr.Length; j++) {
у вас опечатка.. Вы используете J, а сравниваете I

А нет, поторопился

Добавлено через 6 минут
Вот так будет работать:
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
class Program
    {
        static void Main(string[] args)
        {
            string str;
 
            Console.WriteLine("Введите через запятую названия трёх городов без побелов");
            str = Console.ReadLine();
 
            string[] split = str.Split(new Char[] { ',' });
            string[] arrStr = new string[split.Length];
 
            int i = 0;
            string name1 = arrStr[0];
            string name2 = arrStr[0];
            foreach (string s in split)
            {
                if (s.Trim() != "")
                {
                    Console.WriteLine(s);
                    arrStr[i] = s;
                    i++;
                }
            }
 
            int max = arrStr[0].Length;
            int min = arrStr[0].Length;
 
            for (int j = 0; j < arrStr.Length; j++)
            {
                if (max < arrStr[j].Length)
                {
                    max = arrStr[j].Length;
                    name1 = arrStr[j];
                }
 
                if (min > arrStr[j].Length)
                {
                    min = arrStr[j].Length;
                    name2 = arrStr[j];
                }
 
            }
            Console.WriteLine("Самое длинное название: {0}, Количество символов: {1}", name1, max);
            Console.WriteLine("Самое короткое название: {0}, Количество символов: {1}", name2, min);
            Console.ReadKey();
        }
    }
0
11 / 11 / 12
Регистрация: 18.09.2015
Сообщений: 39
16.10.2015, 11:03
Сделать так:
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
        static void Main(string[] args)
        {
            GetGoroda();
            Console.ReadLine();
        }
 
        static int Max;
        static int Min;
        static String[] Goroda;
        static int[] LengGoroda;
        static void GetGoroda()
        {
            Goroda = new String[3] { "Город111", "Город22", "Город3" };
            LengGoroda = Goroda.Select(GetMaxLength).ToArray();
            Max = LengGoroda.Max();
            Min = LengGoroda.Min();
            String[] Temp = Goroda.Where(WriteGoroda).ToArray();
        }
 
        static int GetMaxLength(String Gorod)
        {
            return Gorod.Length;
        }
 
        static bool WriteGoroda(String Gorod, int Index)
        {
            if (LengGoroda[Index] == Max)
                Console.WriteLine("Max =" + Gorod + " " + Gorod.Length);
            if (LengGoroda[Index] == Min)
                Console.WriteLine("Min =" + Gorod + " " + Gorod.Length);
            return true;
        }
0
[Bicycle Reinventor]
 Аватар для Exerion
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
16.10.2015, 11:09
Жесть какая-то, зачем так сложно?
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
static void Main(string[] args)
{
    Console.WriteLine("Введите через запятую названия трёх городов без побелов:");
    string[] cities = Console.ReadLine().Split(',');
 
    int minLen = 255;
    int maxLen = 0;
    string minCity = "";
    string maxCity = "";
 
    for (int i = 0; i < cities.Length; i++)
    {
        if(cities[i].Length < minLen)
        {
            minLen = cities[i].Length;
            minCity = cities[i];
        }
        if (cities[i].Length > maxLen)
        {
            maxLen = cities[i].Length;
            maxCity = cities[i];
        }
    }
 
    Console.WriteLine("Самое длинное название: {0}, Количество символов: {1}", maxCity, maxLen);
    Console.WriteLine("Самое короткое название: {0}, Количество символов: {1}", minCity, minLen);
 
    Console.ReadLine();
}
0
11 / 11 / 12
Регистрация: 18.09.2015
Сообщений: 39
16.10.2015, 11:14
Exerion, Если будут два одинаковых по длинне города твоя прога не сработает))

Добавлено через 2 минуты
Я делал бы так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        static void Main(string[] args)
        {
            GetGorodaLambda();
            Console.ReadLine();
        }
 
        
 
        static void GetGorodaLambda()
        {
            String[] Goroda = new String[3] { "Город11", "Город22", "Город3" };
            int iMax = Goroda.Select((Gor) => Gor.Length).Max();
            int iMin = Goroda.Select((Gor) => Gor.Length).Min();
            String[] Temp = Goroda.Where((Gor, ind) => 
            {
                if (Gor.Length == iMax)
                    Console.WriteLine("Max =" + Gor + " " + Gor.Length);
                if (Gor.Length == iMin)
                    Console.WriteLine("Min =" + Gor + " " + Gor.Length);
                return true;
            }).ToArray();
        }
0
[Bicycle Reinventor]
 Аватар для Exerion
332 / 270 / 109
Регистрация: 19.10.2011
Сообщений: 668
Записей в блоге: 2
16.10.2015, 13:28
Futu, в задании ни слова не сказано что делать в случае с одинаковой длинной, так что это уже проблемы заказчика.
0
11 / 11 / 12
Регистрация: 18.09.2015
Сообщений: 39
16.10.2015, 14:18
Exerion, это же маленький пример, пример чего-то большего, к примеру будет не длинна названия, а кол-во предприятий. и в рейтинге наибольшее кол-во предприятий победит один город, хотя и у другого тоже наибольшее кол-во предприятий а он просто вылетит из вашей программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.10.2015, 14:18
Помогаю со студенческими работами здесь

Подсчитать количество предложений во всех файлах и вывести на экран самое короткое и самое длинное предложения
Напишите программу, которая открывает текстовый файл-список, содержащий имена файлов по одному на строке. Программа подсчитывает количество...

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

Дана строка символов. Слова в строке отделяются одним пробелом. Поменять местами самое длинное и самое короткое слово
8. Дана строка символов. Слова в строке отделяются одним пробелом. Поменять местами самое длинное и самое короткое слово. не могу...

Вывести строку по словам, найти самое длинное и самое короткое слово
• Дана строка S. Вивисты его послов и сказать которое дольше и которое меньше слово.

Вывести на экран самое длинное и самое короткое название города
1) запрашивает названия трех городов; 2) проверяет, чтобы все они были разной длины, если это не так, то выводит соответствующее...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru