2、编写一个C语言程序,用于分析给定的DNA序列(由A、T、C、G组成的字符串),计算并输出A、T、C、G各自的数量以及它们的比例。
时间: 2025-02-04 20:05:35 浏览: 44
在C语言中,你可以创建一个函数来接收DNA序列作为输入,并通过遍历每个字符来统计A、T、C、G的数量。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 函数声明,用于计算DNA序列的碱基比例
void analyze_dna_sequence(char dna_seq[], double *a_count, double *t_count, double *c_count, double *g_count);
int main() {
char dna_seq[] = "ATCGATCGTACG"; // 示例DNA序列
double a_count, t_count, c_count, g_count;
analyze_dna_sequence(dna_seq, &a_count, &t_count, &c_count, &g_count);
printf("A count: %.0f\n", a_count);
printf("T count: %.0f\n", t_count);
printf("C count: %.0f\n", c_count);
printf("G count: %.0f\n", g_count);
printf("A:T:C:G ratio: %.2f:%.2f:%.2f:%.2f\n", a_count, t_count, c_count, g_count); // 输出比例
return 0;
}
// 分析DNA序列函数
void analyze_dna_sequence(char dna_seq[], double *a_count, double *t_count, double *c_count, double *g_count) {
int len = strlen(dna_seq);
*a_count = 0; *t_count = 0; *c_count = 0; *g_count = 0;
for (int i = 0; i < len; i++) {
if (dna_seq[i] == 'A') (*a_count)++;
else if (dna_seq[i] == 'T') (*t_count)++;
else if (dna_seq[i] == 'C') (*c_count)++;
else if (dna_seq[i] == 'G') (*g_count)++;
}
}
```
这个程序首先定义了四个double类型的变量存储每种碱基数,然后在`analyze_dna_sequence`函数中,遍历给定的DNA序列,每遇到'A'、'T'、'C'或'G'就相应地增加计数。最后,它会打印出A、T、C、G的数量以及它们的比例。
阅读全文
相关推荐


















