Другие языки программирования и технологии

Помогите написать правильно программу в С, мой вариант не работает

Здравствуйте, помогите, пожалуйста, исправить программу в С.
Суть программы в том, что если вводишь правильный пароль из 3 букв, она выдает надпись 2, если вводишь неправильный пароль, то выдает надпись 1 и возвращает тебя к вводу пароля. Мой вариант, видимо, очень кривой.

Мой вариант такой:

# include <stdio.h>
# include <conio.h>

main ()
{
char parol [2];
scanf ("%s", &parol);
while (parol!=авс)
{printf ("Надпись 1"); scanf ("%s", &parol)}
if (parol == авс) printf ("Надпись 2");
getch ();
}
while (parol!="авс")! Так строки не сравнивают.
Попробуйте
int main()
{
char parol [3]=" ";
while (strcmp(parol,"abc") != NULL)
{
scanf ("%s", &parol);
if(strcmp(parol,"abc") != NULL) printf ("Надпись 1 \n");
}
printf ("Надпись 2");
}
Андрей Кардаков
Андрей Кардаков
80 515
Лучший ответ
Михаил Запольный Выдает ошибку на этой строке

while (strcmp(parol,"abc") != NULL)

Хочет чтото поставить перед "int" и говорит, что не хватает запятой или точки с запятой преде сравнением !=
Михаил Запольный Если по-другому немного сделать, то все работает прекрасно! Спасибо Вам! :)
В конце if уже не нужен, и пароль должен быть в кавычках
# include <stdio.h>
# include <conio.h>

main ()
{
char parol [2];
scanf ("%s", &parol);
while (parol!="авс")
{printf ("Надпись 1"); scanf ("%s", &parol)}
printf ("Надпись 2");
getch ();
}

Потом, еще может быть, надо вводить
scanf ("%s", parol);
а не
scanf ("%s", &parol);
Но в этом я уже не уверен, потому что знаю С не очень хорошо.
char parol [2]; // так 2 или 3 символа?

scanf ("%s", &parol); // здесь должен передаваться указатель куда писать результат, parol сам по себе является указателем на первый элемент массива символов, операция взятия указателя не нужна

while (parol!=авс) // нужно сравнивать не указатель, а символы на которые он указывает, посимвольно в цикле, если авс - это строка-константа, то она должна быть взята в кавычки.
Антон Захаров
Антон Захаров
5 305
Михаил Запольный 3 символа. Я думала, что отсчет идет с 0
Михаил Запольный да, авс - консанта, если брать в кавычки, пропадает ошибка, которая до этого выдавалась. но программа все равно не работает. Теперь ошибка не выдается, а пишется "Permission denied id retuned 1 exit status"
строку
if (parol == авс) printf ("Надпись 2");
надо вынести ниже за цикл, можно и без условия, просто
printf ("Надпись 2");

и вообще abc - это что? переменная? если текст должен быть таким, то он в кавычках должен быть!
и еще для строки надо 2 дополнительных символа выделять.
Михаил Запольный Алексей, объясните, пожалуйста, как выделить два дополнительных символа для строки 2. Я не очень поняла, что Вы имеете ввиду
С кавычками ошибка пропадает.!!!Здорово!