簡體   English   中英

檢查數組中的5個整數(如果3個相同)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM