SciFi (06.10.2015 12:29, просмотров: 118) ответил abivan на а и не надо ничего помнить есть инструменты, а лишняя писанина...
Угу, только если изменится порядок полей в структуре, нужно перелопачивать все инициализаторы. Ну и название поля в C99 проверяет компилятор, а порядок инициализации в C90 - человек. Это две большие разницы. А без лишней писанины надо так: #include <stdio.h>
#define TA q=/*XYXY*/
#define/*X YXY*/CG r=
void p(int n,int c){;
for(;n--;) putchar(c)
#define Y( z)d;d=c++\
%2<1?x=x*4 +z,c%8>5?\
x=x?p(1,x), 0:x:0:0;d=
#define/*X YX*/C Y(1)
#define/*X YX*/G Y(2)
;}int(*f)( void),d,c,
#define/*X YX*/A Y(0)
#define/*XY*/AT int\
m(void/**/){d=
#define/*XYX*/T Y(3)
#define GC d; return\
0;}int(*f) (void )=m;
x,q,r; int main(){if(
f)f();else {for(puts(
"#include" "\40\"pro\
g.c\"\n\n \101T"+0);
d=!d?x=(x= getchar())
<0?0:x,8*8 :d,TA++c%8
,TA(1+7*q- q*q)/3,r=c
*15-c*c-36 ,p(r<0?!q+
4:r/6+!q+4 ,32),q||x;
c%=16)q?p( 1,"ACGT"[x
/d&3]),p(q ,126),p(1,
"TGCA"[x/d &3]),d/=4,
p(001,10): puts(c%8?\
"CG":"TA") ;puts("GC"
);}return 0;}/**/
Краткость - сестра таланта.
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้