该数组保存学生对调查的回应,我试图找出哪些学生的答案最多。对于69个响应,2D数组有69行,调查长50个问题,加上一个名称索引。
public static void mostMatches(String[][] results){
int mostMatches=0;
int mostMatchIndex=0;
int mostMatchIndex2=0;
int tempIndex=0;
int matches=0;
for (int k=0; k<results.length;k++){
for(int i=1;i<results.length;i++){
matches=0;
for(int j=1;j<results[0].length;j++){
if (results[i][j].equals(results[k][j])){
matches++;
tempIndex=i;
}
}
if (matches>=mostMatches ){
mostMatches = matches;
mostMatchIndex2 = mostMatchIndex;
mostMatchIndex = tempIndex;
}
}
}//end of k iteration
System.out.print("Most matches with "+results[mostMatchIndex][0]+" was "+results[mostMatchIndex2][0]+" with "+mostMatches+" matches" );
} //end of MostMaches
此代码的结果只是告诉我最后两个数据条目是50/50匹配的最高匹配(没有一个匹配50/50)。有人能用我的逻辑错误指出我正确的方向吗?
答案 0 :(得分:0)
循环应该像
for (int k=0; k<results.length-1;k++)
for(int i=k+1;i<results.length;i++)
你得到50/50只是因为我= k。