繁体   English   中英

如何重复打印相同的值?

[英]How do I print the same value repeatedly?

我可以在屏幕上显示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);
}

一般建议:

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

将您的代码更改为:

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

   ...

   Serial.println(t);
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM