0

ここに画像の説明を入力

私の関数が行うことは、利益 (fieldProfit として宣言された関数) とフィールド スコア (fieldScore として宣言された関数) の値を取ることです。両方が 10 を超える場合、バッジを獲得するため、innerbadge = 1 になります。しかし、満たさなければならない別の条件もあります。フィールドまたは (x, y) 座標は、影付きで示される領域に収まる必要があります。真ん中に穴の開いた箱に。そのためのコードを書きましたが、ロジック/構文が正しいことを確認したかっただけです! どんな助けでも大歓迎です!

これが私のコードです:

int badgeInnerCircle(int x, int y) {
   double fprofit, fscore;
   int innerbadge;

   if ((x >= 1 && x <= 20) && (y >= 1 && y <= 20)) {
      if (((x == 7 || x == 8) && (y >= 7 && y <= 14)) || ((x == 13 || x == 14)
         && (y >= 7 && y <= 14)) || ((x >= 7 && x <= 14) && (y == 7 || y == 8))
            || ((x >= 7 && x <= 14) && (y == 13 || y == 14))) {
         fprofit = fieldProfit(x, y);
         fscore = fieldScore(x, y);
         if (fprofit >= 10 && fscore >= 10) {
            innerbadge = 1;
         }
         else {
            innerbadge = 0;
         }
      }
   }
   else {
      innerbadge = -1;
   }
   return innerbadge;
}
4

1 に答える 1

0

いいえ、あなたのコードは正しくありません。

int innerbadge;

if (condition) {
  if (condition) {
    if (condition) {
      innerbadge = 1;
    }
    else {
      innerbadge = 0;
    }
  }
  //else unidentified!
}
else {
  innerbadge = -1;
}

初期化を「int innerbadge = 0;」に変更する必要があります。または適切なもの

于 2013-10-24T11:00:55.030 に答える