Re: [FWD] Алгоритм
- From
- Oleg I. Khovayko ()
- To
- Veniamin Novoselsky
- Date
- 2002-07-12T23:35:46Z
- Area
- RU.ALGORITHMS
From: "Oleg I. Khovayko" <olegh@ncbi.nlm.nih.gov>
>
> есть слово, совершенно произвольное, для него надо составить матрицу ( 5 х 5 )
> след. вида:
>
> _m_ _o_ _n_ _a_ _r_
> _c_ _h_ _y_ b d
> e f g i/j k
> l p q s t
> u v w x z
>
> Это для слова _monarchy_. Т.е. записывается слово, повторяющиеся в нем символы
> отбрасываются, а остальные символы алфавита записываются попорядку. (i/j - один
> и тот же символ).
>
Тогда слово не совершенно произвольное,
а такое, в котором нет повторяюшихся букв.
Иначе условия "записывается слово" и
"матрицу ( 5 х 5 )" вступаят в противоречие.
Ибо как ты засунешь в матрицу ( 5 х 5 ) слово:
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
а вдобавок к нему - еще и почти весь алфавит?!?!?!?
Я вижу только одно решение: не печатaть в слове
повторяющихся букв которые уже до этого были напечатаны,
то есть все буквы печатать по
одному разу. Например слово "abba" печатать как "ab",
а "zanzibar" - как "zanibr"
Ох, беда с вами...
Даже корректно задачу поставить не можете...
Ладно. Ниже - программа, которая рисует
твою матрицу ( 5 х 5 ).
-----------------------------------------------
#include <stdio.h>
#include <string.h>
static int linepos = 0;
void p5(const char *format, char c, char flag) {
if(flag && c !='j') {
printf(c == 'i'? " i/j " : format, c);
if(++linepos >= 5) {
linepos = 0;
putchar('\n');
}
}
}
void print5x5(const char *in) {
char buf[100];
strcpy(buf, in);
char *p = strchr(buf, 'j');
if(p) *p = 'i';
linepos = 0;
char need_print[0200];
memset(need_print, 1, sizeof(need_print));
for(p = buf; *p; p++) {
p5(" _%c_ ", *p, need_print[*p]);
need_print[*p] = 0;
}
for(char c = 'a'; c <= 'z'; c++)
p5(" %c ", c, need_print[c]);
putchar('\n');
}
main() {
print5x5("monarchy");
print5x5("micro");
print5x5("jopa");
print5x5("zanzibar");
print5x5("abracadabra");
}
--
#include <best/regards.hpp>
Oleg I. KHOVAYKO
(301)435-5885 || WEB: http://olegh.spedia.net
--- ifmail v.2.15dev5
* Origin: National Center for Biotechnology Information (2:5020/400)