我有一个包含五个随机数的int数组。我正在检查三个数字是否相符。
int die[5] = {2, 3, 5, 2, 1};
int kind = 0;
int score = 0;
int i = 0;
int x = 0;
for (i; i <= 4; i++) {
for (x; x <= 4; x++) {
if (die[i] == die[x]) {
kind++;
score += die[i];
}
}
}
我遇到的问题是它将自己与自身进行比较的第一个案例。这将永远成为现实。如果我给索引加上一个+1,它就会超出界限。
如果我从1开始,而不是从0开始,那么当它转到第二个数字时,一旦它对照第二个数字(本身)检查自己,它将返回相同的结果。
最佳答案
你可以检查一下我是否等于j,只是continue;
你的循环。
for(i=0; i<=4; i++){
// you can set x=i+1 and skip some numbers
for(x=0; x<=4; x++){
if(i==x)
continue;
if (die[i] == die[x]) {
kind++;
score += die[i];
}
}
}
编辑:
有更简单的方法可以做到这一点(检查3个数字是否相等),但如果您只是想跳过一个迭代,请使用continue。
关于c - 检查数组中的5个整数(如果3个相同),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53716229/