我有一个外部数字小键盘,有0-9的数字和A-D的字母。
我想把x和y中0-9的数字存储为坐标。当我按A(等式10)时,我想画一个点。
问题是我不知道如何在x中存储第一个键,在y中存储第二个键。只要我按下一个键,它就会给x和y分配相同的数字。
我试过很多不同的if语句,但它总是给x和y赋值相同的数字。
int counter=0;
numPad[16]={1,4,7,14,2,5,8,0,3,6,9,15,10,11,12,13};
if(numPad[key]<10){
x=numPad[key];
x*=16;
counter++;
}
if(counter>0 && numPad[key]<10){
y=numPad[key];
y*=8;
}
if(numPad[key]==10){
LCD_DrawPoint(x,y,WHITE);
counter=0;
}
2条答案
按热度按时间yqyhoc1h1#
设置x和y的if语句和画点的if语句是互斥的。
if(numPad[key] < 10)
和if(numPad[key] == 10)
不能同时为真。我不知道你为什么要做这样的比较,但我认为这是为了将最大可能输入值限制在9或其他值。在下面的例子中,我们将numPad[key]的最大可能值限制在9,并将其赋给X和Y。然后画出点。计数器在这里是没用的,但我把它留了下来,因为你在原始代码中有它。你可以提供一个最低限度的可验证的例子下一次,因为这将使我们能够帮助你更好。
zfciruhq2#
如果没有提供足够的代码,那些试图提供帮助的人可能会误解,而不是适当地“填空”。
注意
if/else
的用法。