Return 函数不起作用。使用勾股定理
Return Functions Don't work. Using pythagorean Theorem
#pragma config(Motor, port1, RightsideB, tmotorVex393_HBridge, openLoop)
#pragma config(Motor, port2, RightsideF, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port9, LefttsideF, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port10, LeftsideB, tmotorVex393_HBridge, openLoop)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
float xdiff, ydiff, firstpart, secondpart, firstpart2, secondpart2, total, lengthformula;
float getdistance(int x1, int x2,int y1, int y2){
return x1;
return x2;
return y1;
return y2;
xdiff = x2 - x1;
ydiff = y2 - y1;
firstpart = (xdiff);
return firstpart;
secondpart = (ydiff);
firstpart2 = pow(xdiff,2);
secondpart2 = pow(ydiff, 2);
total = firstpart2 + secondpart2;
lengthformula = sqrt(total);
return lengthformula;
}
task main()
{
getdistance(0, 4, 0, 1);
while (true){
motor[RightsideB]= vexRT[Ch2];
motor[RightsideF] = vexRT[Ch2];
motor[LeftsideB]= vexRT[Ch3];
motor[LefttsideF]= vexRT[Ch3];
}
}
这个程序 运行 没有错误,但是当我 运行 它并打开调试器时,变量不起作用。我已经在 smallbasic 中编程,我知道它可以工作。我正在将其转换为 robot-c
删除 getdistance
中的所有 return
语句,最后的 return lengthformula
除外。 return
导致函数停止 运行,并立即 return 您指定的值,因此函数的其余部分永远不会运行,也不会计算距离。
在main()
中,需要将结果赋给一个变量:
task main() {
float distance = getdistance(0, 4, 0, 1);
...
}
然后你可以使用 distance
来满足你的任何需要。
#pragma config(Motor, port1, RightsideB, tmotorVex393_HBridge, openLoop)
#pragma config(Motor, port2, RightsideF, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port9, LefttsideF, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port10, LeftsideB, tmotorVex393_HBridge, openLoop)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
float xdiff, ydiff, firstpart, secondpart, firstpart2, secondpart2, total, lengthformula;
float getdistance(int x1, int x2,int y1, int y2){
return x1;
return x2;
return y1;
return y2;
xdiff = x2 - x1;
ydiff = y2 - y1;
firstpart = (xdiff);
return firstpart;
secondpart = (ydiff);
firstpart2 = pow(xdiff,2);
secondpart2 = pow(ydiff, 2);
total = firstpart2 + secondpart2;
lengthformula = sqrt(total);
return lengthformula;
}
task main()
{
getdistance(0, 4, 0, 1);
while (true){
motor[RightsideB]= vexRT[Ch2];
motor[RightsideF] = vexRT[Ch2];
motor[LeftsideB]= vexRT[Ch3];
motor[LefttsideF]= vexRT[Ch3];
}
}
这个程序 运行 没有错误,但是当我 运行 它并打开调试器时,变量不起作用。我已经在 smallbasic 中编程,我知道它可以工作。我正在将其转换为 robot-c
删除 getdistance
中的所有 return
语句,最后的 return lengthformula
除外。 return
导致函数停止 运行,并立即 return 您指定的值,因此函数的其余部分永远不会运行,也不会计算距离。
在main()
中,需要将结果赋给一个变量:
task main() {
float distance = getdistance(0, 4, 0, 1);
...
}
然后你可以使用 distance
来满足你的任何需要。