C语言里这条语句里的if 里面的,为什么执行不出来,即使我满足了他的条件

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 那一栏。。

也就是说,你的ssub和name不相等,这里没有给出name到底是什么值,你回去看一下你的name是什么值,一般来说,如果你的用户名是固定的那么name应该用一个宏定义,那么,在函数内部可以定义一个局部变量保存输入的东西,然后再和name做比较,最好不要也一样使用全局变量,比如ssub。下边的for循环我看不懂你想表达什么意思,但是这种写法很怪追问

那个name是个字符串。。ssub也是字符串。。strcmp函数不是可以判断字符串是否相同吗。那个for。。我刚学了C语言一个月。不会太高深的东西。。只能用一些简单的方式表达我的意思。。

追答

这样子吧,我可以给你解答,企鹅1026726654,你加我企鹅,希望你能采纳下哈

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-31

    你要确定你的ssub是定义的数组,而不是单个字符,因为你输入的用户名应该是字符串。

    你的比较函数应该不会错,看看是不是定义的数组

C语言,某if条件句,条件满足,却不执行,是什么原因
是不是由于你的a,b,c,d由于都是double类型的,受存储精度的限制,在你认为可能是满足if语句的条件下其实没有满足条件,因而没有执行

为什么这段if-else语句的条件没有生效?无论输入什么输出都是1_百度知 ...
if,else语句后如果只有一句执行语句,可以不加 { },多于一句必须要加 { },个何况您循环嵌套了!还是不要偷懒,改写就写吧.

在c语言程序中if-else语句的else语句总是不执行是怎么回事
那就是IF里面的满足了啊,IF条件满足就执行IF的,ELSE是IF条件不满足,另外可以用步进调试看看程序怎么判断的

c语言 为什么这个if语句不起作用了?
是你 自己的错误!if(c=a[i]) 里 一个 = 是 赋值,2个= 才是 比较相等关系,当然 != 也是比较,是不等关系 这个 地方 是容易错误!

c语言中的if语句
不执行了。因为a=1;是if(a==0)的一条子句。你可以这么看,if(a==0)、else if (a==1)与else a=1;在同一个层次,在执行的过程中只可能有一个条件成立,然后执行它们子句。其实这个可以改为这样 :if(a==1) a=2;else a=1; 就行了!

C中的IF语句不能执行第一个条件的语句,是什么原因
额,肯定不能执行啊。在你的程序中,text1和text2赋初值后就没有再被处理过,而它们的初值text1为假,text2为真,与之后为假……你这样改试试 include<stdio.h> int main(void){ int age=0;bool text1; \/\/ke yi bu fu chu zhi de bool text2; \/\/tong shang printf("please ent...

c语言 else if中的语句中 跳过不运行。
1、虽然语句上可能无法设断点,但事实上是因为编译优化时将此句与其它相同或相似部份合并。这种情况可以在你执行到shun13时,在shun24函数体内设个断点,在else if判断体外的下一条可执行语句上也设个断点,看看是否程序执行了shun24。2、编译器问题。极少,但我遇见过。这就比较麻烦了,处理方法没有...

C语言if语句的问题
因为此时a=3,b=5,所以if条件不成立,不运行a=b,而是运行c=a这句,即c的值发生变化 此时,c=3,b=5,a=3,继续运行第二个if f(c!=a) c=b;因为此时c=3,b=5,a=3,,所以if条件不成立,c=b不运行,所以 啊=3,b=5,c=3,输出结果是3,5,3 if(c!=a)是判断c是不是不等于a,...

求c语言高手指点关于if函数的问题
两者之间没有区别的,逗号 代表所在行语句没有结束,继续执行,所以if (a>0,b>0)代表同时满足两个条件,而if (a>0&&b>0)是逻辑运算代表两个同时满足,意义是一样的,望采纳

C语言中if语句的运用
第一个if的条件不成立,所以不执行:t=a;后面的a=c;c=t不是if的语句块所以要执行:这时a=5;c=99;第二个if的条件成产,执行:t=b;再继续执行b=a;a=t;所以此时:t=b=4;b=a=5;,a=t=4;

相似回答