Софтуерно Инженерство
Loading...
+ Нов въпрос
FaniTodorova avatar FaniTodorova 1 Точки

Въпрос по задача "Познай паролата"

Здравейте, опитвам се да реша задача за сравняване на текст (задача 12, лекция "прости условни конструкции"). По примери, които открих в интернет я решавам така:

string pass = Console.ReadLine();
            string b = s3cr3t!Parallel@ssw0rd;
            
            if (pass == b)
            {
                Console.WriteLine("Welcome");      
            }
            else
            {
                Console.WriteLine("Wrong password!");
            }
Вижуъл студио обаче ми подчертава като грешно "s3cr3t!Parallel@ssw0rd;" , което е в условието на задачата... Някакви идеи къде е грешката?

fiherLuci avatar fiherLuci 224 Точки

string b = s3cr3t!Parallel@ssw0rd;

трябва да ти е в кавички 

string b = "s3cr3t!Parallel@ssw0rd";

Пробвай така ;–)

0
FaniTodorova avatar FaniTodorova 1 Точки

Странното е, че когато постнах темата, бях пробвала със и без кавички. И в двата случая ми го подчерта. После го пренаписах така

string a = Console.ReadLine();
            string b = "s3cr3t!Parallel@ssw0rd";

            
            if (a.Equals(b))
            {
                Console.WriteLine("Welcome!");
            }
            else
            {
                Console.WriteLine("Wrong password!");
            }

На конзолата ми работи, а Джъджа ми казва 66/100 ...?!?!?

0
hwfbcisod avatar hwfbcisod 80 Точки

Съдържанието на променливта от тип string трябва да го сложиш в кавички: string b =  "s3cr3t!Parallel@ssw0rd";

Всъщност в случая дори не е нужно да декларираш отделен string, можеш направо да заместиш в условната конструкция: if ( pass == "s3cr3t!Parallel@ssw0rd").

1
31/05/2016 17:35:41
FaniTodorova avatar FaniTodorova 1 Точки

ОО, благодаря, ще го пробвам !

0
FaniTodorova avatar FaniTodorova 1 Точки

Въпросът отпада, гугъл каза, че се решава така:

 

 string a = Console.ReadLine();
            string b = "s3cr3t!Parallel@ssw0rd";

            
            if (a.Equals(b))
            {
                Console.WriteLine("Welcome!");
            }
            else
            {
                Console.WriteLine("Wrong password!");
            }
 

0
btonew avatar btonew 43 Точки

Не е необходимо да използваш допълнителна променлива. Директно направи проверка дали променливата, която четеш от конзолата, отговаря на "s3cr3t!Parallel@ssw0rd" .

0
alex1966 avatar alex1966 255 Точки

Едва ли google го казва точно за C#, спокойно a == b ще работи, защото в C# Equals метода е override-нат да работи и със стрингове.

0
borislav9212 avatar borislav9212 746 Точки

Здравей,

Judge ти е дал 66 точки защото имаш две грешки в кода:

string b = "s3cr3t!Parallel@ssw0rd";  -> трябва да е ->  string b = "s3cr3t!P@ssw0rd";

 Console.WriteLine("Welcome!"); -> трябва да е -> Console.WriteLine("Welcome");

 

 

0
life_84 avatar life_84 5 Точки

Здравей.Подрепям колегата  borislav9212.Имаш едни и същи грешки на двете решения със кода.

string b = "s3cr3t!Parallel@ssw0rd";  -> трябва да е ->  string b = "s3cr3t!P@ssw0rd";

 Console.WriteLine("Welcome!"); -> трябва да е -> Console.WriteLine("Welcome");

 

Ето първото коригирано решение на кода.

using System;

namespace Password_Guess
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = Console.ReadLine();
            string b = "s3cr3t!P@ssw0rd";

            if (a.Equals(b))
            {
                Console.WriteLine("Welcome");
            }
            else
            {
                Console.WriteLine("Wrong password!");
            }
        }
    }
}

 

Ето второ коригирано решение на кода.

using System;

namespace Password_Guess
{
    class Program
    {
        static void Main(string[] args)
        {
       string pass = Console.ReadLine();
            string b = "s3cr3t!P@ssw0rd"; 

            if ( pass == b)
            {
                Console.WriteLine("Welcome");
            }
            else
            {
                Console.WriteLine("Wrong password!");
            }
        }
    }
}

 

И двете решения работят в  visual studio и  в judge дават 100%.

2
01/06/2016 17:17:51
rado84 avatar rado84 1 Точки

Ето още едно решение (моето). И да, аз също се натъкнах на проблема с паролата, защото удивителният знак се използва при сравненията (нали знаеш: != означава "не е равно", а с кльомбата пък задаваш местоположение на файл) и компилаторът затова не я приема. Чак, когато реших да пробвам да я оградя в кавички, тогава нещата станаха.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GuessThePassword
{
    class Program
    {
        static void Main(string[] args)
        {
            var pword = Console.ReadLine();

            if (pword == "s3cr3t!P@ssw0rd")
            {
                Console.WriteLine("Welcome");
            }

            else
            {
                Console.WriteLine("Wrong password!");
            }
        }
    }
}

 

0
01/06/2016 20:29:02
brusesv avatar brusesv 5 Точки

" Ето още едно решение (моето). И да, аз също се натъкнах на проблема с паролата, защото удивителният знак се използва при сравненията (нали знаеш: != означава "не е равно", а с кльомбата пък задаваш местоположение на файл) и компилаторът затова не я приема. Чак, когато реших да пробвам да я оградя в кавички, тогава нещата станаха. "

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

String винаги в кавички колега.

0
Vassil_Ganchev avatar Vassil_Ganchev 3 Точки

Ето още един отговор:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Password_Guess
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = (Console.ReadLine());
            string password = "s3cr3t!P@ssw0rd";           
            if (text == password)
            {
                Console.WriteLine("Welcome");
            }
            else
            {
                Console.WriteLine("Wrong password!");
            }
        }
    }
}
 

0
brusesv avatar brusesv 5 Точки

този вариант е най-добре оформен

Аз давам 100 точки.

0
sotirona avatar sotirona 25 Точки

Здравей,

Сложи му едни кавички:

string b = "s3cr3t!Parallel@ssw0rd";

0
brusesv avatar brusesv 5 Точки

Ето така е добре и работи :

            string text = Console.ReadLine();
            string pass = "s3cr3t!P@ssw0rd";
            if (text == pass)
            {
                Console.WriteLine("Welcome");
            }
            else
            {
                Console.WriteLine("Wrong password!");

Хайде сега ще черпиш. wink

0