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;" , което е в условието на задачата... Някакви идеи къде е грешката?

0
Programming Basics
fiherLuci avatar fiherLuci 225 Точки

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 745 Точки

Здравей,

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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.