void genomicStatistic(int numberOfRow, int numberOfColumn, char arr[7][8]) {
int P[4][100];
char C[100];
int max = 0;
// 0. Set the initial value
for (int i = 0; i < numberOfRow; i++) {
for (int j = 0; j < numberOfColumn; j++) {
P[i][j] = 0;
cout << numberOfRow << endl;
cout << numberOfColumn << endl;
}
}}
void main() {
char arr[7][8]{
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
{'A' ,'T' ,'C' ,'C', 'A',' G', 'C', 'T'},
};
genomicStatistic(7, 8, arr); }
在// 0.处,我尝试为数组设置初始值,但是在编译器完成循环后,numberOfRow和numberOfColumn为0。我不知道为什么会发生,请帮忙。
答案 0 :(得分:3)
int P[4][100];
中的值定义了 0..3
。您使用0..6
中的值。 P
和C
都是多余的。
顺便说一句,您并没有真正使用C ++。这是一种更C ++的方式
#include <iostream>
#include <vector>
#include <string>
void genomicStatistic(const std::vector<std::vector<std::string>> &arr) {
for (const auto &row : arr) {
for (const auto item : row) {
std::cout << item << " ";
}
std::cout << std::endl;
}
}
void main() {
std::vector<std::vector<std::string>> arr{
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
{"A", "T", "C", "C", "A", " G", "C", "T"},
};
genomicStatistic(arr);
}
答案 1 :(得分:0)
因为使用副本,当您完成功能时,此副本将删除(参数use copy中的C和C ++传递值不像java或其他语言使用reference),并且您应在自己的代码中使用reference或指针参数。