a c d…… AA AC AD 数据处理

#include "stdafx.h"
#include<string.h>

int _tmain(int argc, _TCHAR* argv[])
{
 char s[21]={"ACDEFGHIKLMNPQRSTVWY"},s1[400][2],str[5000];
 int i=0,j=0,k=0,h=0;
 for(j=0,i=0;j<400;j++)     //构造 AA AC  AD………………
 {
  s1[j][0]=s[i];
  if((j+1)%20==0)
   i++;
 }
 for(j=0,i=0;j<400;j++,i++)
 {
  s1[j][1]=s[i];
  if((i+1)%20==0)
   i=0;
 }                             //
 FILE *readfile=fopen("E:\\风中追风\\蛋白质数据.txt","r");
 FILE *writefile=fopen("E:\\风中追风\\shujujieshou.txt","w+");
 fprintf(writefile,"A,C,D,E,F,G,H,I,K,L,M,N,P,Q,R,S,T,V,W,Y,");  //写入文件的第一行
 for(i=0;i<400;i++)
  for(j=0;j<2;j++)
  { 
   fprintf(writefile,"%c",s1[i][j]);
   if((j+1)%2==0)
    fprintf(writefile,",");
  }
  fprintf(writefile,"\n");                  //
 while(!feof(readfile))           //计算  A B C D ………… 频次
 {
  double fre[20],fre1[400],b;
  for(i=0;i<420;i++)
   fre[i]=0;
  fgets(str,5000,readfile);
  fgets(str,5000,readfile);
  b=strlen(str);
  for(i=0;i<b;i++)
  {
  if(str[i]=='A')
  fre[0]++;
  if(str[i]=='C')
   fre[1]++;
  if(str[i]=='D')
   fre[2]++;
  if(str[i]=='E')
   fre[3]++;
  if(str[i]=='F')
   fre[4]++;
  if(str[i]=='G')
   fre[5]++;
  if(str[i]=='H')
   fre[6]++;
  if(str[i]=='I')
   fre[7]++;
  if(str[i]=='K')
   fre[8]++;
  if(str[i]=='L')
   fre[9]++;
  if(str[i]=='M')
   fre[10]++;
  if(str[i]=='N')
   fre[11]++;
  if(str[i]=='P')
   fre[12]++;
  if(str[i]=='Q')
   fre[13]++;
  if(str[i]=='R')
   fre[14]++;
  if(str[i]=='S')
   fre[15]++;
  if(str[i]=='T')
   fre[16]++;
  if(str[i]=='V')
   fre[17]++;
  if(str[i]=='W')
   fre[18]++;
  if(str[i]=='Y')
   fre[19]++;
  }                 //
  for(k=0;k<b;k++)     // 计算 AA AC AD…………频次
  {
   for(i=0;i<400;i++)
    if(str[k]==s1[i][0]&&str[k+1]==s1[i][1])
    {
      fre1[i]++;
    }
  }                //
  for(j=0;j<20;j++)      //数据的写入
  { 
   fre[j]=fre[j]/b;
   fprintf(writefile,"%.3lf",fre[j]);
   fprintf(writefile,",");

  }
  for(j=0;j<400;j++)
  { 
   fre1[j]=fre1[j]/b;
   fprintf(writefile,"%.3lf",fre1[j]);
   fprintf(writefile,",");

  }
  printf("\n");  //
 }
 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值