gpt4 book ai didi

比较 C 中数组的内容

转载 作者:行者123 更新时间:2023-11-30 21:35:43 26 4
gpt4 key购买 nike

有谁知道为什么我的代码打印“输入的 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_pincurrent_pin 实际上是不同的数组,因此这两个指针永远不会相等。

要完成您尝试进行的比较,您需要单独比较每个 PIN 的每个元素。

关于比较 C 中数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26899129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com