int passwordcheck()//登陆信息检验函数
{
printf("\n\nPlease enter ur ID: ");
scanf("%s",ssub);
printf("\n\nPlease enter ur password ");
scanf("%d",&dsub);
if(strcmp(ssub,name)==0)//检验用户名
{
for(dsub;dsub!=password;dsub=dsub)//对密码进行检验
{
printf("\n\\nId or password is wrong , Please rewrite: ");
scanf("%d",&dsub);
}
}
else
{
printf("\n\nUr Id is wrong, Please rewrite: ");
}
}
ssub 和dsub 我都定义了,是全局变量
这是程序中的其中一个函数
name【】是个字符串全局变量我也已经在注册函数中定义了。
为什么每次执行不管我所输入的ssub 的字符串是不是和name 一样,都是执行else 那一栏。。
C语言里这条语句里的if 里面的,为什么执行不出来,即使我满足了他的条件
答案:3 悬赏:0
解决时间 2021-03-15 16:08
- 提问者网友:挣扎重来
- 2021-03-14 18:12
最佳答案
- 二级知识专家网友:晨与橙与城
- 2021-03-14 18:45
也就是说,你的ssub和name不相等,这里没有给出name到底是什么值,你回去看一下你的name是什么值,一般来说,如果你的用户名是固定的那么name应该用一个宏定义,那么,在函数内部可以定义一个局部变量保存输入的东西,然后再和name做比较,最好不要也一样使用全局变量,比如ssub。下边的for循环我看不懂你想表达什么意思,但是这种写法很怪
全部回答
- 1楼网友:厌今念往
- 2021-03-14 21:21
1. 你要确定你的ssub是定义的数组,而不是单个字符,因为你输入的用户名应该是字符串。
2. 你的比较函数应该不会错,看看是不是定义的数组
- 2楼网友:废途浑身病态
- 2021-03-14 20:07
这个不好转换为switch,其实 if 蛮好的,因为switch里面是对确定的整数进行匹配,你输入的是浮点数,还要转换为整数,麻烦,并且,输入的数也是一个范围,不是几个确定的东西,所以,最好用if,不过,如果你实在是要转换,我就帮你转换一下吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯