c语言初学者:函数调用出现问题,字符数组的符号出错?

#include<stdio.h>
int main()
{
printf("%.3f",f(0,2));
return 0;
}
int f(int x,int y)
{
char seq1[6],seq2[6];
float r;
seq1[6]="ACGTT";
seq2[6]="GCATG";
if (seq1[x]=='A'&&seq2[y]=='A')
r=0.99;
return(r);
}

第1个回答  2015-01-02
函数类型是int型,返回值只能是整型,所以返回值0.99转化为0了,最后也是输出0.000;
还有我的编译器把函数写在后面但前面没有声明是无法通过的~╮(╯-╰)╭,还有一个错楼上说了

代码一:
#include<stdio.h>
float f(int x,int y)
{
char seq1[6]="ACGTT",seq2[6]="GCATG";
float r;
if (seq1[x]=='A'&&seq2[y]=='A')r=0.99;
return(r);
}
int main()
{
printf("%.3f",f(0,2));
return 0;
}

大妈二:
#include<stdio.h>
int main()
{
float f(int x,int y);
printf("%.3f",f(0,2));
return 0;
}
float f(int x,int y)
{
char seq1[6]="ACGTT",seq2[6]="GCATG";
float r;
if (seq1[x]=='A'&&seq2[y]=='A')r=0.99;
return(r);
}
第2个回答  2015-01-01
f函数应该改为
int f(int x,int y)
{
char seq1[6]="ACGTT",seq2[6]="GCATG";
float r;
if (seq1[x]=='A'&&seq2[y]=='A')
r=0.99;
return(r);
}追问

还是不对诶~

追答

哪里不对,是程序有错误,还是执行结果不对。

第3个回答  2015-01-02
float f(int x,int y)
{
char seq1[6],seq2[6];
float r;
seq1[6]="ACGTT";
seq2[6]="GCATG";
if (seq1[x]=='A'&&seq2[y]=='A')
r=0.99;
return r;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网