main()
int x=10,y=10,j;
for(i=0;i<=2;y=i++)
printf(""%d%d",x--,y);
}
详解这道题
一步一步的得出答案
谢谢
main()
int x=10,y=10,j;
for(i=0;i<=2;y=i++)
printf(""%d%d",x--,y);
}
详解这道题
一步一步的得出答案
谢谢
你程序错了
第一:
main()
int x=10,y=10,j; //左边少了个{
第二:
int x=10,y=10,j; //定义了j,没有使用,这个没有多大影响
第三:
int x=10,y=10,j;
for(i=0;i<=2;y=i++) //你使用了i,但是该变量没有声明
下面给你分析一下这个程序
#include "stdio.h"
main()
{
int x=10,y=10,i;
for(i=0;i<=2;y=i++)
printf("%d %d\n",x--,y);
}
//你初使i=0,判断,执行循环体, 然后执行
printf("%d %d\n",x--,y);由于x--,先输出,然后自减,即输出10,10
然后先将i的值赋给y,即y=0,然后i++,i=1,判断,执行循环体,此时的x=9
执行printf("%d %d\n",x--,y); 由于x--,先输出,然后自减,即输出9,0
然后先将i的值赋给y,即y=1,然后i++,i=2,判断,执行循环体,此时的
x=8, 执行printf("%d %d\n",x--,y); 由于x--,先输出,然后自减,
即输出8,1
执行 i++时是先将 i 的值拿出来用再计算
执行++i 时是先将 i 的值计算再拿出用
所以当i=0的时候y也=0
执行x--时也想当于b=x--
b是=x=10的(打印出来的x--结果为10) 然后x再-1 这时x的值就等于9了
循环后
b是=x=9的(打印出来的x--结果为9) 然后x再-1 这时x的值就等于8了
int x=10,y=10,j;//声明x,y,j三个int型变量,并初始化x,y为10
for(i=0;i<=2;y=i++) //循环,i从0到2,一共循环3次,每次将i赋值给y,然后i加1
printf(""%d%d",x--,y); //输出x,y的值,然后x减1,(这行多打了一个双引号)
这程序的j从头到尾都没用过,画蛇添足