c语言输入输出报错,大家看一下呀

问题遇到的现象和发生背景

运行报错

问题相关代码,请勿粘贴截图
#include <stdio.h>
int main()
{
 char password[20];
 printf("输入密码");
 scanf("%s", &password);
 printf("确认密码 Y\N");
 char ch = getchar();
 char tmp = "1";
 while ((tmp = getchar()) != '/n')
 {
  ;
 }
 if (ch == "Y")
 {
  printf("确认成功");
 }
 else
 {
  printf("确认失败");
 }
 return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

第六行passward前面去掉取地址符,第九行和十四行双引号换成单引号再试试

字符串或者数组本身的变量名就是地址值,所以不需要写&符,所以把第六行的&去掉

1.数组名就是地址,所以第六行可以把&去掉。
2.在对字符比对时一般用单引号。

#include <stdio.h>
int main()
{
 char password[20]={0};
 char a;
 printf("输入密码\r\n");
 scanf("%s", password);
 getchar();//用于吸收上一个输入密码时的enter
 printf("确认密码 Y/N\r\n");
 scanf("%c",&a);
 if (a == 'Y')
 {
  printf("确认成功");
 }
 else
 {
  printf("确认失败");
 }
 return 0;
}