c语言if语句问题。。。

作者&投稿:锐有 (若有异议请与网页底部的电邮联系)
if(a=12)
注意这里是a=12,而不是a==12,
所以if里面是一个赋值,赋值表达式的返回值就是所赋的值,所以if为真,并且a=12这样后,a被赋值为12
再执行a=a+1;b=b+1;

就得到13;1了

原因很简答!
你没把==和=的关系搞清楚。
==等号表示判断,eg:if(a==10) 意思是判断a是否为10,如果是则为真,否则为假
=表示赋值 eg :a=10 是将10赋给a这个变量 if(a=10)和 if(a==10)是完全不一样,前者将一个数赋值给一个变量,肯定为真值,故直接执行{}中间的语句;
你所说的题真是由于这个原因,他直接执行){a=a+1;b=b+1; }这句;故得出结果为13;1

希望对你有帮助!

首先你这个if(a=12)中的a=12是一个赋值操作,和你本来想得a是否等于12的条件判断有出入
正确的用法为:if(a==12),当然我推荐使用if(12==a)这种写法,至于为什么,等你写了很多程序就明白了。
然后回到你的程序,if(a=12)这个因为是一个赋值操作,所以一定为真,所以执行后面的条件语句
{a=a+1;b=b+1; } 因此a=13 else则不执行

if(a=12)这里出错了,这里是赋值,将12赋给了a,不是相等判断,所以变成if(12),这样的话,if语句中只要是非零就会认为是真,所以执行{a=a+1;b=b+1; },从而得到13;1

教你个编程技巧,如果你分不清=赋值号和==等号的话,那么你可以规范一下自己的编程习惯,每次写==的时候常量写在左边 变量写在右边,例如 a==4,你可以写成 4==a,如果少写了个=号,那么编译器会自动报错,这样不至于出错。

C语言中if语句问题~

if(表达式)与if(表达式);
第一个是一个判别式 没有执行语句
第二个 写法有问题 不能这样写 要么在分号前加一个语句 才是对的

{;}与if(b==0) m=1;n=2;
都不止一个语句 {} 内的叫语句块
而后一个 两个都是单个语句 要是b==0的话 就赋值m=1

if(表达式) 表达式可为关系表达式 或者是逻辑表达式 都可

if(a>b)
printf("max=%d", a);
else (a<b) //这里错了,要写可以这么写 else if(a<b)
pritnf("max=%d", b);

C语言中的if判断问题?
答:if(){} 这条语句的意思是 如果if后面括号内的表达式结果为真,则执行后面大括号内的语句!if(t) { }表示如果t为真 这执行后面{}内的语句if(!t) { } 在t前面加个“!”符号,表示“非t”的意思,就是t如果为真 则“非t”为假 t如果为假 则“非t”为真 ...

IF语句的用法是什么?
答:TRUE 和 FALSE 时,「表格(Excel)」能自动理解它们。常见问题:1、单元格中的 0(零):value_if_true 或 value_if_False 参数无参数值。 若要查看返回的正确值,应为两个参数添加参数文本,或者为参数添加 TRUE 或 FALSE。2、#NAME? (显示在单元格中):这通常意味着公式存在拼写错误。

问个问题,C语言的,关于if语句中条件判断是一个赋值语句问题。
答:复制表达式x=5本身是有值的,这个值等于左值。也就是说x=5这个式子的值是x,也就是5。而x=5这个式子的值是5不为零,就是真的,还会执行k=2。一般来说,if后面语句是禁止使用单等于号,也就是赋值号的,就是为了防止出错。980515024 这位回答的有错误。if(x=5)编译是不会报错的。如果是x=0...

C语言中关于if结构的问题?
答:x==1。因为这段代码写规整了是这样的——if(a>7)//成立,所以执行if(b>8) if(b>8)//不成立,直接完成if(a>7)语句而跳出. if(c>9) x=3;

c语言有关if语句的问题
答:比如说: 萨科奇是sb吗? 是,不是。 只能这么回答。当然 回答是,他不是sb这个世界上哪儿来的sb啊?是吧?--然后回过头来说程序。很多类型都可以转换成bool类型。其中之一就是int。当int的值是0的时候就会转换成false也就是刚才 说的不是。如果不是0就会转换成是,也就是true.好了。其实if语句...

一道c语言if条件句的问题
答:运行结果的是1,将x输出了。你的程序可以理解为,include<stdio.h> main(){ int x=1,y=2,z=3;if(x>y)if(y<z)printf("%d",++z);else printf("%d",++y);printf ("%d\n",x++);} 因为,if(x>y)判断语句下面的if相当是嵌套在第一个if里面,而else要与和它最近的if,也就是与...

关于C语言中if语句后面是否加括号的问题。这里是加了括号。但是看到其他...
答:不加括号 if 对后面只有一句有效,加了括号括号里面都有效。

C语言问题 ,到底是为什么,if条件语句变了下,运行结果就不一样。麻烦解 ...
答:当然不一样了。前者是不管 if(n%7 !=0) 是否成立,都会 if(i%5==0);但是后者就必须满足 if(n%7 !=0) ,才i++然后判断if(i%5==0)了。

有关c语言if的问题 如果if语句的判断条件很多,并且判断条件又恰好可以...
答:设定一个标志,比如布尔变量BOOL bFlag,或者int nFlag = 0;然后判断的时候,更改变量的值就可以

c语言程序设计在if语句中出现了问题
答:我在linux下输出是正确输出.我觉得是你的编译器的关系,大概你的这个编译器的优先顺序没有按照 && > ||做.建议你在if前面加一句 printf("%d %d %d %d\n",a>30&&b>30000||a<30&&b>5000,a>30&&b>30000||a<30,a>30&&b>30000,a>30);这样输出一下IF的判断值是否有变化.我的环境下都是...