我正在尝试比较两个数组。这两个数组都包含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;
}

09-11 00:35