Здравствуйте, помогите, пожалуйста, исправить программу в С.
Суть программы в том, что если вводишь правильный пароль из 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");
}
Попробуйте
int main()
{
char parol [3]=" ";
while (strcmp(parol,"abc") != NULL)
{
scanf ("%s", &parol);
if(strcmp(parol,"abc") != NULL) printf ("Надпись 1 \n");
}
printf ("Надпись 2");
}
В конце 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);
Но в этом я уже не уверен, потому что знаю С не очень хорошо.
# 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!=авс) // нужно сравнивать не указатель, а символы на которые он указывает, посимвольно в цикле, если авс - это строка-константа, то она должна быть взята в кавычки.
scanf ("%s", &parol); // здесь должен передаваться указатель куда писать результат, parol сам по себе является указателем на первый элемент массива символов, операция взятия указателя не нужна
while (parol!=авс) // нужно сравнивать не указатель, а символы на которые он указывает, посимвольно в цикле, если авс - это строка-константа, то она должна быть взята в кавычки.
Михаил Запольный
3 символа. Я думала, что отсчет идет с 0
Михаил Запольный
да, авс - консанта, если брать в кавычки, пропадает ошибка, которая до этого выдавалась. но программа все равно не работает. Теперь ошибка не выдается, а пишется "Permission denied id retuned 1 exit status"
строку
if (parol == авс) printf ("Надпись 2");
надо вынести ниже за цикл, можно и без условия, просто
printf ("Надпись 2");
и вообще abc - это что? переменная? если текст должен быть таким, то он в кавычках должен быть!
и еще для строки надо 2 дополнительных символа выделять.
if (parol == авс) printf ("Надпись 2");
надо вынести ниже за цикл, можно и без условия, просто
printf ("Надпись 2");
и вообще abc - это что? переменная? если текст должен быть таким, то он в кавычках должен быть!
и еще для строки надо 2 дополнительных символа выделять.
Михаил Запольный
Алексей, объясните, пожалуйста, как выделить два дополнительных символа для строки 2. Я не очень поняла, что Вы имеете ввиду
С кавычками ошибка пропадает.!!!Здорово!
С кавычками ошибка пропадает.!!!Здорово!
Похожие вопросы
- помогите написать простые программы на Qbasic
- Помогите написать пару программ на СИ
- Написал небольшую программу, не могу понять почему не работает цикл while и оператор else
- Помогите написать текст программы на С++
- Помогите написать простые программы и задачи в Pascal ABC. Алгоритмы ветвления. Информатика. Програмирование.
- Помогите написать текст программы.
- Помогите написать небольшую программу на ассемблере (TASM). Подробности внутри.
- Помогите написать простенькую программу в C#
- Помогите написать (исправить) программу на языке Си++
- Помогите написать текст программы на языке С
while (strcmp(parol,"abc") != NULL)
Хочет чтото поставить перед "int" и говорит, что не хватает запятой или точки с запятой преде сравнением !=