1
我必须比较两个阵列,每个阵列中都有444个字符,如果它们完全相同,则输出结果相同。如果他们不是,那么程序会继续,直到完成比较所有的阵列。比较两个不同阵列中的char值
这是我的代码到目前为止。我已经多次改变了它,但是我要么让程序不向outFile输出任何内容(说没有一样是相同的,我认为这是错误的,因为我想可能是相同的,或者教授不会要求我们这样做)或者说,每一个基因链是相同的:
#include iostream
#include string
#include fstream
using namespace std;
ifstream inFile;
ofstream outFile;
bool SameGene(char gene1[], char gene2[], int size)
{
for(int i=0, j=0;i<444 && j<444;i++,j++)
if(gene1[i] != gene2[j])
return false;
return true;
}
int main()
{
inFile.open("dna.txt");
outFile.open("DNAanalysis.txt.");
char gene1A[444], gene2A[444];
char gene1B[444], gene2B[444];
char gene1C[444], gene2C[444];
char gene1D[444], gene2D[444];
inFile.read(gene1A, 444);
inFile.read(gene2A, 444);
inFile.read(gene1B, 444);
inFile.read(gene2B, 444);
inFile.read(gene1C, 444);
inFile.read(gene2C, 444);
inFile.read(gene1D, 444);
inFile.read(gene2D, 444);
if(SameGene(gene1A, gene1B, 444) || SameGene(gene2A, gene2B, 444))
outFile << "Person A and Person B are related." << endl;
if(SameGene(gene1A, gene1C, 444) || SameGene(gene2A, gene2C, 444))
outFile << "Person A and Person C are related." << endl;
if(SameGene(gene1A, gene1D, 444) || SameGene(gene2A, gene2D, 444))
outFile << "Person A and Person D are related." << endl;
if(SameGene(gene1B, gene1C, 444) || SameGene(gene2B, gene2C, 444))
outFile << "Person B and Person C are related." << endl;
if(SameGene(gene1B, gene1D, 444) || SameGene(gene2B, gene2D, 444))
outFile << "Person B and Person D are related." << endl;
if(SameGene(gene1C, gene1D, 444) || SameGene(gene2C, gene2D, 444))
outFile << "Person C and Person D are related." << endl;
return 0;
}
嗯,我知道每个长度都与我输入文件的长度相同。我只需要确保所有444个字符在每个数组中都相同或不相同。如果gene1A [1] = A和gene1B [1] = B,那么我的问题会立即回答,因为所有444都需要相同。 –
@TannerRoss好的,那么上面的代码片段就可以做到。它会在第一个负面比较中返回错误。 – juanchopanza
我会在子功能SameGene中添加? –