BLANCO


Главная » 2010 » Апрель » 30 » .cpp
.cpp
15:00
Задание №2: на входе текстовый файл, состоящий из символов A, T, G, C (можно в нижнем регистре). Нужно подсчитать количество повторов каждого из символов.
A, T, G, C - обозначают нуклеотиды: аденин, тимин, гуанин и цитозин.

#include
int main()
{
FILE *input_file = fopen("in.txt", "r");
const int quantity = 256;
int a_quan = 0, t_quan = 0, g_quan = 0, c_quan = 0;
char *string, line[quantity];

while(!feof(input_file))
{
string = fgets(line, quantity, input_file);
int i;
for(i=1; i<=quantity; i++)
{

switch (string[i])
{
case 'a': a_quan++; break;
case 't': t_quan++; break;
case 'g': g_quan++; break;
case 'c': c_quan++; break;
default:;
}
}
}
fclose(input_file);
printf("A=%d\nT=%d\nG=%d\nC=%d\n", a_quan, t_quan, g_quan, c_quan);

return 0;
}

Автор: Stasundr


Всего комментариев: 8
30.04.2010 Спам
8. DuffDodger (DuffDodger)
#include <stdio.h>
#include <string.h>
#include <stdafx.h>
#define N 500
int main()
{
FILE *p=fopen("f.txt", "r");
int i, ka=0, kt=0, kg=0, kc=0;
char s[N];

while(!feof(p))
{
fgets(s, N-1, p);
// int len=strlen(s);
#pragma omp parallel
{
#pragma omp for private(i) shared(s,ka,kt,kg,kc)
for(i=0; i<N; i++)
{
if(s[i]=='a')
ka++;
else if(s[i]=='t')
kt++;
else if(s[i]=='g')
kg++;
else if(s[i]=='c')
kc++;
}
}
}
fclose(p);
printf("A=%i\nT=%i\nG=%i\nC=%i\n", ka, kt, kg, kc);
return 0;
}

Так в параллели?


30.04.2010 Спам
7. DuffDodger (DuffDodger)
Этот работает

30.04.2010 Спам
6. DuffDodger (DuffDodger)
Code

#include <stdio.h>
#include <string.h>
#include <stdafx.h>
#define N 500
int main()
{
  FILE *p=fopen("f.txt", "r");
  int i, ka=0, kt=0, kg=0, kc=0;
  char s[N];

  while(!feof(p))
  {  
  fgets(s, N-1, p);
  // int len=strlen(s);
  
  for(i=0; i<N; i++)
  {
  if(s[i]=='a')
  ka++;
  else if(s[i]=='t')
  kt++;
  else if(s[i]=='g')
  kg++;
  else if(s[i]=='c')
  kc++;
  }
  }
fclose(p);
printf("A=%i\nT=%i\nG=%i\nC=%i\n", ka, kt, kg, kc);  
return 0;
}

30.04.2010 Спам
5. Stasundr (Stasundr)
Да тут трудно ошибиться, разве что printf правильно написать ;)
А теперь make it ||

30.04.2010 Спам
4. DuffDodger (DuffDodger)
Не проверял, правильность не гарантирую..

Кстати

Code
printf("A=%d\nT=%d\nG=%d\nC=%d\n", a_quan, t_quan, g_quan, c_quan);

Почему ты тип int выводишь как double?

30.04.2010 Спам
3. DuffDodger (DuffDodger)
Code
#include <stdio.h>
#include <string.h>

int main()
{
  FILE *p=fopen("f.txt", "r");
  int i, ka=0, kt=0, kg=0, kc=0;
  char s[500];

  while(!feof(p))
  {  
  fgets(s, 499, p);
  int len=strlen(s);
  
  for(i=0; i<len;, i++)
  {
  if(s[i]=='a')
  ka++;
  else if(s[i]=='t')
  kt++;
  else if(s[i]=='g')
  kg++;
  else if(s[i]=='c')
  kc++;
  }
  }
fclose(p);
printfprintf("A=%i\nT=%i\nG=%i\nC=%i\n", ka, kt, kg, kc);  
return 0;
}

30.04.2010 Спам
2. Stasundr (Stasundr)
Все-таки напиши эту прогу (и работай с файлами - не вводи инфу с клавы!)

30.04.2010 Спам
1. DuffDodger (DuffDodger)
А я через условия делал

Имя *:
Email *:
Код *:


2007 © Стасундр и Лёнич
Сайт управляется системой uCoz