我正在尝试比较两个数组。这两个数组都包含15个字符。我想看看它们是否具有相同的元素。
字符被读入数组
阵列1:ATGGAATTCTCGCTC
阵列2:TTGGAATTCTAGCTC
它们都是数组形式,并以arrayt和arraymt的形式传入。 n_size和m_size是每个数组的大小。(这是因为数组可以是1-15的任何长度)
int mutations(char arrayt[],char arraymt[],int n_size,int m_size)
{
int i=0,mutation=0;
do{
for(i=0;i<n_size;i++)
{
if (arrayt[i]==arraymt[i])
{
mutation=1;
}
}
}while(n_size == m_size);
return mutation;
}
到目前为止,这是我找到两个数组之间差异的代码。问题是,如果每个元素都不同,我不知道该如何返回。 1表示更改,0表示更改。
如果有任何不清楚的地方,请告诉我,我会尽力澄清。
最佳答案
您所需的代码可能是:
int* mutations(char arrayt[],char arraymt[],int n_size,int m_size)
{
int i, size;
int* mutation;
// size = min(m_size,n_size)
if n_size>m_size
size=m_size;
else
size=n_size;
endif
mutation=*malloc( sizeof(int) * size); // allocate memory for return value
for(i=0;i<size;i++)
{
if (arrayt[i]==arraymt[i])
{
mutation[i]=1;
} else {
mutation[i]=0;
}
}
return mutation;
}