Может кто-то помочь. Я новичок в программировании и курсе cs50. Задача состоит в том, чтобы скремблировать простой текст на основе кодового слова. Язык C и linux.Уровень начального уровня. Кодирование в C. Проблемы с "if else".
Кажется, что все это работает, но я ударяю головой в течение последних 2 часов, пытаясь исправить последнюю ошибку при компиляции программы. Проблема, которую я имею в нижней половине программы (после // Cipher FUNTION бит)
Это ошибка:
viginere.c:39:5: error: expected expression
else
^
viginere.c:44:5: error: expected expression
else
^
2 errors generated.
Я не могу видеть, что я сделал неправильно с этим.
Я столкнулся с {} в нескольких разных местах, но я не думаю, что это проблема, так как эта программа является модифицированной версией программы, которую я сделал раньше, и что она работает с той же компоновкой (только с другой немного другой printf) Что мне не хватает?
Heres мой код:
int main (int argc, string argv[])
{
//change command line string to a number
int k = atoi(argv[1]);
string v = argv[1];
//check program command line was typed correctly
if (argc != 2 || k != 0)
{
printf("Restart program with keyword in command line (alphabetical characters only)\n");
return 1;
}
//Get Plain Text
printf("The keyword is set to %s.\nType in your plain text: ", argv[1]);
string s = GetString();
//Print Cipher
printf("Your cipher text = ");
//Set variables for mudulo on keyword
int codecount = strlen(argv[1]);
int c = 0;
//Cipher function (Errors are in this part)
for (int i = 0; i < strlen(s); i++)
{
//Cipher uppercase
if (isupper(s[i]))
printf("%c", (s[i] + v[c%codecount] - 65)%26 + 65);
c++;
//Else Cipher lowercase
else
if (islower(s[i]))
printf("%c", (s[i] + v[c%codecount] - 97)%26 + 97);
c++;
//Print all else as normal
else
printf("%c", s[i]);
}
printf("\n");
}
Вам нужны скобки вокруг нескольких операторов после того, как 'if' для' else' будет действительным. Кроме того, Вигенер, вероятно, превращается в могилу, когда его имя ошибочно написано. –
Вам не хватает скобок для операторов if + else в вашем цикле for –
Спасибо большое, ребята, мне удалось заставить это работать в результате. Также изменилось имя файла на Vigenere .... – Vince