如何重复打印相同的值?

时间:2019-03-18 03:12:41

标签: c++ c arduino

我能够在屏幕上显示t,但是每次循环迭代时,t的当前值都会在打印之前添加到先前的值。这意味着,它会打印出9,18,27,36 ...如何避免这种情况?只要代码循环,我就需要它连续显示9。

int d,i,p,s,t,arr[30];
float hp = 0;
float arr2[30];
void setup(){
  Serial.begin(9600);
}
void loop(){
    for (d = 0; d < 360; d++){
          if (sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1> sin((d-1)*(PI/180))+1 
+ sin((d-1)*(2*PI/180))+1 && sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1 > 
sin((d+1)*(PI/180))+1 + sin((d+1)*(2*PI/180))+1){
         arr2[i++] = sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1;
        }
      }
for (p = 0;p <30; p++){
  if(arr2[p]!=0){
    if (arr2[p]>hp){
    hp = arr2[p];  
    }  
  } 
}
for (d = 0; d < 3600; d++){
      if (sin(d*(PI/180))+1 + sin(d*(2*PI/180))+1 >= hp){
         arr[s++] = d;
        }
      }
 for (s = 0; s < 30; s++){
  if (arr[s]!=0){
    t++;
   }
  } 
  Serial.println(t);
}

1 个答案:

答案 0 :(得分:1)

一般建议:

  

定义范围尽可能小的变量。在您的情况下,除非有理由制作td全局变量,否则不要将它们设为全局变量。使它们成为局部变量。

将代码更改为:

void loop(){
   int t = 0;
   int d = 0;

   ...

   Serial.println(t);
}

这将解决您眼前的问题,更重要的是,您的代码将更加简洁。