#include <stdio.h>
int main()
{
char _char = 32;
int x, p, i, d;
scanf("%d ", &x);
while(_char == 32)
_char = getchar();
x = x%26;
printf("The encrypted string is: ");
while((_char >= 'a' && _char <= 'z') || (_char >= 'A' && _char <= 'Z'))
{
if(_char >= 'a' && _char <= 'z')
_char = 'a' + (_char + x - 'a')%26;
else
_char = 'A' + (_char + x - 'A')%26;
d = 'a' - 'A';
p = (_char >= 'a') ? _char - d : _char + d;
printf("%c", p);
scanf("%c", &_char);
}
return 0;
}
Описание кода: программа получает число «x», за которым следуют пробелы, а затем последовательность букв, затем она будет печатать эти буквы (измененные) до первого числа или когда их больше нет письма для получения. Он отлично работает, когда я запускаю его в блоках кода, но когда я использую CMD для вставки входов в виде файла, это дает мне бесконечный цикл, если я ввожу:Бесконечная петля в C
1 FffF
, когда я добавить 0 или любое число он отлично работает :
1 FffF0
бесконечный цикл STH как:
Зашифрованный строка: BBBcccDDDeeefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz....
как я могу SLOVE это!?
Небольшой совет: Вместо того, чтобы делать сравнения, как вы делаете в 'while' состоянии проверить для письма, есть удобная функция называемой «isalpha». Также есть функции, чтобы проверить, имеют ли символы нижний или верхний регистр: 'islower' и' isupper'. –