我有不同的路径,这些路径在2-D数组中预定义为[seed][sequence],'seed'是路径(0-255(,'ssequence'是路径中的索引(0-49(。当比较的路径数量可能因运行而异时,是否有一种方法可以同时巧妙地比较输入定义的路径数量?
如何收集我的输入:
#define MAX 250
int numUsers; //the number of users
int users[MAX][2]; //each user and their respective seed
int collisions = 0; //number of collisions
static inline void compareNumUsers(){
printf("Enter the number of users: ");
scanf("%d", &numUsers);
printf("n");
for(int i = 0; i < numUsers; i++){
printf("Enter the seed of user%d [0-255]: ", i+1);
scanf("%d", &users[i][1]);
}
}
最佳情况下的答案不是一系列案例切换语句
我希望能有这样的效果:
(assume 3 given inputs)
for(int j = 0; j < pathLength; j++){
if(paths[users[0][1]][j] == paths[users[1][1]][j] || paths[users[1][1]][j] == paths[users[2][1]][j] || paths[users[2][1]][j] == paths[users[0][1]][j])
collisions++;
}
如果我说我在思考如何问这个问题时没有混淆自己,那我就是在撒谎,所以如果你对某件事感到困惑,请让我核实一下,我不会被冒犯。
比较也不一定是以我提供的相同方式,这只是我目前的想法
感谢您的帮助。提前谢谢。
使用嵌套循环来比较所有对。
for (int j = 0; j < pathlength; j++) {
for (int i = 0, broken = 0; !broken && i < numUsers - 1; i++) {
for (int k = i + 1; k < numUsers; k++) {
if (paths[users[i][1]][j] == paths[users[k][1]][j]) {
collisions++;
broken = 1;
break;
}
}
}
}