[英]Checking 5 ints in an array if 3 are the same
我有一個包含五個隨機數的整數數組。 我正在嘗試檢查三個數字是否匹配。
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。
int die[5] = {2, 3, 5, 2, 1};
int kind = 0;
int score = 0;
for (i = 0; i < 4; i++) { // last check will be die[3] == die[4] to avoid
// die[4] == die[4]
for (x = i + 1 ; x < 5; x++) { // it always checks with the next element
if (die[i] == die[x]) {
kind++;
score += die[i];
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.