对于C中基于用户输入的循环



我有不同的路径,这些路径在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;
}
}
}
}

相关内容

  • 没有找到相关文章

最新更新