DaidalosCheung / C

0 stars 0 forks source link

DNA random sequence #5

Open DaidalosCheung opened 4 years ago

DaidalosCheung commented 4 years ago
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

char * follow_seq( char * lead_seq );

int main(void) {
  char lead_seq[99], new_seq[99];
  char * nt;
  unsigned int k;

  srand(time(0)); // Set a random seed, otherwise rand() will generate the same value when it be called.

  for (int i = 0; i < 99; i++ ) {
    k = rand() % 4; // % mod function can only run on INT datatype

    if (k == 0)
      lead_seq[i] = 'A';
    else if (k == 1)
      lead_seq[i] = 'T';
    else if (k == 2)
      lead_seq[i] = 'G';
    else
      lead_seq[i] = 'C';

    printf("%c", lead_seq[i]);
  }
  printf("\n");

  nt = follow_seq( lead_seq );
  for (int i = 0; i < 99; i++){
    new_seq[i] = *nt;
    printf("%c", new_seq[i]);
    nt ++;
  }
  printf("\n");

  return 0;
}

char * follow_seq( char * lead_seq ) {

  char new_seq[99];
  unsigned int i = 0;
  while ( i < 99 ) {
    if (lead_seq[i] == 'A'){
      new_seq[i] = 'T';
      i++;
    }
    else if (lead_seq[i] == 'T'){
      new_seq[i] = 'A';
      i++;
    }
    else if (lead_seq[i] == 'G'){
      new_seq[i] = 'C';
      i++;
    }
    else if (lead_seq[i] == 'C'){
      new_seq[i] = 'G';
      i++;
    }
    printf("synthesis %d", i);
  }
  printf("\n");

  return new_seq;
}