1.把printf("请输入密码")和scanf放到for循环外面,先scanf再进行循环
2.密码正误判断那里,改为if(a[i] != b[i]) {y = 1; printf("密码错误"); break;}
3.输出“单片机锁定”的条件改为y==1;=是赋值符号,==才是判断相等
语法错误,1,第14行,scanf里面的%d对应的值是&a[0].&a[1]..., 2,第24行,判断用==;
逻辑错误,1,整个程序的逻辑就是错的,验证密码应该是先输入密码,然后用输入的密码和保存的密码作比较,而不是输入错误之后循环输入,你这个循环输入啥也不是,而且输入只要每次输入时,次数和对应的值输对了,就提示正确,你觉得这符合逻辑吗
#include <stdio.h>
#include <math.h>
int main()
{
int a[4],b[4]={1,2,3,4};
int i;
int y=1;
printf("请输入密码\n");
scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);
for(i=0;i<4;i++){
// printf("%d %d\n",a[i],b[i]);
if(a[i]!=b[i]){
y=0;
break;
}
}
if(y==1){
printf("密码输入正确\n");
}else{
printf("密码输入错误\n");
printf("单片机被锁定\n");
}
return 0;
}