Здравствуйте.
мне надо написать программу-шифровальщик. С вводом рядка. Прога должна реализировать алгоритм: рядок роазбивается на 5 колонок, символы берутся с введеного рядка и записываются на свободное место следнующнй колонки.
Например:
ABC DEF GHK LMN OP
EL AFM BGN CHO DKP // каждый пятый
char arr [100];
puts("Input string:");
gets (arr);
puts("Inputed string");
puts(arr+5);
return 0;
В результате ты что должна получить? Матрицу? Или просто последовательность символов (каждый 5-ый символ исходной строки)? Не видно этого по приведенному примеру...
протсо повледовательность символов...(также разделеных на колонки...)
протсо повледовательность символов...(также разделеных на колонки...)
и функции gets puts описываются так --> ??
#include <studio.h>
int getchar();
int putchar();
да... и разделение на столбики... это как бы в строку вставляется табуляцыя? но как ее туда вставить...? строка же может быть различной длины..
Сам алгоритм шафрования "каждый пятый символ" выглядит так :
# include <stdio.h>
# include <stdlib.h>
# include <strings.h>
char in[100], out[100];
int main (void)
{
gets(in);
int i = 4;
int n = strlen(in);
for (int pos = 0; pos < n; pos++)
{
while (i >= n)
{
i = i - n;
}
out[pos] = in[i];
i = i + 5;
}
puts(out);
return 0;
}
я думаю просто выводить результат.так проще. чем проще ,тем лучше=)
а можно с комментариями? ато мне не совсем понятно... а надо разобратся...
Исправил )
Я просто через указатели сначала делал) Мм или ты не о том о чем я ?)
fatal error C1010 - что значит эта ошибка?
Кстати, Jerry, если хочешь распечатать это группами по 3, то вот один из вариантов (puts(out) замени на этот код):
...
strrev(out);
i = 0;
while(i + 3 < strlen(out)) {
i += 3;
memmove(&out[i+1], &out[i], strlen(out) - i + 1);
out[i] = ' ';
i++;
}
puts(strrev(out));
...
strrev(out);
int divide = strlen(out) / 5 + (strlen(out)%5 ? 1:0);
i = 0;
while(i + divide < strlen(out)) {
i += divide;
memmove(&out[i+1], &out[i], strlen(out) - i + 1);
out[i] = ' ';
i++;
}
puts(strrev(out));
спасибо...
но у мня выводит эту ошибку...
fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
Ты бы лучше сказала, ЧЕМ ты компилируешь? Если у тебя полноценная поддержка C++, то задача будет решаться СОВЕРШЕННО по-другому (хотя тогда непонятно, с чего ты начала приводить решение в стиле С)...