int?main(void)
{
int?DNA[]?=?{?1,?2,?4,?2,?2,?2,?1,?4,?4,?2,?3,?4,?4,?4,?2,?1,?4,?1,
3,?3,?2,?1,?3,?2,?1,?1,?2,?2,?2,?3,?4,?1,?3,?1,?2,?1,?4,?4,
4,?1,?1,?3,?1,?4,?2,?4,?4,?1,?4,?4,?1,?4,?4,?4,?4,?1,?1,
2,?3,?3,?3,?3,?4,?4,?3,?2,?3,?2,?3,?4,?3,?3,?4,?4,?1,?3,?3,
2,?1,?2,?3,?1,?2,?1,?3,?3,?2,?1,?4,?1,?4,?3,?4,?4,?4,?1,?2,
1,?3,?2,?0?};
char?s[128];
int?i?=?0;
while?(DNA[i])?{
s[i]?=?DNA[i]?+?'0';
i++;
}
s[i]?=?'\0';
while?(1)?{
int?l;
int?j;
char?a[128];
printf("Enter?length?of?DNA?sequence?to?match:");
scanf("%d",?&l);
getchar();
if?(l?<=?0)
goto?out;
printf("Enter?%d?characters(one?of?12345)"
"?as?a?search?sequence:",?l);
gets(a);
for?(i?=?0;?i?<?l;?i++)?{
if?(a[i]?>?'5'?||?a[i]?<?'1')?{
printf("Erroneous?character"
"?input?'%c'?exiting\n",?a[i]);
goto?out;
}
}
for?(i?=?0;?i?<?sizeof(DNA)?/?sizeof(int)?-?l?-?1;?i++)?{
for?(j?=?0;?j?<?l;?j++)?{
if?(a[j]?==?'5')
continue;
else?if?(a[j]?!=?s[i?+?j])
break;
}
if?(j?==?l?&&?(a[j?-?1]?==?s[i?+?j?-?1]
||?a[j?-?1]?==?'5'))
printf("Match?of?search?sequence"
"?found?at?element?%d\n",?i);
}
}
out:
printf("Goodbey\n");
return?0;
}