早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c++基因相关性题目为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以此来判断该比对的DNA是否具有相关性.现假设比对两条长度相同的DNA序列,当其中对应位

题目详情
c++基因相关性题目
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以此来判断该比对的DNA是否具有相关性.
现假设比对两条长度相同的DNA序列,当其中对应位上的相同碱基的比率大于某给定值时则断定该两条DNA序列是相关的,否则不相关.
关于输入
有三行,第一行是用来分界出该两条DNA序列是否相关的比率,随后2行是两条DNA序列(长度不大于500).
关于输出
若两条DNA序列相关,则输出“yes”;若不相关,则输出“no”;若输入的序列中有A、T、C、G以外的字母出现时或两条序列长度不相等时,则输出“error”.
例子输入
0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC
例子输出
yes
#include
#include
int main(){
\x09int i;
\x09double n;
\x09int g=0;
\x09char a[500],b[500];
\x09scanf("%d",&n);
\x09scanf("%s%s",&a,&b);
\x09if(strlen(a)!=strlen(b)){
\x09\x09printf("error");
\x09}
\x09else{
\x09\x09for(i=0;a[i]!='\0';i++){
\x09\x09\x09if(a[i]=b[i]){
\x09\x09\x09g++;}
\x09\x09}
\x09\x09if(g/(strlen(a)*1.0)>n){
\x09\x09printf("yes");
\x09\x09}
\x09\x09else{printf("no");}
\x09}
\x09return 0;
}
结果都是输出“error”,是不是长度比较的时候错了?还有“若输入的序列中有A、T、C、G以外的字母出现时”这部分要怎么写.
▼优质解答
答案和解析
#include 
#include 
int main(){
\x09int i;
\x09float n;
\x09int g=0;
\x09char a[500], b[500];
\x09
\x09memset(a, 0, 500); /*初始化a b 数组,避免内存中其他程序遗留的垃圾数据 */
\x09memset(b, 0, 500);
\x09
\x09scanf("%f",&n);
\x09scanf("%s", a);
\x09scanf("%s", b);
\x09
\x09if(strlen(a)!=strlen(b)){
\x09\x09printf("error\n");
\x09}
\x09else{
\x09\x09for(i=0; a[i]!='\0'; i++){
\x09\x09\x09if(!strchr("ATGC", a[i]) ){
\x09\x09\x09    printf("error\n");
\x09\x09\x09    return 1;
\x09\x09\x09} else if( a[i] == b[i] ) {
\x09\x09\x09    g++;
\x09\x09\x09}
\x09\x09}
\x09\x09if(g / (strlen(a) * 1.0) > n){
\x09\x09\x09printf("yes\n");
\x09\x09}
\x09\x09else{printf("no\n");}
\x09}
\x09return 0;
}\x1a

程序出错的位置

数组名就是指针,因此在scanf 函数中 不能用&a, &b,而应该用a, b,这是错误的关键;

if( a[i] == b[i])时,用=代替了==是一处错误,而且没有达到设计目标,即非ATGC打印error.

将n设置成float类型, scanf 输入n 的值用%f,而不是%d.

看了 c++基因相关性题目为了获知...的网友还看了以下:

设计建造一条道路,路基的横断面为梯形ABCD,设路基高为2,己知两侧的坡度A为45度,正切B为0.  2020-05-16 …

设计建造一条道路,路基的横断面为梯形ABCD,如图(单位:米).设路基高为h,两侧的坡角分别为α和  2020-05-16 …

某城市高架桥工程建设为兼顾城市发展和保护历史文化遗产,需要将一栋古建筑平移.在移动过程中,施工人员  2020-06-10 …

基础人工挖土工程量钢筋混凝土条形基础,底宽800mm,混凝土垫层宽1000mm,厚200mm,施工  2020-07-03 …

按照俄航天署制定的2016至2025年航天计划俄罗斯将在2018年开始建造月球基地所需的部件以及用  2020-07-05 …

某城市高架桥工程建设,为兼顾城市发展和保护历史文化遗产,需将一栋古建筑平移.在移动过程中,施工人员  2020-07-27 …

if函数嵌套,需要设计一个关于计算基本工资的公式,请根据提示完成此工作表:如果考勤天数大于27天,则  2020-11-06 …

某城市高架桥工程建设,为兼顾城市发展和保护历史文化遗产,需将一栋古建筑平移.在移动过程中,施工人员先  2020-11-21 …

根据当前我国经济和社会发展的现状,为刺激社会需求,财政支出的重点应转向基础建设、基础设施和社会公益事  2021-01-10 …

一道物理计算题某城市高架桥工程建设,为兼顾城市发展和保护历史文化遗产,需将一栋古建筑平移.在移动过程  2021-01-19 …