除了在for循环内声明变量外,还有其他选择吗?

问题描述

我正在尝试计算数组元素中的奇数个数。有没有一种方法可以执行以下操作而无需在for循环中声明变量?我知道在循环内声明的变量无法在循环外访问,我想知道是否有一种方法可以执行以下循环,并且可以在循环外访问奇数值计数KS的值。

int arr[3] = {1004,-237890,30022};
     
for (int i = 0; i < 3; i++) {
  int oddValueCountKS = 0;
         
  while (arr[i] != 0) {
    if (arr[i] % 2) {
      oddValueCountKS++;
    }
    arr[i] /= 10;
  }
}

解决方法

int arr[3] = {1004,-237890,30022};
int oddValueCountKS[3] = {0};
 
 for (int i = 0; i < 3; i++) {

     while (arr[i] != 0) {

         if (arr[i] % 2) {
             oddValueCountKS[i]++;
         }
         arr[i] /= 10;
        
     }
    
 }
,

在循环外声明它

int oddValueCountKS;
for (int i = 0; i < 3; i++) {
    oddValueCountKS = 0;
    //the rest of your code
}

这样,您将可以在外部访问