Си диез / Говнокод #14334 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
using System;
using System.Globalization;
using System.IO;
 
namespace CyberForumTasks
{
    class Program
    {
        static void Main()
        {
            var text = File.ReadAllText("C:\\test.txt");
 
            for (var i = 0; i < text.Length - 1; i++)
            {
                if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                    if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                        if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("1"))
                            Console.Write("101");
 
                if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                    if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            Console.Write("110");
 
                if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                    if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("1"))
                            Console.Write("111");
 
                if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                    if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                        if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            if (text[i + 3].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                Console.Write("1000");
 
                if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                    if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                        if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            if (text[i + 3].ToString(CultureInfo.InvariantCulture).Contains("1"))
                                Console.Write("1001");
 
                if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                    if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                        if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("1"))
                            if (text[i + 3].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                Console.Write("1010");
            }
        }
    }
}

Дан файл целых чисел. Продублировать в нем все числа, принадлежащие диапазону 5..10.

Запостил: Psilon Psilon, (Updated )

Комментарии (32) RSS

    • это называется - я поставил решарпер. и он мной руководит!
      Ответить
        • ага. есть такие клинические случаи. Причем зайти в настройки не судьба
          Ответить
  • Ctrl+C - Ctrl+V, Ctrl+C - Ctrl+V, ... , Ctrl+C - Ctrl+V, ...
    P.S. А почему программа называется "Задачи кибер форума"?
    Ответить
  • наверное он хотел так
    namespace ConsoleApplication20
    {
        class Program
        {
            static void Main(string[] args)
            {
                var text = File.ReadAllText("C:\\test.txt");
                var output = new StringBuilder();
                foreach (var c in text)
                {
                    output.Append(c);
                    if (c <= '9' && c >= '5') output.Append(c);
                }
                Console.WriteLine(output.ToString());
                Console.ReadKey();
            }
        }
    }
    Ответить
    • static void Main(string[] args)
              {
                  string input =  File.ReadAllText(@"C:\test.txt");
                  string result = Regex.Replace(input, @"\b([5-9])\b", "$1$1");
                  Console.WriteLine(result);
              }
      Ответить
      • Ну как он мог хотеть регулярок, если он циклы писать нормально не умеет?
        Ответить
        • А без регулярок трудно, ведь число "51" не подходит по заданию, а у вас в выводе будет "551", что не есть верно.
          Ответить
          • Хм, я себе задачу представлял так

            вход 827

            вывод 88277

            да, наверное я задачу не так понял
            Ответить
    • Там же "бинарный файл".

      Кстати, дикое сочетание i < text.Length - 1 и i + 2 никого не смутило? 🙂
      Ответить
        • Ну а что. Задача же решена:
          Спасибо всем за ответы, задача успешно решена))
          Ответить
          • Я думаю, ему в другом месте ответили, потому что ЭТО вряд ли бы стало работать "правильно"... 🙂
            Ответить
      • Там еще и i+3 есть. и последнее условие является копипастом первого с допиисью нового условия.
        строка 1010 породит 1011010

        А то что там никто никуда не удваивает не смутило? и то что там числа типа 5 6 7 8 9 вообще не исследуются?
        Или что чар конвертится в строку, а потом методом контейнт проверяется равенство с другой строкой, хотя можно было просто с чаром сравнить?

        Или что на форуме ему советовали
        >>Используйте класс StreamReader для чтения файла. Он может читать как весь файл так и по строкам.

        как будто это ему чем то поможет?

        Ээх...
        Ответить
  • > файл целых чисел.
    по-любому придется создать временный файл, открываем источник для чтения, темповый для записи, и последовательно читаем целые. пишем (как копирование), если число в нужном диапазоне - пишем еще раз. так до конца, флашим, закрываем оба файла, исходник удаляем, перемещаем на его место наш временный. усе.
    а что хотел сделать автор сабжа - непонятно какую хуйню.
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8