为什么只能循环一次和 if那又问什么会报错

为什么只能循环一次😭
if那又问什么会报错
向大佬求解

img

password数组要设置一个固定长度,

char password[100]={0};

你password[]={0}这样子数组分配空间的长度就只有1个字节。
之后用scanf(%s,password)对数组赋值。如果输入的字符数大于1个,会造成数组下标越界。
多于的字符会写入到数组分配空间之后的未知空间中,可能循环变量i的空间地址就处于这块未知空间中,这样循环变量i的值就被意外的改变了,变成大于等于3就退出循环了。

关于if的问题。只是一个警告。并不影响程序编译和运行。
只是警告你if的子语句要放到{}大括号里面。