这里我比较两个数组元素,如果数组元素相等SETPASSWORD=1;
,否则SETPASSWORD=0;
但这里总是打印密码设置状态1即使数组不相等
#include <stdio.h>
#define ARY_SIZE 4
int password_set;
int main (void)
{
//Local Declarations
int numbersA[ARY_SIZE];
int numbersB[ARY_SIZE];
int i;
int j;
//Statements
printf("Please Enter 10 Integers For Array A\n");
for (int i = 0; i < ARY_SIZE; i++)
scanf("%d", &numbersA[i]);
printf("\nPlease Enter 10 Integers For Array B\n");
for (int j = 0; j < ARY_SIZE; j++)
scanf("%d", &numbersB[j]);
for (int i = 0; i < ARY_SIZE; i++)
{
for (int j = 0; j < ARY_SIZE; j++)
{
if (numbersA[i] == numbersB[j])
password_set=1;
else
password_set=0;
}
}
printf(" password setstaus =%d",password_set);
return 0;
}
最佳答案
你的逻辑是错误的。一旦一对数字不相等,您必须立即退出循环。
而且您也只需要一个循环:
password_set = 1 ;
for (int j = 0; j < ARY_SIZE; j++)
{
if (numbersA[j] != numbersB[j])
{
password_set = 0;
break ;
}
}
关于c++ - 整数的数组比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22371999/