有谁知道为什么我的代码打印“输入的 PIN 码不正确”
在 if
语句之后,而不是“输入正确的 PIN 码”?当我将 if
语句更改为 (input_pin != current_pin)
时,它就起作用了。
#include <stdio.h>
#define PIN_SIZE 4
main()
{
int input_pin[PIN_SIZE];
int current_pin[PIN_SIZE] = {1,2,3,4};
int i;
for(i = 0; i < PIN_SIZE; i++)
{
printf("Enter PIN %d: ", i+1);
scanf("%d", &input_pin[i]);
}
if(input_pin == current_pin)
{
printf("\nCorrect PIN entered.\n");
}
else
{
printf("\nIncorrect PIN entered!\n");
}
flushall();
getchar();
}
最佳答案
if(input_pin == current_pin)
正在比较两个整数数组。在 C 语言中,数组在内部表示为指针。这就像比较两个 int * 变量一样。由于 input_pin
和 current_pin
实际上是不同的数组,因此这两个指针永远不会相等。
要完成您尝试进行的比较,您需要单独比较每个 PIN 的每个元素。
关于比较 C 中数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899129/