问两个C语言方面的问题。。。。请高手帮忙分析下两个程序

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:23:02
请分析下面两个程序。。。非常感谢:
第一个程序:
#include<stdio.h>
void main()
{
int a,b,c,x;
a=b=c=0;x=35;
if(!a) x--; 我不是很明白这里是表示什么意思,请详细说明,非常感谢
else if (b)
if (c) x=3;
else x=4;
printf("%d",x);
}
第二个程序:
#include<stdio.h>
void main()
{
int m,n;
printf("enter m,n:");
scanf("%d%d",&m,&n);
while(m!=n)我这里也不是很明白是啥意思,请详细解释,非常感谢。。。
{
while(m>n)m-=n;
while(n>m)n-=m;
}
printf("m=%d\n",m);
}

if(!a) x--;的意思是:如果(!a)为true的话,就执行x--。现在a等0,0在C中代表的就是false。所以(!a)=true。所以执行x--;
while(m!=n)翻译成中文:当m!=n时,就执行这个循环。如果m==n就跳出循环。
OK?希望你理解了,你可以一步一步的去分析。

if(!a) x--;
如果a为0的话,if判断条件成立,进行x--操作,否则进行else处理
a有两种情况:
为0: 0也是FALSE的标志,!a则为TRUE,则if判断肢成立
不为0:!a则为0,也是FALSE的标志,进行else处理

while(m!=n)
当m和n的值不相等时,while循环继续(继续执行循环体中的语句),
直到m和n值相等时,跳出循环,执行后续处理

if(!a) x--;
如果!a为真((!a)!=0) x--
while(m!=n) 当m不等于n时进行循环

if(!a) x--;
这里的!的代表“否”的意思。就是说!后面的式子成立的话,“!表达式”就会变成不成立。!后的式子不成立的话,“!表达式”就会变成成立。
而a作为一个数,如果它是0则代表不成立,其他值则代表成立。所以!a的意思是判断a是不是非0的数。
如:a=0,则if(!a)成立。a=1,则if(!a)不成立。

while(m!=n)
这里是判断m是不是等于n。相当于!==。只不过写成!=而已。
如果m不等于n,则while(m!=n)成立。如果m等于n,则while(m!=n)不成立。

if(!a) x--; /a=0时,if判断条件成立,进行x--操作,否则进行else处理/
while(m!=n)/m不等于n时,循环继续(继续执行循环体中的语句), 直到m和n值相等时,跳出循环,执行后续处理

!a 即为a不等于0时
m!=n即为m不等于n