如何将单个整数与十个整数数组进行比较,以查找是否使用C语言在数组中包含单个整数?如果原始问题不清楚,我很道歉,而刷卡等于我要输出的数组中的任何数字PORTD = 0b10000000。谢谢!
for(i=0; i<10; i++){
if(swipe == array[i]) {
PORTD=0b10000000;
break;
} else {
PORTD=0b00001000;
}
}
这似乎已经解决了......感谢你的帮助!
{{1}}
答案 0 :(得分:1)
您需要针对所接受密码数组中的所有十个值测试您的滑动值。
e.g。如下所示
for(i=0; i<10; i++)
if(swipe == array[i]) {
set a true flag (and maybe exit the for loop)
}
Depending on the flag, set the output
答案 1 :(得分:0)
@ManyToOne
private Car car;
。这会调用未定义的行为,因为if(swipe == a[i])
是10,而10是超出范围的索引。有效索引从0到9。
答案 2 :(得分:0)
除了@ kaylum的答案......
因为您在循环中调用**File | String** | Found?
one.txt | ra | yes
two.txt | nd | no
three.txt | om | no
four.txt | st | yes
,所以在进入循环之前需要先调用rand()
,
srand()
如果不这样做,每次执行时,您获得的随机编号将是相同的值序列。
此外,如果srand(clock());//for example
while(1){
LATD=0x00;
int swipe=rand() % 20;
...
在用于比较之前没有重新初始化,则它是== 10.在用作数组索引之前需要重置它...
此外,在您的代码中,您似乎想要根据10个已接受的密码检查最新的随机数。如果这是正确的,你必须比较所有10个:
i
答案 3 :(得分:0)
您正在尝试模拟随机读卡操作&amp;在不同的实例中获得通过/失败。如果滑动值介于1到20之间,密码仅介于10,19之间,则您希望查看某些实例是否失败。这是对的吗?
如果是这样,考虑到你的rand()函数只返回整数,设置一个断点并探测滑动的值。它似乎总是具有相同的价值。使rand()函数更好地用于更广泛的统计分布。有许多来源可以生成随机整数,如线性同余法等。
此外,应该为数组的每个值循环该比较。