将单个整数与C中的整数数组进行比较?

时间:2016-03-02 19:52:29

标签: c mplab xc8

如何将单个整数与十个整数数组进行比较,以查找是否使用C语言在数组中包含单个整数?如果原始问题不清楚,我很道歉,而刷卡等于我要输出的数组中的任何数字PORTD = 0b10000000。谢谢!

for(i=0; i<10; i++){    
if(swipe == array[i]) {
    PORTD=0b10000000;
    break;
} else {
    PORTD=0b00001000;
    }
}

这似乎已经解决了......感谢你的帮助!

{{1}}

4 个答案:

答案 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()函数更好地用于更广泛的统计分布。有许多来源可以生成随机整数,如线性同余法等。

此外,应该为数组的每个值循环该比较。