C语言初级问题 望高手指教

来源:百度知道 编辑:UC知道 时间:2024/05/01 15:20:50
#include "stdio.h"
void main()
{
int a=10,b=20,x;
x=a;
if(a<b)
x=b;
printf("%d\n",x);
}

#include "stdio.h"
void main()
{
int a=10,b=20,x;
x=a;
if(a<b)
{ x=b;
printf("%d\n",x);
}
}
为什么后面那个要加个括号在那啊 我运行了一遍 两次的结果都一样
但后面加个括号撒意思啊

区别在这里:

if(a<b)
x=b;
printf("%d\n",x); 这个程序永远输出x的值。


if(a<b)
{
x=b;
printf("%d\n",x);
} 这个程序只有在a<b的情况下,

才会执行
x=b;
printf("%d\n",x);

为什么会一样呢,因为在a<b的情况下,两个程序是一样的,
你上面int a=10,b=20,x; 直接导致a<b。这样你的两次结构都一样。如果int a=20,b=10,x;这样,你的这两个程序就不一样了。

最后的} 是对应函数main()的{
要{}才完整

如果a=20,b=10结果就不一样了 ,加括号说明Printf只有当条件满足时才运行

你说的是if语句的括号么?
不一样的吧,如果你把a的值改成30就不一样了。
如果不加括号,那么if语句只对紧跟着的下面的一条语句起作用,加了括号就是对括号内的内容起作用了。

上面一个:没有括号,无论怎么样都会执行打印语句的,最后打印的是a和b中的较大的值;

下面一个:有括号,如果a>=b的话,就不会打印了,如果a<b的话就和上面那个一样了。

其实就是IF 后加括号,表明一旦判断条件为真,那就执行括号以内的语句,这往往是二句和两句以上,如果省去括号,那么判断为真,程序就只会执行紧跟在判断语句之后的那一句,就是IF的有效作用范围,执行完,然后再继续按顺序执行下面的句子
在你现在的例子中,好明显第一个程序的printf语句是按顺序而执行的
第二个的printf是因为条件为真,printf包含在真语句里,因此而被执行